1. LivenessProbe - 파드가 계속 실행될 수 있음을 보장하는 쿠버네티스의 기능이다.
- httpGet Probe : 지정한 IP 주소에 GET요청을 날렸을때 정상응답(200)이 오는지 안오는지 확인하고 오류가 나온다면 컨테이너를 다시 띄운다. ( Restart )
- tcpSocket Probe : 특정 포트로 TCP연결을 시도했을때 작동하지 않으면 컨테이너를 다시 시작한다.
- exec : exec 명령을 전달하고 명령의 종료 코드가 0이 아닐 경우 컨테이너를 다시 시작한다.
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
livenessProbe를 통해서 헬스체크 하는 부분이 들어갔다.
- delay : 응답을 기다리는 시간이 0초이다.
- timeout = 1s 이라고 되어있는데 GET요청을 날렸는데 1초 이상 응답이 오지 않으면 헬스체크를 해준다.
- period = 10s 10초마다 검사를 하겠다는 뜻이다.
10초 간격으로 검사하며 , 3번 검사했는데 응답이 제대로 안오면 unhealthy와 킬링 메시지가 등장한다는 것을
알 수 있다.
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: k8s.gcr.io/busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
위 내용은 쿠버네티스 공식 문서에 나와있는 liveness-Probe에 관한 내용이다.
파일을 하나 만들고 삭제하며 livenessProbe exec를 통해서 검사한다. (즉 응답이 1이 아닌 경우는 비정상으로 간주)
cat /tmp/healthy 했을때 응답이 정상적이지 않으면 실패로 간주하고 컨테이너를 다시 재시작한다.
댓글