본문 바로가기

IT Study/Kubernetes

kubernetes Probe? self-healing

kubernetes Probe self-healing

쿠버네티스 Probe self-healing 이란 kubelet에 의해 컨테이너를 주기적으로 체크해서

컨테이너를 재시작하거나 문제가있는 파드(컨테이너)를 중지 시키는 진단기능 이다

쿠버네티스는 총3가지의 probe를 제공한다.

 

livenessprobe 매커니즘

쿠버네티스에서 제공하는 self-healing 기능 중 하나

컨테이너 마다 지정할수있음.

컨테이너가 동작할수있는지 확인하고 동작하지 않거나 문제가 발생할경우 정책에따라 재시작한다

livenessprobe를 컨테이너에 지정하지않으면 기본값은 success 즉 진단에성공했다고 판단함.

 

컨테이너(APP)의 용도,목적에 따라 livenessprobe 3가지의 매커니즘으로 관리할수있다.

 

httpGet probe

-> httpGet Action은 지정된 컨테이너의 IP,PORT,PATH로 HTTP GET 요청을 보내서

해당컨테이너가 응답상태코드가 200~400값이 반환되면 성공(success) , 그외에는 실패(failure)로 판단하여 파드가아닌 컨테이너를 재시작한다

livenessProbe:
       httpGet:
        port: 80
        path: /
 
tcpSocket probe

->TCPSocket Action은 지정된 컨테이너의 IP와 PORT로 TCP연결을 시도하여 성공(success) 여부를 진단

   실패(failure)하면 파드가아닌 컨테이너를 재시작한다

 livenessProbe:
    tcpSocket:
      port: 22

 exec probe

->exec Action은 지정된 컨테이너 안에서 명령을 실행하고 종료코드가 0이면 성공(success) 0이아니면 실패(failure)로

   파드가아닌 컨테이너를 재시작한다.

livenessProbe:
     exec:
       command:
         - sleep
         - "3600"

 

※진단결과값은 3가지가 있다

success:컨테이너 진단성공

failure:컨테이너 진단실패

unknown:컨테이너 실패,상태를 알수없음

 

livenessprobe 매개변수

livenessprobe를 보다 정확하게 설정하고 제어하는데 필요한 옵션값.

 

initialDelaySeconds

-> 컨테이너가 시작후 몇 초안에 livenessprobe self-healing으로 health check 할껀지에 대한 시간(초)

    기본값은 0초

 

periodSeconds

->health check를 몇 시간(초)마다 반복실행

    기본값은 1초

 

timeoutSeconds

-> health check 후 결과를 기다리는 시간(초)

    기본값은 1초

 

successThreshold

-> 몇번의 health check 후 성공결과를 수신해야 성공으로 인정 하는지에 대한 값

     기본값은 1

 

failureThreshold

-> 몇번의 health check 후 실패결과를 수신해야 실패로 인정 하는지에 대한 값

     기본값은 3

 

kubectl describe pod [파드명] 명령어로 확인가능

describe내용 중 일부

 

Liveness:       http-get http://:8080/ delay=0s timeout=1s period=10s #success=1 #failure=3

 

 

●readinessProbe 매커니즘

쿠버네티스에서 제공하는 self-healing 기능 중 하나로 readinessProbe의 매커니즘은

위와 같다 (httpget,tcpsocket,exec)

 

컨테이너가 실행된후 실제로 서비스요청 즉 APP이 시작할 준비가 되었는지 체크하기 위한 기능

진단에 이상이 있을경우 트래픽을 보내지 않도록 하고 Service에서 해당POD를 제외시킨다.

 

●readinessProbe 매개변수

readinessProbe의 매개변수는 위와 같다 ( initialDelaySeconds,periodSeconds 등등)

 

●startupProbe 매커니즘

쿠버네티스에서 제공하는 self-healing 기능 중 하나로  startupProbe의 매커니즘은

위와 같다 (httpget,tcpsocket,exec)

 

컨테이너내의 APP가 시작되었는지를 나타낸다 startupProbe가 적용된경우 성공할때까지 다른probe는 동작되지않음

계속 실패할경우 kubelet이 컨테이너를 죽이고 재시작정책에 따라 처리됨.

 

●startupProbe 매개변수

startupProbe의 매개변수는 위와 같다 ( initialDelaySeconds,periodSeconds 등등)

'IT Study > Kubernetes' 카테고리의 다른 글

kubernetes infra container pause  (0) 2023.01.12
kubernetes init container  (0) 2023.01.11
kubernetes pod  (0) 2023.01.07
kubernetes yaml  (0) 2023.01.06
kubernetes namespace  (0) 2023.01.05