활성 프로브를 사용한 Pod 상태
3055 단어 devopsbashkubernetessecurity
이 짧은 기사에서는 활동성 프로브가 작동하는 모습을 보여 드리겠습니다. 활성 프로브는 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와 같은 것을 실행하는 컨테이너를 확인하는 데 유용합니다.
이것이 이 기사를 위한 것이었습니다. 당신이 그것을 좋아하고 읽어 주셔서 감사합니다 :)
Reference
이 문제에 관하여(활성 프로브를 사용한 Pod 상태), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rinkiyakedad/pod-health-with-liveness-probes-49pd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)