본문 바로가기
Kubernetes

kubernetes Probe

by Nirah 2022. 12. 27.

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

아래 쿠버네티스 공식문서에서 제공하는 과정을 따라해 보자.

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

 

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

 

다음과 같이 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

 

 

 

 

https://luv-n-interest.tistory.com/1396

'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