[쿠버네티스] 5-2~4. livenessProbe, init container & infra container


livenessProbe, init container & infra container 에 대해 정리한다.


크리스마스 아침에 카페가서 가볍게 공부하고 돌아왔다. 춥다. 따배쿠 를 보고 공부했다.

5-2. Kubernetes Pod - livenessProbe를 이용해서 Self-healing Pod 만들기

  • Liveness Probe
    • 늘 건강한 컨테이너를 유지하게 하기 위해서, 안되는 경우에 리스타트 방법
    • 매커니즘(건강검진. 웹, 데이터베이스에 데이터가 있는지 이렇게 다 다르니까 3가지로 나뉨)
      • httpGet probe : 웹 접속요청을 해서 반환 값이 200이 안나오면 컨테이너 다시 시작(리스타트)
      • tcpSocket probe : tcp연결 해서 연결안되면 다시 시작
      • exec probe : 명령 전달 해서 0이 아니면 컨테이너를 다시 시작
        • ex. 특정 컨테이너가 백엔드 db에서 연결되어있을때, 데이터가 있니? 확인
        • 예를 들어 ls, /data/file 처럼 명령어를 써서 들어가서 건강검진
      • 중요한건!! 위 3가지의 경우, 파드를 리스타트하는게 아니고 컨테이너를 리스타트한다.
    • liveness probe 매개변수
      • periodSeconds : 반복 실행 시간
      • initialDelaySeconds : 딜레이 시간
      • timeoutSeconds : 응답 기다리는 시간
    • describe 하면 Liveness 내용이 나옴
    • 컨테이너 테스트 예제1(라이브니스가 진짜 잘되는지 보기위한 예제)
      • smlinux/unhealthy 컨테이너 : 5번 200 성공, 다음은 500 에러를 발생. 다시 리스타트, 늘 건강한 컨테이너를 유지됨을 볼수 있는 예제. 예제일뿐
      • describe 명령어로 보면 warning이 뜨는걸 볼수 있다.

5-3, 4. Kubernetes Pod - init container & infra container

  • init container
    • 앱 컨테이너(main) 실행 전에 미리 동작시킬 컨테이너(init)
    • init컨테이너가 정상이어야 main컨테이너가 실행된다.
    • 로그인전에 로그인db 라던지, 어디 접속할때 네트워크가 잘되는지 확인이 다 init
    • 예시에서는 메인 컨테이너 하나 올리고, init이 2개로 정한다음에, init 컨테이너들을 차례대로 올려서 메인 컨테이너가 최종적으로 실행되는걸 보여줌
  • infra container(pause)
    • 컨테이너로 파드 만들때, 사실은 pause컨테이너도 같이 생긴다.
    • pause컨테이너는 파드의 환경을 통제한다.
    • 실제 파드가 있는 노드안에 들어가니까 pause 컨테이너라는게 생겨져있다.(docker ps했더니)





© 2018. by statssy

Powered by statssy