반응형
- LivenessProbe를 이용해서 self-healing Pod (kubelet으로 컨테이너 진단하기)
- Pod가 계속 실행할 수 있음을 보장
- Pod의 spec에 정의
- yaml에 livenessProbe를 추가해준다
Pod-definition | livenessProbe definition |
apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.18 |
apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:1.18 livenessProbe: httpGet: path: / port: 80 |
- name: nginx-container image: nginx:1.18 | apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers:
- name: nginx-container image: nginx:1.18 livenessProbe: httpGet: path: / port: 80 |
- livenessProbe 매커니즘
- httpGet probe: 지정한 IP주소, Port, path에 HTTP GET 요청을 보내, 해당 컨테이너가 응답하는지를 확인한다. 반환코드가 200이 아닌 값이 나오면 오류, 컨테이너를 다시 시작한다.
livenessProbe:
httpGet:
path: /
port: 80
- tcpSocket probe: 지정된 포트에 TCP연결을 시도. 연결되지 않으면 컨테이너를 다시 시작한다.
livenessProbe:
tcpSocket:
port: 22
- exec probe: exec 명령을 전달하고 명령의 종료코드가 0이 아니면 컨테이너를 다시 시작한다.
- 백엔드에 있는 특정 데이터를 가져와서 서비스 하는 방식
- 데이터가 정상적으로 존재하는지 컨테이너 안에서 지속적으로 체크 (ls, ps .. 등등)
livenessProbe:
exec:
command:
- ls
- /data/file - (연속 3번 오류발생하면 컨테이너를 kill 후 다시 docker hub (혹은 내부 hub 등)에서 새로운 파드를 받아서 재실행 <restart>)
- IP address 는 재시작되어도 변경되지 않는다.
- liveness probe 매개변수
- periodSeconds: health check 반복 실행 시간 (초)
- initialDelaySeconds: Pod 실행 후 delay할 시간 (초)
- timeoutSeconds: health check후 응답을 기다리는 시간 (초)
Pod-definition livenessProbe definition apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec: containers:
- name: nginx-container
image: nginx:1.18apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:1.18
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 15
periodSeconds: 20
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
반응형
'K8S' 카테고리의 다른 글
infra container(pause) 이해하기 (0) | 2024.12.27 |
---|---|
init container를 적용한 Pod (0) | 2024.12.27 |
Pod & multi Pod (1) | 2024.12.27 |
yaml 템플릿 & API (0) | 2024.12.27 |
Namespace 정리 (0) | 2024.12.27 |