Kubernetes 헬스 검사 등록
Kubernetes 헬스 검사 등록 (Health Check K8s)
Consul on Kubernetes가 파드의 Kubernetes 헬스 프로브 상태를 서비스 메시 사용 사례를 위해 Consul에 동기화하는 방법을 설명하는 문서예요. 헬스 검사 동기화는 connectInject.enabled가 true일 때 자동으로 수행돼요.
출처: 문서
본문
참고 이 주제는 Kubernetes Health Checks에 대한 이해가 필요합니다.
이 페이지는 Consul on Kubernetes가 파드의 Kubernetes 헬스 프로브 상태를 서비스 메시 사용 사례를 위해 Consul에 동기화하는 방법을 설명합니다. 헬스 검사 동기화는 connectInject.enabled가 true일 때마다 자동으로 수행됩니다.
connect-inject된 각 Kubernetes 파드에 대해 다음이 구성됩니다:
- Consul 헬스 검사가 Consul 카탈로그에 등록됩니다. Consul 헬스 검사의 상태는 파드의 준비(readiness) 상태를 반영합니다.
- 파드가 투명 프록시 모드를 사용하면, 변형(mutating) 웹훅이 파드의 모든
http기반 startup, liveness, readiness 프로브를 Envoy 프록시를 통해 리디렉션합니다. 이 웹훅은 각 프로브에 대해ExposePaths구성에 정의되어 kubelet이 Envoy 프록시를 통해 엔드포인트에 접근할 수 있게 합니다. 변형 동작은consul.hashicorp.com/transparent-proxy-overwrite-probes파드 어노테이션 또는connectInject.defaultOverwriteProbesHelm 값을false로 설정해 비활성화할 수 있습니다.
파드에 대해 readiness 프로브가 설정되면 파드의 상태가 Consul 내에 반영되고, 파드의 건강에 따라 Consul이 서비스 메시 트래픽을 파드로 리디렉션합니다. 파드에 실패한 헬스 검사가 있으면 Consul은 더 이상 해당 파드와 연결된 서비스 인스턴스를 서비스 메시 트래픽에 사용하지 않습니다. 파드가 헬스 검사를 통과하면 Consul은 해당 서비스 인스턴스를 서비스 메시 트래픽에 사용합니다.
파드에 사용자 정의 헬스 검사가 할당되지 않은 경우, 기본 동작은 파드가 unready가 될 때까지 Consul 헬스 검사가 passing으로 표시되는 것입니다.
참고 파드 네트워크가 손상되더라도 발생할 수 있는 보안 문제를 완화하려면 모든 프로덕션 구성에 대해 TLS를 활성화하는 것이 좋습니다. 컨트롤러는 네트워크를 통해 모든 노드의 Consul 에이전트로 호출하므로 공격자가 해당 호출이 TLS로 암호화되지 않으면 잠재적으로 ACL 토큰을 스니핑할 수 있습니다.