Probe
Probe는 kubelet에 의해 주기적으로 수행되는 컨테이너 진단이다. (health check)
문제가 있는 컨테이너를 찾아내어 자동으로 재시작하거나 서비스에서 제외시킨다.
진단하기 위해선 다음과 같은 handler를 호출해서 이용한다.
1. ExecAction
예를 들어 컨테이너에 접속해서 지정된 명령어를 수행하고 exit code가 0일 때만 성공으로 분류
2. TCPScoketAction
예를 들어 지정된 포트로 TCP 소켓 연결을 시도
tcp virtual circuit
netstat -anp tcp
tcp port number
3. HttpGetAction
예를 들어 지정된 포트와 url로 HTTP get 요청을 전송하여 응답상태가 200~400구간에 속해야 성공
get 방식
post 방식
Probe Test
아래 쿠버네티스 공식문서에서 제공하는 과정을 따라해 보자.
다음과 같이 probe에 대한 옵션이 설정된 yaml파일로 컨테이너를 실행해보자.
vi probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- image: nginx:1.14
name: nginx
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
timeoutSeconds: 1
successThreshold: 1 # Threshold : 한계값
failureThreshold: 3
k create -f probe.yaml
k describe pods nginx | egrep -i liveness
'Kubernetes' 카테고리의 다른 글
스태틱(static) pods (1) | 2022.12.29 |
---|---|
init container (초기화 컨테이너) (0) | 2022.12.28 |
kubectl config 명령어 (클러스터 context 변경) (0) | 2022.12.27 |
Namespace (0) | 2022.12.26 |
Kubernetes Resource 관리 (0) | 2022.12.22 |