3.2.8 파드와 컨테이너 자동 복구 방법

estar987·2023년 9월 4일

Kubernetes

목록 보기
19/64

셀프 힐링

  • 파드의 자동 복구 기술
  • 제대로 작동하지 않는 컨테이너를 다시 시작하거나 교체해 파드가 정상적으로 작동하게 합니다.
  1. 파드에 접속하기 위한 파드의 IP를 알아야합니다.
  2. 파드 컨테이너의 셸(shell)에 접속합니다.
  3. 컨테이너에서 구동하는 nginx의 PID(Process ID, 프로세서 식별자)를 확인합니다.
  • nginx의 PID는 항상 1입니다.
  1. ls -l 명령으로 프로세스가 생성된 시간을 확인합니다.

    root@nginx-pod:/# ls -l /run/nginx.pid
    -rw-r--r--. 1 root root 2 Sep 4 10:57 /run/nginx.pid

  2. 터미널 1개 더 띄우고 1초 마다 한번씩 nginx-pod의 IP에서 돌아가는 웹 페이지를 요청하는 스크립트를 실행합니다.

[root@m-k8s ~]# i=1; while true; do sleep 1; echo $((i++)) 'curl --silent 172.16.103.130 | grep title'; done

결과 창
1 curl --silent 172.16.103.130 | grep title
2 curl --silent 172.16.103.130 | grep title
3 curl --silent 172.16.103.130 | grep title

  1. nginx 프로세서인 PID 1번을 종료합니다.

    root@nginx-pod:/# kill 1
    root@nginx-pod:/# command terminated with exit code 137

  2. nginx 웹 페이지가 자동으로 복구됩니다.

  3. nginx 웹 페이지가 복구 되는 것을 확인한 후 다시 nginx-pid에 접속합니다.

    [root@m-k8s ~]# kubectl exec -it nginx-pod -- /bin/bash
    root@nginx-pod:/# ls -l /run/nginx.pid
    -rw-r--r--. 1 root root 2 Sep 4 14:22 /run/nginx.pid
    root@nginx-pod:/#

  • 위의 4번 과정과 비교하여 시간이 변경 된 것을 확인합니다.
profile
System / Cloud / DevOps Engineer

0개의 댓글