사이트
사이트는 하나의 Arkvory 설치입니다: 주 설치, 다른 위치의 미러, 다른 설치에서 버전을 가져오는 설치. 사이트에서 한 설치인 컨트롤러가 관리하는 모든 사이트를 보여 줍니다: 응답 여부, 버전, HA 사본과 읽기 게이트웨이, 미러와 얼마나 뒤처졌는지, 다운로드 대기열. 전역 관리자만 이 페이지를 봅니다.
클러스터 상태
페이지는 클러스터 상태 카드로 시작합니다: 사이트 전체에서 주의가 필요한 것과 어느 사이트가 어느 사이트에 데이터를 공급하는지. 컨트롤러는 사이트를 마지막으로 읽은 결과로 이 카드를 최대 5초에 한 번 만들고, 자신도 "이 사이트"로 포함합니다.
경보
각 경보는 사이트와 문제를 알려 줍니다. 가장 심각한 것이 먼저 옵니다: 심각, 그다음 경고, 그다음 참고. 주의할 것이 없으면 목록이 그렇게 알려 줍니다.
| 경보 | 심각도 | 시점 | 할 일 |
|---|---|---|---|
| 연결 불가 | 심각 | 2분 동안 응답 없음. 읽기 한 번 실패는 경보가 아님 | 사이트와 네트워크 확인 |
| 인증서, 철회됨, 거부됨, 잘못된 응답 | 심각 | 같은 이름의 상태와 함께 즉시 | 다시 페어링하거나 두 설치를 업데이트 |
| 오래됨 | 경고 | 사이트가 응답했지만 읽기 주기 세 번(90초)과 읽기 한 바퀴에 걸리는 시간을 넘게 읽히지 않음: 컨트롤러의 백그라운드 읽기가 멈춤 | 컨트롤러의 API 프로세스 확인 |
| 쓰기 불가 | 심각 | 쓰기 프로세스가 드레이닝 중이 아닌데 쓰기를 거부함 | 해당 데이터베이스와 디스크 확인 |
| 복사본 | 심각 | HA 사이트에 데이터 복사본이 부족함. 복사본이 돌아올 때까지 쓰기가 멈춤 | 빠진 노드를 복구. 고가용성 클러스터 참조 |
| 단일 복사본 | 경고 | 복사본이 부족하지만 운영자가 정한 시각까지 복사본 하나를 허용함 | 그 시각 전에 빠진 노드를 복구 |
| 미러 실패 | 경고 | 미러의 마지막 동기화가 실패함. 복원된 원본을 다시 읽는 것은 제외 | 미러의 오류 코드 확인 |
| 미러 지연 | 경고 | 미러가 원본보다 ARKVORY_FLEET_LAG_ALERT개(기본값 1000) 이상의 변경만큼 뒤처짐 | 원본, 네트워크, 미러 확인 |
| 업데이트 실패 | 경고 | 사이트의 업데이터가 실패를 보고함 | 사이트 설정에서 업데이트 열기 |
| 다른 버전 | 참고 | 사이트가 컨트롤러와 다른 버전을 실행함 | 사이트를 같은 릴리스로 업데이트 |
경보는 최신 읽기만 사용합니다. 응답하지 않는 사이트는 그 자체에 대한 경보만 내고, 마지막으로 보고한 내용에 대한 경보는 내지 않습니다. 컨트롤러는 한 번에 최대 8개 사이트를 읽고 각 사이트를 최대 15초 기다리므로, 읽기 한 바퀴는 사이트 8개마다 최대 15초가 걸립니다. 오래됨 경보는 이 시간을 더하므로, 연결할 수 없는 사이트가 많아도 정상 사이트가 멈춘 것처럼 보이지 않습니다. Prometheus도 같은 ARKVORY_FLEET_LAG_ALERT에서 경보를 냅니다. 모니터링 참조.
연결
연결 영역은 어느 사이트가 어느 사이트에 데이터를 공급하는지 보여 줍니다. 각 미러와 가져오기는 원본 사이트에서 미러를 가진 사이트로 향하는 화살표입니다.
- 관리 대상 사이트가 하나도 응답하지 않는 주소의 원본은 그 주소와 점선 테두리로 그려집니다. 그 원본이 컨트롤러 자신이라면
ARKVORY_SITE_URL을 설정하십시오. 설정 참조. - 실패한 연결은 빨간 점선입니다.
- 연결 위의 숫자는 미러가 원본보다 몇 개의 변경만큼 뒤처졌는지입니다.
- 사이트가 응답하지 않는 동안 그 연결과 지연은 마지막으로 보고된 대로 남고, 마지막으로 알려진 상태로 표시됩니다. 지도에서는 점선으로, 표에서는 마지막으로 알려진 상태: 사이트가 응답하지 않음 힌트와 함께 표시됩니다.
지도 아래 표에 같은 내용이 나옵니다: 원본, 사이트, 저장소, 원본 저장소, 뒤처짐.
컨트롤러의 전역 관리자는 GET /api/v1/fleet/overview 또는 SDK의 client.fleet.overview()로 같은 경보와 연결을 받습니다. Prometheus용으로 컨트롤러는 사이트 상태와 경보 수를 내보냅니다. 모니터링 참조.
작동 방식
- 컨트롤러는 사이트 목록을 유지합니다. 각 사이트를 30초마다 HTTPS로 읽고 마지막 응답을 보관하므로, 응답이 멈춘 사이트도 마지막으로 알려진 상태를 계속 보여 줍니다.
- 페어링할 때 사이트는 컨트롤러에 고유한 키인 플릿 키를 줍니다. 이 키는 컨트롤러에 필요한 것에만 닿습니다: 사이트의 상태, 카탈로그의 설명, 그리고 나열된 변경인 다운로드 대기열, 업데이트 요청, 사이트 에이전트를 위한 미러와 HA 변경. 파일 바이트를 다운로드하거나, 저장소에 쓰거나, 계정과 키를 읽거나 바꿀 수 없습니다.
- 컨트롤러는 데이터 디렉터리의 키(
fleet.key)로 플릿 키를 봉인해 보관합니다. 데이터베이스와 그 백업만으로는 알아낼 수 없습니다. 복원한 뒤에는 사이트를 다시 페어링하세요. - 각 사이트는 어떤 컨트롤러가 자신을 관리하는지 보여 주며 언제든지 철회할 수 있습니다.
사이트 페어링
- 사이트에서: 사이트를 열고 이 사이트에서 페어링 코드 만들기를 선택합니다. 사이트는 10분간 유효한 코드와, 내장 HTTPS를 쓰면 인증서 지문을 보여 줍니다.
- 컨트롤러에서: 사이트를 열고 사이트 페어링에 사이트 주소를 입력한 뒤 확인를 선택합니다. 컨트롤러가 연결해 받은 인증서의 지문을 보여 줍니다.
- 두 지문을 비교합니다. 같아야 합니다. 다르면 주소가 틀렸거나 두 설치 사이에 무언가 있습니다: 페어링하지 마세요.
- 코드를 입력하고 페어링를 선택합니다. 사이트가 상태와 함께 목록에 나타납니다.
코드는 한 번만 쓸 수 있습니다. 사용했거나 만료된 코드는 거부됩니다: 새로 만드세요.
주소는 사이트 API의 HTTPS 주소입니다(예: https://branch.example:8443). 일반 HTTP는 같은 컴퓨터(127.0.0.1)에서만 허용됩니다. 사이트 앞의 프록시에서 TLS가 끝나면 사이트는 프록시의 인증서를 보여 줄 수 없습니다: 브라우저가 사이트 주소에 대해 보여 주는 SHA-256 지문과 비교하세요.
이후 컨트롤러는 정확히 그 인증서만 신뢰합니다. 사이트가 새 인증서를 받으면 인증서 변경됨가 표시됩니다: 사이트를 제거하고 다시 페어링하세요.
상태
| 상태 | 의미 | 할 일 |
|---|---|---|
| 정상 | 사이트가 마지막 읽기에 응답함 | 없음 |
| 아직 읽지 않음 | 사이트를 아직 읽지 않음 | 다음 읽기를 기다리거나 지금 읽기 선택 |
| 연결 불가 | 응답 없음: 사이트가 멈췄거나 네트워크 장애 | 사이트와 네트워크 확인. 마지막으로 알려진 상태는 계속 표시됨 |
| 인증서 변경됨 | 사이트가 확인된 것과 다른 인증서를 제시함 | 인증서가 갱신되었다면 사이트를 제거하고 다시 페어링 |
| 접근 철회됨 | 사이트 관리자가 이 컨트롤러를 철회함 | 새 코드로 다시 페어링 |
| 예상치 못한 응답 | 이 릴리스가 이해하지 못하는 방식으로 응답함 | 두 설치를 같은 릴리스로 업데이트 |
| 거부됨 | 사이트가 요청을 거부함 | 새 코드로 다시 페어링 |
목록에 표시되는 내용
- 버전: 사이트의 릴리스와 역할(쓰기 또는 읽기 게이트웨이).
- HA와 게이트웨이: HA 클러스터에서 완전한 사본 수와 쓰기에 필요한 사본 수, 자리를 가진 읽기 게이트웨이.
- 미러: 사이트의 미러와 가져오기, 가장 뒤처진 것이 원본보다 몇 개의 변경만큼 뒤처졌는지 또는 몇 개가 중지되었는지.
- 다운로드 대기열: 실행 중인 다운로드와 대기열에서 기다리는 다운로드.
- 마지막 응답: 사이트가 마지막으로 응답한 시각.
지금 모두 읽기는 다음 차례를 기다리지 않고 지금 모든 사이트를 읽습니다. 제거는 여기서 사이트를 잊습니다. 사이트에서도 컨트롤러를 철회하세요. 그때까지 키가 그곳에서 유효합니다.
사이트 콘텐츠
사이트 행의 콘텐츠는 목록 아래에 그 사이트의 저장소, 아티팩트, 파일을 엽니다. 저장소를 선택하세요. 찾기는 이름이나 레이블로 아티팩트를 찾고, 입력한 내용으로 경로가 시작하는 파일을 보여 줍니다. 더 보기는 다음 페이지를 읽습니다.
컨트롤러는 플릿 키로 사이트에서 이를 읽고 사이트가 준 응답을 그대로 보여 줍니다. 설명만 전달됩니다: 이름, 크기, 레이블, 단계, 경로, 리비전. 파일을 다운로드하려면 사이트 자체를 사용하세요.
사이트 설정
사이트 행의 설정는 목록 아래에 그 사이트의 설정을 엽니다. 이 사이트의 설정는 이 사이트에 대해 같은 카드를 엽니다. 카드는 세 부분으로 되어 있습니다:
- 다운로드 대기열: 동시에 진행되는 다운로드 수, 사람을 위해 남겨 둔 자리, 전략, 등급별 가중치와 트래픽 제어의 다른 대기열 값. 빈 필드는 사이트 환경의 값을 유지하며 회색으로 표시됩니다. 대기열 설정 저장는 재시작 없이 값을 즉시 적용합니다. 새로운 결정은 이를 따르고 진행 중인 다운로드는 자리를 유지합니다. 기본값으로 되돌리기는 환경값으로 되돌립니다.
- 업데이트: 설치된 버전과 최신 버전, 자동 설치와 유지 관리 시간, 지금 확인와 업데이트 설치. 사이트의 업데이터는 1분 안에 요청을 가져가며, 그때까지 카드는 요청을 수락됨으로 표시합니다.
- 미러와 클러스터: 키 교체와 분리가 있는 사이트의 미러와 가져오기, 소스 키와 함께하는 미러 또는 가져오기 연결, 그리고 HA 클러스터에서는 완전한 사본이 있는 노드로의 전환(노드 이름을 두 번 입력)와 단일 사본 결정. 사이트 에이전트는 각 요청을 1분 안에
arkvory configure와cluster-*의 검사와 롤백으로 적용하며, 에이전트에 보낸 요청가 각 요청이 어떻게 끝났는지 보여 줍니다. 소스 키는 별도 파일로 에이전트에 한 번만 전달되고 다시 표시되지 않습니다. 에이전트는 사이트의 업데이터입니다:updates-connect로 연결하세요.
각 변경에는 그 변경의 기준이 된 리비전이 담깁니다. 그동안 누군가 설정을 변경했다면 사이트는 변경을 거부하고 카드에 현재 값이 표시됩니다. 확인 후 다시 저장하세요. 사이트는 대기열을 누가 변경했는지 기록합니다: 컨트롤러의 키와 그 관리자의 이름.
컨트롤러에서는 미러나 가져오기를 새 저장소로만 연결할 수 있으며, 소스의 인증 기관 인증서는 사이트 자체에서 설정합니다(arkvory configure --mirror-ca-file). 사이트가 신뢰하는 대상은 원격으로 바뀌지 않습니다. 요청 목록은 각 변경이 어떻게 끝났는지 코드로 보여 주며, 에이전트 자신의 메시지는 사이트의 에이전트 로그에 남습니다. 변경이 중간에 중단되면 사이트 관리자가 확인하고 그곳에서 arkvory changes-reset --root <루트>를 실행할 때까지 에이전트는 다른 변경을 받지 않습니다.
이 사이트를 관리하는 곳
이 사이트에서 각 사이트는 자신을 관리하는 컨트롤러를 나열합니다: 이름, 누가 언제 페어링했는지, 마지막 요청. 철회는 컨트롤러의 키를 즉시 거부합니다.
설정
| 변수 | 기본값 | 의미 |
|---|---|---|
ARKVORY_SITE_NAME | 호스트 이름 | 다른 사이트에서 이 설치를 부르는 이름 |
ARKVORY_FLEET_KEY_FILE | 데이터 디렉터리의 fleet.key | 관리 대상 사이트의 키를 봉인하는 키, 쓰기 프로세스가 처음 시작될 때 생성 |
ARKVORY_SITE_URL | 설정 안 함 | 다른 사이트가 이 설치에 접근할 때 쓰는 https://host[:port] 주소. 설정하면 원본이 이 설치인 미러가 연결에서 이 설치로 연결됨. 잘못된 값이면 시작이 중지됨 |
ARKVORY_FLEET_LAG_ALERT | 1000 | 관리 대상 사이트의 미러가 원본보다 이 수 이상의 변경만큼 뒤처지면 경보. 1 이상의 정수 |
제한
- 펜싱 테스트와 클러스터 노드 추가 및 제거는 노드에서 실행하는 로컬 명령으로 남습니다. 읽기 게이트웨이는 자신의 환경에 있는 다운로드 대기열을 유지합니다.
- 컨트롤러는 최대 256개 사이트를 관리하고 동시에 최대 8개를 읽습니다.
- 컨트롤러는 관리하는 모든 사이트의 키를 가집니다: 전역 관리자와 데이터 디렉터리를 사이트 자체만큼 신중하게 보호하세요.