-
probekubernetes 2023. 10. 27. 12:20
Configure Liveness, Readiness and Startup Probes
This page shows how to configure liveness, readiness and startup probes for containers. The kubelet uses liveness probes to know when to restart a container. For example, liveness probes could catch a deadlock, where an application is running, but unable t
kubernetes.io
kubectl describe pod liveness-exec
출력 하단에는 활성 프로브가 실패했으며 실패한 컨테이너가 종료되고 다시 생성되었음을 나타내는 메시지가 있습니다.
출력에는 RESTARTS증가된 것으로 표시됩니다. RESTARTS실패한 컨테이너가 다시 실행 상태로 돌아가자마자 카운터가 증가합니다 .구성 파일에서 Pod에 단일 Container. 이 periodSeconds필드는 kubelet이 5초마다 활성 프로브를 수행해야 함을 지정합니다. 이 initialDelaySeconds필드는 첫 번째 프로브를 수행하기 전에 5초를 기다려야 한다고 kubelet에 알려줍니다. 프로브를 수행하기 위해 kubelet은 cat /tmp/healthy대상 컨테이너에서 명령을 실행합니다. 명령이 성공하면 0을 반환하고 kubelet은 컨테이너가 살아 있고 건강한 것으로 간주합니다. 명령이 0이 아닌 값을 반환하면 kubelet은 컨테이너를 종료하고 다시 시작합니다.
kubectl describe pod liveness-http
kubectl get pod -o wide구성 파일에서 Pod에 단일 컨테이너가 있음을 확인할 수 있습니다. 이 periodSeconds필드는 kubelet이 3초마다 활성 프로브를 수행해야 함을 지정합니다. 이 initialDelaySeconds필드는 첫 번째 프로브를 수행하기 전에 3초를 기다려야 한다고 kubelet에 알려줍니다. 프로브를 수행하기 위해 kubelet은 컨테이너에서 실행 중이고 포트 8080에서 수신 대기 중인 서버에 HTTP GET 요청을 보냅니다. 서버 경로에 대한 핸들러가 /healthz성공 코드를 반환하면 kubelet은 컨테이너가 살아 있고 건강한 것으로 간주합니다. 핸들러가 실패 코드를 반환하면 kubelet은 컨테이너를 종료하고 다시 시작합니다. kubectl apply -f https://k8s.io/examples/pods/probe/tcp-liveness-readiness.yaml
kubectl get pod -o wideapiVersion: v1
kind: Pod
metadata:
name: goproxy
labels:
app: goproxy
spec:
containers:
- name: goproxy
image: registry.k8s.io/goproxy:0.1
ports:
- containerPort: 8080
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 15
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 15
periodSeconds: 10보시다시피 TCP 확인 구성은 HTTP 확인과 매우 유사합니다. 이 예에서는 준비 상태 및 활성 상태 프로브를 모두 사용합니다. kubelet은 컨테이너가 시작된 지 15초 후에 첫 번째 준비 프로브를 보냅니다. 그러면 포트 8080에서 컨테이너에 연결이 시도됩니다 goproxy. 프로브가 성공하면 포드가 준비된 것으로 표시됩니다. kubelet은 10초마다 이 확인을 계속 실행합니다.
이 구성에는 준비 프로브 외에도 활성 프로브가 포함됩니다. kubelet은 컨테이너가 시작된 후 15초 후에 첫 번째 활성 프로브를 실행합니다. 준비 프로브와 유사하게 이는 포트 8080에서 컨테이너에 연결을 시도합니다 goproxy. 활성 프로브가 실패하면 컨테이너가 다시 시작됩니다.'kubernetes' 카테고리의 다른 글
라벨 실습 (0) 2023.10.27 라벨 (0) 2023.10.27 hostpath (0) 2023.10.27 empty (0) 2023.10.27 클러스터 배포명세서 (0) 2023.10.27