gliderlabs/registrator 컨테이너로 progrium/consul 컨테이너를 실행 중입니다. 도커 컨테이너가 위 또는 아래에 있는지 여부를 모니터링하기 위해 상태 확인을 만들려고합니다. 그러나 나는 건강 검진을 통해 아주 이상한 활동을 발견했다. 여기consul docker 상태 검사를 실행하는 데 문제가 있습니다.
curl -v -X PUT http://$CONSUL_IP_ADDR:8500/v1/agent/check/register -d @/home/myUserName/health.json
내 health.json 파일입니다 : 여기가 건강 검진을 만드는 데 사용되는 명령은
{
"id": "docker_stuff",
"name": "echo test",
"docker_container_id": "4fc5b1296c99",
"shell": "/bin/bash",
"script": "echo hello",
"interval": "2s"
}
먼저 나는 용기가 중지 될 때마다이 검사가 자동으로 서비스를 삭제 것입니다 것으로 나타났습니다 컨테이너가 부적절하게 중지되었을 때 (즉, 노드 장애를 유발할 때) 아무것도하지 않습니다.
둘째, docker_container_id
이 전혀 중요하지 않은 것으로 확인되었으므로이 상태 검사는 첨부 된 영사 노드에서 실행중인 모든 컨테이너에 첨부됩니다.
영사 노드에서 실행되는 모든 도커 컨테이너에 대해 작동중인 TCP 또는 http 상태 테스트를 실행하고 싶습니다. (예, 위의 json 파일이 스크립트를 실행한다는 것을 알았습니다. 영사가 컨테이너가 멈추었는지 또는 작동하고 있는지를 알기를 원합니다. 건강 검진이 실패 할 때 내 서비스가 스스로 삭제되는 것을 원하지 않습니다. 어떻게하면 좋을까요?
참고 : 상담원 상태 검사에 영사관 documentation이 매우 부족하고 막연하고 정확하지 않습니다. 그러니 그냥 링크 만하지 말고 읽어 보라고하십시오. 올바른 방법으로 도커 건강 점검을 설정하는 방법에 대한 자세한 설명을 찾고 있습니다.
업데이트 : 여기 공식 영사 컨테이너의 최신 버전으로 영사 서버를 시작 (지금의 dev에 버전이 곧 병이 생산 버전으로 업데이트)하는 방법입니다 :
#bootstrap server
docker run -d \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 53:53/udp \
--name=dev-consul0 consul agent -dev -ui -client 0.0.0.0
#its IP address will then be the IP of the host machine
#lets say its 172.17.0.2
#start the other two consul servers, without web ui
docker run -d --name --name=dev-consul1 \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 53:53/udp \
consul agent -dev -join=172.17.0.2
docker run -d --name --name=dev-consul2 \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 53:53/udp \
consul agent -dev -join=172.17.0.2
# then heres your clients
docker run -d --net=host --name=client0 \
-e 'CONSUL_LOCAL_CONFIG={"leave_on_terminate": true}' \
consul agent -bind=$(hostname -i) -retry-join=172.17.0.2
https://hub.docker.com/r/library/consul/