반응형
- Liveness Probe : 쿠버네티스가 파드가 정삭적으로 작동하고 있는지 확인하고, 정상적이지 않을때 파드 내 컨테이너를 재시작하여 파드가 계속 실행될 수 있음을 보장하는 기능
- pod 내의 컨테이너를 재시작하는 것으로 pod ip느 그대로 유지된다.
- Pod에 Spec에 정의한다.
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
동작 매커니즘
httpGet probe
지정한 ip 주소, port, path에 HTTP GET 요청을 보내, 해당 컨테이너가 응답하는지를 확인한다. 반환코드가 200이 아닌 값(ex 500)이 나오면 오류. 컨테이너를 다시 시작한다.
livenessProbe:
httpGet:
path: /
port: 80
tcpSocket probe
지정된 포트에 TCP 연결을 시도, 연결되지 않으면 컨테이너를 다시 시작.
livenessProbe:
tcpSocket:
port: 22
exec probe
exec 명령을 전달하고 명령의 종료 코드가 0이 아니면 컨테이너를 다시 시작한다.
livenessProbe:
exec:
command:
- ls
- /data/file
의미 : /data/file이 존재하는지 확인
definition.yaml 비교
# pod definition apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.14 |
# livenessprobe definition apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.14 livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 15 periodSeconds: 20 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 |
예제
apiVersion: v1
kind: Pod
metadata:
name: liveness-pod
spec:
containers:
- image: smlinux/unhealthy
name: unhealthy-container
ports:
- containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /
port: 8080
# 파일명 : pod-liveness.yaml
smlinux/unhealthy 이미지는 따배강사님이 만든 컨테이너로
요청 5번까지는 정상 200을 리턴하다가 그 이후에는 500오류를 발생시킨다.
1. 해당 파일로 pod 생성
kubectl create pod -f pod-liveness.yaml
오류가 나면 indent 문제가 있을 가능성이 매우 크다!
※ 파드 상태 매 2초마다 확인하기
kubectl get pods -o wide --watch
# or
watch kubectl get pods -o wide
2. 파드 옵션 확인
kubectl describe pod liveness-pod
반응형
'Kubernetes' 카테고리의 다른 글
[Kubernetes] VM 쿠버네티스 실습환경 설정 - kubectl 설치 (0) | 2023.04.07 |
---|---|
[Kubernetes][따배쿠 6-1] Controller - Replication Controller (0) | 2023.03.22 |
[Kubernetes] 따배쿠 5강 문제풀이 (0) | 2023.03.17 |
[Kubernetes] pod에 resource 할당하기 | 환경변수 설정과 실행 패턴 (0) | 2023.03.17 |
[Kubernetes] init & infra container / static pod (0) | 2023.03.03 |