Consul 시작 02 - Consul 에이전트 실행
4325 단어 consulmicroservice
모든 다른 에이전트는 클라이언트 모드에서 실행됩니다.클라이언트는 서비스를 등록하고 건강 검사를 실행하며 서버에 조회를 전송하는 매우 가벼운 프로세스입니다.프록시는 집단의 모든 노드에서 실행되어야 합니다.
데이터 센터를 시작하는 것에 대한 자세한 내용은 이 안내를 보십시오.
시작 에이전트
간단하게 보기 위해서, 우리는 잠시 개발자 모드에서 Consul 에이전트를 시작할 것입니다.이 모드는 단일 노드의 Consul 환경을 매우 쉽게 빠르게 시작할 수 있습니다.물론 생산 환경에 쓰이는 것이 아니라 어떤 상태도 지속되지 않는다.
$ consul agent -dev
==> Starting Consul agent...
==> Starting Consul agent RPC...
==> Consul agent running!
Node name: 'Armons-MacBook-Air'
Datacenter: 'dc1'
Server: true (bootstrap: false)
Client Addr: 127.0.0.1 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
Cluster Addr: 172.20.20.11 (LAN: 8301, WAN: 8302)
Gossip encrypt: false, RPC-TLS: false, TLS-Incoming: false
Atlas:
==> Log data will now stream in as it occurs:
[INFO] raft: Node at 172.20.20.11:8300 [Follower] entering Follower state
[INFO] serf: EventMemberJoin: Armons-MacBook-Air 172.20.20.11
[INFO] consul: adding LAN server Armons-MacBook-Air (Addr: 172.20.20.11:8300) (DC: dc1)
[INFO] serf: EventMemberJoin: Armons-MacBook-Air.dc1 172.20.20.11
[INFO] consul: adding WAN server Armons-MacBook-Air.dc1 (Addr: 172.20.20.11:8300) (DC: dc1)
[ERR] agent: failed to sync remote state: No cluster leader
[WARN] raft: Heartbeat timeout reached, starting election
[INFO] raft: Node at 172.20.20.11:8300 [Candidate] entering Candidate state
[DEBUG] raft: Votes needed: 1
[DEBUG] raft: Vote granted. Tally: 1
[INFO] raft: Election won. Tally: 1
[INFO] raft: Node at 172.20.20.11:8300 [Leader] entering Leader state
[INFO] raft: Disabling EnableSingleNode (bootstrap)
[INFO] consul: cluster leadership acquired
[DEBUG] raft: Node 172.20.20.11:8300 updated peer set (2): [172.20.20.11:8300]
[DEBUG] consul: reset tombstone GC to index 2
[INFO] consul: New leader elected: Armons-MacBook-Air
[INFO] consul: member 'Armons-MacBook-Air' joined, marking health alive
[INFO] agent: Synced service 'consul'
Consul 에이전트가 시작되고 로그 정보를 출력하는 것을 볼 수 있습니다.로그 정보에서 서버 모드에서 실행되고 집단적인 leadship을 설명하는 에이전트를 볼 수 있습니다.또한 현지의 구성원은 이미 건강한 집단 구성원으로 표시되었다.
OS X 사용자 참고: Consul은 기본 노드 이름으로 시스템 이름을 사용합니다.만약 당신의 기계 이름이 점을 포함하고 있다면, DNS 조회는 이 노드가 작동하지 않을 것입니다. 이 문제를 피하기 위해서 -node현식으로 당신의 노드 이름을 설정합니다.
집단 구성원
다른 터미널에서 consul members를 실행하면 Consul 집단의 모든 노드를 볼 수 있습니다.우리는 다음 부분에서 집단에 가입하는 방법을 소개하지만, 지금은 한 명의 구성원만 볼 수 있다.
$ consul members
Node Address Status Type Build Protocol DC
Armons-MacBook-Air 172.20.20.11:8301 alive server 0.6.1dev 2 dc1
이 명령 출력은 당신의 노드, 실행 주소, 건강 상태, 집단에서의 역할, 버전 정보를 보여 줍니다.또한 메타데이터는 -detailed 옵션을 통해 볼 수 있습니다.
members 명령 옵션의 출력은gossip 프로토콜을 기반으로 하고 그 내용은 최종적으로 일치합니다.즉, 언제든지 로컬 에이전트에서 본 내용은 현재 서버의 상태와 절대 일치하지 않을 수도 있습니다.일관성이 강한 상태 정보가 필요한 경우 HTTP API를 사용하여 Consul 서버에 요청을 보냅니다.
$ curl localhost:8500/v1/catalog/nodes
[{"Node":"Armons-MacBook-Air","Address":"172.20.20.11","CreateIndex":3,"ModifyIndex":4}]
또한 HTTP API의 경우 DNS 인터페이스도 노드 정보를 조회하는 데 자주 사용됩니다.DNS가 Consul 프록시의 DNS 서버를 찾을 수 있다고 확신해야 합니다. Consul 프록시의 DNS 서버는 기본적으로 8600 포트에서 실행됩니다.DNS 실체 ("Armons-MacBook-Air.node.consul"과 유사) 에 대한 자세한 설명은 뒤에 있습니다.
$ dig @127.0.0.1 -p 8600 Armons-MacBook-Air.node.consul
...
;; QUESTION SECTION:
;Armons-MacBook-Air.node.consul. IN A
;; ANSWER SECTION:
Armons-MacBook-Air.node.consul. 0 IN A 172.20.20.11
에이전트 중지
당신은 에이전트를 우아하게 멈추기 위해 Ctrl-C(인터럽트 신호)를 사용할 수 있습니다.에이전트를 멈추면 그룹에서 벗어나 닫히는 메시지를 볼 수 있습니다.
우아하게 집단을 떠나기 위해, Consul은 다른 집단 구성원들에게 자신이 이미 이탈했다고 통지할 것이다.프록시 프로세스를 강제로 죽이면, 다른 그룹 구성원들은 노드가 효력을 잃었는지 확인해야 합니다.구성원이 떠나면 서비스와 (checks) 가 디렉터리에서 제거됩니다.구성원이 효력을 잃으면, 건강은critical로 간단하게 표시되지만, 디렉터리에서 제거되지 않습니다.Consul은 자동으로 비활성화된 노드에 다시 연결하여 일부 네트워크 상황에서 복구할 수 있도록 합니다.
또한 프록시가 서버 모드로 시작되면 우아하게 떠나는 것이 중요하다. 잠재적인 가용성 문제를 피할 수 있기 때문이다. 일치성 프로토콜, 안내서를 보고 서버를 어떻게 안전하게 늘리고 제거하는지에 대한 자세한 정보를 얻을 수 있기 때문이다.
다음 단계
간단한 Consul 클러스터가 시작되었으니 [서비스] () 를 받읍시다!
번역
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
NestJS에서 Consul-KV 사용Consul 키/값 저장소로 쉽게 작업 - 키/값(KV) 저장소 - 콘솔. env 파일을 consul-kv로/에서 업로드/다운로드하는 유틸리티 - Consul-KV와 실시간 작업을 위한 NestJS 모듈 - 이 게시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.