Consul 데이터센터 부트스트랩
Consul 데이터센터 부트스트랩 (Bootstrap a Consul datacenter)
이 페이지에서는 가상 머신(VM)에서 실행되는 Consul 데이터센터를 부트스트랩하는 프로세스를 설명해요.
출처: 문서
본문
이 페이지에서는 가상 머신(VM)에서 실행되는 Consul 데이터센터를 부트스트랩하는 프로세스를 설명합니다.
배경 (Background)
Consul에서 데이터센터는 서버, 프록시, 게이트웨이와 같은 리소스의 할당을 관리하는 조직 단위입니다. 데이터센터의 객체는 Consul 서버 클러스터가 관리하는 토큰과 mTLS 인증서를 포함한 보안 리소스를 공유합니다. 이 서버 클러스터는 단일 클라우드 지역에 배포된 1~5개의 Consul 서버 그룹입니다.
클러스터가 처음 생성되면 요청을 처리하기 전에 합의 프로토콜을 시작하고 리더를 선출해야 합니다. 데이터센터 부트스트랩 은 클러스터의 초기 서버 노드를 구성하고 조인하는 프로세스를 말합니다. 데이터센터를 부트스트랩한 후 cloud auto-join을 사용하여 배포할 때 컨트롤 플레인과 데이터 플레인의 Consul 에이전트에 자동으로 연결할 수 있습니다.
사전 요구 사항 (Prerequisites)
Consul 데이터센터를 부트스트랩하려면 로컬 Consul 바이너리 설치가 있는 노드가 하나 이상 필요합니다. 테스트 및 개발 시나리오의 경우 로컬 노드를 사용하여 단일 Consul 서버로 실행되는 데이터센터를 배포할 수 있습니다.
데이터센터 부트스트랩 (Bootstrap a datacenter)
consul agent 명령의 플래그를 통해 구성을 전달하여 데이터센터를 부트스트랩할 수 있습니다. 또한 단일 에이전트 구성 파일로 여러 서버를 정의한 다음, 해당 파일을 사용하여 각 에이전트를 시작할 수도 있습니다. Consul 서버가 예상 서버 수를 감지하면 선거를 진행하고 Raft 프로토콜에 따라 통신합니다.
클러스터를 부트스트랩하려면 다음 단계를 완료하세요:
- 클러스터를 시작하고 시작할 서버 에이전트 수를 지정합니다.
- 서버를 자동 또는 수동으로 조인합니다.
명령줄에서 -bootstrap-expect 플래그를 사용하거나 에이전트 구성에서 bootstrap_expect를 구성하세요. 이 옵션은 예상 서버 수를 선언하고 지정된 수의 서버가 사용 가능해지면 자동으로 부트스트랩합니다. 여러 서버가 자신을 리더로 간주하는 불일치 및 배포를 방지하려면 각 서버의 bootstrap_expect 매개변수에 동일한 값을 지정하거나 모든 서버에 값을 전혀 지정하지 않아야 합니다. -bootstrap-expect를 생략하면 Consul은 예상 서버 수를 1로 기본 설정합니다.
다음 명령은 단일 Consul 서버 에이전트를 실행합니다. 또한 Consul 클러스터가 운영 가능하고 부트스트랩된 것으로 간주되기 전에 총 3개의 Consul 서버 에이전트가 조인될 때까지 기다리도록 지시합니다.
$ consul agent -data-dir /tmp/consul -server -bootstrap-expect 3
-bootstrap-expect가 3으로 설정되었으므로 Consul 서버 에이전트 인스턴스를 두 개 더 시작한 다음 클러스터가 운영되도록 조인해야 합니다. 또한 여러 Consul 서버를 배포할 때 사용할 에이전트 구성 파일을 만들 수도 있습니다. 다음 예제는 세 개의 서버로 데이터센터를 부트스트랩하기 위한 기본 에이전트 구성을 보여줍니다.
bootstrap.hcl
datacenter = "dc1"
data_dir = "/tmp/consul"
log_level = "INFO"
server = true
bootstrap_expect = 3
각 서버에 에이전트 구성을 적용하려면 각 VM에서 consul agent 명령을 실행하세요.
$ consul agent -config-file=bootstrap.hcl
클러스터의 서버 수가 예상 부트스트랩 수보다 적으면 Consul은 콘솔에 경고 메시지를 출력합니다.
[WARN] raft: EnableSingleNode disabled, and no known peers. Aborting election.
서버 조인 (Join the servers)
서버를 시작한 후 Raft 선거를 시작하려면 클러스터에서 서버를 조인해야 합니다. 서버를 자동으로 조인하려면 -retry-join CLI 플래그 또는 retry_join 구성 옵션을 사용하여 지원되는 클라우드 환경에 대한 네트워크 주소 또는 cloud auto join 태그를 지정하세요.
다음 예제는 -retry-join CLI 플래그에 대한 주소 옵션과 형식을 보여줍니다.
DNS 항목 사용:
$ consul agent -retry-join "consul.domain.internal"
IPv4 사용:
$ consul agent -retry-join "10.0.4.67"
기본이 아닌 Serf LAN 포트 사용:
$ consul agent -retry-join "192.0.2.10:8304"
IPv6 사용:
$ consul agent -retry-join "[::1]:8301"
여러 주소 사용:
$ consul agent -retry-join "consul.domain.internal" -retry-join "10.0.4.67"
Cloud auto-join 사용:
$ consul agent -retry-join "provider=aws tag_key=..."
Raft 상태 확인 (Verify the Raft status)
부트스트랩 프로세스가 성공적으로 완료되었는지 확인하려면 consul info 명령을 사용하여 클러스터의 현재 Raft 상태를 확인하세요. 특히 다음을 확인하세요:
raft.num_peers는 예상 부트스트랩 서버 수보다 하나 적어야 합니다.raft.last_log_index는 0이 아닌 숫자여야 합니다.
다음 단계 (Next steps)
데이터센터를 부트스트랩한 후 에이전트 구성을 수정한 다음 consul reload 명령을 실행하여 데이터센터를 추가로 변경할 수 있습니다.
초기 부트스트랩 프로세스가 완료된 후 에이전트 구성에서 bootstrap_expect를 제거하고 에이전트를 다시 로드하는 것을 권장합니다. 이 작업은 실패한 서버 에이전트가 다시 시작한 후 의도하지 않게 다시 부트스트랩하는 것을 방지합니다. 대신 자동으로 데이터센터의 클러스터에 다시 조인합니다.
또한 Consul의 브라우저 기반 사용자 인터페이스를 활성화하고, 클라이언트 에이전트를 배포하고, 서비스 검색 및 서비스 메시 사용 사례를 위해 Consul 카탈로그에 서비스를 등록할 수 있습니다. 자세한 내용은 다음 주제를 참조하세요: