헬스 체크 재시작 구성하기

헬스 체크 재시작 구성하기 (Configure health check restart)

check_restart 스탠자는 언제 불건전한(unhealthy) 서비스 체크가 있는 작업을 재시작할지 노마드에 지시해요. Consul의 헬스 체크가 check_restart 스탠자에 지정된 한도(limit)만큼 불건전했으면, 태스크 그룹의 restart 정책에 따라 재시작돼요. 재시작은 작업의 restart 정책에 따라 작업을 실행하는 노드에 로컬이에요.

limit 필드는 로컬 재시작을 시도하기 전에 실패한 헬스 체크가 몇 번 관찰되는지 지정하는 데 사용돼요. 운영자는 또한 작업이 재시작된 후 헬스 체크 전에 기다리는 grace 기간을 지정할 수 있어요.

재시작이 실패를 해결할 가능성이 있을 때 서비스에 체크 재시작을 구성해야 해요. 예로는 서비스의 일시적 연결 문제를 해결하기 위해 재시작하는 것이 있어요.

다음 check_restart 스탠자는 grace 기간과 함께 연속 두 번의 헬스 체크 실패를 기다리며, critical과 warning 상태를 모두 실패로 간주해요.

check_restart {
  limit           = 2
  grace           = "10s"
  ignore_warnings = false
}

다음 CLI 예시 출력은 헬스 체크 실패가 재시작 한도에 도달할 때까지 재시작을 촉발하는 것을 보여줘요.

$ nomad alloc status e1b43128-2a0a-6aa3-c375-c7e8a7c48690
ID                   = e1b43128
Eval ID              = 249cbfe9
Name                 = demo.demo[0]
Node ID              = 221e998e
Job ID               = demo
Job Version          = 0
Client Status        = failed
Client Description   = <none>
Desired Status       = run
Desired Description  = <none>
Created              = 2m59s ago
Modified             = 39s ago

Task "test" is "dead"
Task Resources
CPU      Memory   Disk     Addresses
100 MHz  300 MiB  300 MiB  p1: 127.0.0.1:28422

Task Events:
Started At     = 2018-04-12T22:50:32Z
Finished At    = 2018-04-12T22:50:54Z
Total Restarts = 3
Last Restart   = 2018-04-12T17:50:15-05:00

Recent Events:
Time                       Type              Description
2018-04-12T17:50:54-05:00  Not Restarting    Exceeded allowed attempts 3 in interval 30m0s and mode is "fail"
2018-04-12T17:50:54-05:00  Killed            Task successfully killed
2018-04-12T17:50:54-05:00  Killing           Sent interrupt. Waiting 5s before force killing
2018-04-12T17:50:54-05:00  Restart Signaled  health check: check "service: \"demo-service-test\" check" unhealthy
2018-04-12T17:50:32-05:00  Started           Task started by client
2018-04-12T17:50:15-05:00  Restarting        Task restarting in 16.887291122s
2018-04-12T17:50:15-05:00  Killed            Task successfully killed
2018-04-12T17:50:15-05:00  Killing           Sent interrupt. Waiting 5s before force killing
2018-04-12T17:50:15-05:00  Restart Signaled  health check: check "service: \"demo-service-test\" check" unhealthy
2018-04-12T17:49:53-05:00  Started           Task started by client

출처: 문서

더 알아보기 (Learn more)