활성 프로브를 사용한 Pod 상태

Kubernetes는 Probes에 의존하여 Pod 컨테이너의 상태를 확인합니다. 프로브는 단순히 컨테이너에서 수행하는 정기 진단으로 이해할 수 있습니다.

이 짧은 기사에서는 활동성 프로브가 작동하는 모습을 보여 드리겠습니다. 활성 프로브는 Pod가 정상인지(예상대로 실행 중인지) 확인하는 데 사용됩니다. Kubernetes가 언제 컨테이너를 다시 시작해야 하는지 확인하는 역할을 합니다.

활성 프로브 없이



간단한 nginx 포드를 만들고 Liveness 프로브를 사용하지 않고 엉망으로 만들 때 어떤 일이 발생하는지 봅시다. 다음 구성을 사용하여 포드를 생성합니다.

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx
spec:
  containers:
    - name: my-nginx-container
      image: nginx:alpine



이 컨테이너를 포트 포워드하면 nginx 시작 페이지를 제공하고 있음을 알 수 있습니다. 이상적으로는 이 페이지에 연결할 수 없는 경우 Kubernetes가 이 포드를 다시 시작하기를 원할 것입니다. 그것이 현재의 경우인지 아닌지 보자.

kubectl exec을 사용하여 컨테이너 내부에서 셸을 시작합니다.

kubectl exec my-nginx -it sh



그런 다음 nginx 시작 페이지를 담당하는 HTML 파일이 있는 디렉토리로 이동합니다.

cd /usr/share/nginx/html



여기에서 ls를 수행하면 다음 출력이 표시됩니다.

50x.html index.html



이제 이 index.html 파일을 삭제해 보겠습니다.

rm -rf index.html



현재 쉘에 exit를 입력하여 원래 쉘로 돌아갑니다.

이제 kubectl get pods 하십시오. 포드가 이제 예상대로 작동하지 않더라도(index.html 파일을 삭제했기 때문에) Kubernetes가 여전히 포드를 다시 시작하지 않았음을 알 수 있습니다. 그리고 솔직히 말해서 놀라운 일이 아닙니다. 우리가 명시적으로 말하지 않는 한 Kubernetes는 왜 우리가 그 특정index.html 파일에 관심이 있다는 것을 알까요?

활성 프로브 입력



여기에서 Liveness Probe가 구출됩니다. 다음과 같이 포드 구성을 업데이트합니다.

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx
spec:
  containers:
    - name: my-nginx-container
      image: nginx:alpine
      livenessProbe:
        httpGet:
            path: /index.html
            port: 80



You’ll need to delete your previous pod before creating a new one using this config.



이제 같은 단계를 반복하고 index.html 파일을 다시 삭제합니다. 이번에는 index.html 파일을 삭제한 후 바로 exit를 입력하여 쉘을 나가지 않고 약 10초(정기 검사의 기본 시간 간격)를 기다리면 자동으로 터미널을 종료합니다. 터미널을 연 컨테이너가 다시 시작되었기 때문입니다.
kubectl get pods를 실행하여 이를 확인할 수 있으며 다음과 같이 표시되어야 합니다.

NAME READY STATUS RESTARTS AGE
my-nginx 1/1 Running 1 4m24s



다시 시작 열의 1은 포드의 컨테이너가 다시 시작되었음을 확인합니다.

그렇다면 여기서 활성 프로브는 정확히 무엇을 했을까요? httpGet 작업이 컨테이너에 GET 요청을 보냈습니다. 활성 상태 프로브에 포트 80에서 index.html를 확인하도록 지시했으며 요청에 대한 유효한 상태 코드를 얻지 못하면 포드를 다시 시작합니다.

이것은 API 또는 정적 파일을 제공하는 nginx와 같은 것을 실행하는 컨테이너를 확인하는 데 유용합니다.

이것이 이 기사를 위한 것이었습니다. 당신이 그것을 좋아하고 읽어 주셔서 감사합니다 :)

좋은 웹페이지 즐겨찾기