Consul, Discovery Server
1. 왜.
2. 그래서 무엇인가.
Consul HealthCheck 어떻게 작동되는가?
- consul HelathCheck는 말그대로 consul cluster로 구성된 서비스에 HealthCheck를 의미한다.
- 특정 노드, 서비스 등의 status를 관리하는 용도로 사용됩니다.
3. 써보자.
Registering Health Checks
- 대략 consul의 동작을 알았습니다. service, node를 붙이고 query도 날릴 수 있게 되었죠.
- 이제 우리가 붙인 service에 어떻게 health check를 할지에 대해 알아봅니다.
- helath check는 무지무지 중요합니다. service의 상태는 전체 시스템에 동작하는 여부에 아주 큰 결정권을 가지고 있기 때문입니다.
Defining Checks
-
service register와 비슷하게 check definition을 이용하여 helth check 를 붙입니다. 물론 http 통신으로도 붙일 수 있구요.
-
여기선 bash를 통해서 보낼겁니다. 당연 enable_script_checks
가 true로 설정되어 돌아가있어야합니다.
-
n2에 접속하여 config 파일을 추가해줍시다.
- 실제 n2 agent에서 web은 에러가 날겁니다. 왜나면 we 서버가 돌고있지않아서 curl test 가 실패하기 떄문이죠!
Checking Health Status
- 이제 우리는 간단한 check를 추가할 수 있습니다. HTTP api를 통해 health status를 봅시다.
4.마치며
- healthcheck는 discovery 서버의 가장 중요한 요소이다. 서비스의 상태 자체를 관리하기 때문이다.
- 상태를 관리하기 위한 조건이 중요할듯하다. 즉 bash 명령을 줄때 성공이 나오는 조건이 무엇이냐가 중요하다는 이야기다.
- 서비스가 상태가 passing인지 critical인지 등을 시스템의 민감도를 적당히 고민하여 정하여 할 것이다.
Ref