클라우드 네이티브 K8S의 포드 상태 감지 및 서비스 가용성 확인에 대한 자세한 설명
중추절의 밝은 달은 부유한 가정과 가난한 가정 모두에서 볼 수 있습니다. 매우 위안이 됩니다. ——Fenghuo Opera Princes "Sword Comes"
탐지 목적: 포드의 견고성을 유지하는 데 사용됩니다. 포드가 종료되면 배포 시 새 포드가 생성되지만 포드가 정상적으로 실행 중인 경우에는 하지만 포드에 문제가 있어 현재 배포에서 이를 감지할 수 없습니다. 따라서 Pod가 정상적으로 서비스를 제공하고 있는지 조사하는 것이 필요합니다
Kubernetes는 LivenessProbe와 ReadinessProbe라는 두 가지 유형의 프로브를 통해 Pod의 상태를 확인할 수 있으며 Kubelet은 정기적으로 이 두 가지 유형의 프로브를 실행하여 진단합니다. . 컨테이너의 상태입니다. 둘 다 배포를 통해 구현됩니다.
LivenessProbe와 ReadinessProbe는 모두 다음 세 가지 구현 방법으로 구성할 수 있습니다.
각 감지 방법에 대해initialDelaySeconds, timeoutSeconds 등의 매개변수를 설정해야 합니다. 해당 의미는 다음과 같습니다.
Kubernetes의 ReadinessProbe 메커니즘은 컨테이너에 있는 서비스의 가용성 상태를 판단할 때 일부 복잡한 애플리케이션을 충족하지 못할 수 있습니다.
Pod의 준비 게이트는 ReadinessGate에 설정됩니다. 필드를 입력하세요. 다음 예에서는 www.example.com/feature-1 유형의 새 ReadinessGate를 설정합니다.
LivenessProbe 프로브가 컨테이너가 비정상임을 감지한 경우 컨테이너가 살아 있는지 확인하는 데 사용됩니다. , kubelet 컨테이너가 종료되고 컨테이너의 재시작 정책에 따라 해당 처리가 수행됩니다.
컨테이너 내부에서 명령을 실행합니다. 명령의 반환 코드가 0이면 컨테이너가 정상임을 의미합니다. .
리소스 파일 정의
이 배포를 실행합니다. Pod가 성공적으로 생성되면 새 파일을 생성하고 30초 동안 절전 모드로 설정한 후 파일을 삭제하고 절전 모드로 전환합니다. 활성성을 사용하여 파일 존재 감지
30초 이상 실행한 후. 파일이 삭제되어 헬스체크에 걸렸고, 재시작 정책에 따라 포드가 재시작되었습니다
99초 후에 두 번째로 재시작되었습니다
확인 노드 머신 docker의 컨테이너 ID는 이전과 이후가 다릅니다. POD가 종료되었는지 확인한 후 다시 시작하세요.
컨테이너의 IP 주소, 포트 번호 및 경로를 통해 HTTP Get 메소드를 호출합니다. 응답 상태 코드가 200 이상 400 미만이면 컨테이너가 정상인 것으로 간주됩니다.
리소스 파일 생성, 즉 관련 매개변수 사용
배포를 실행합니다. 이 탐지 메커니즘은 Ngixn의 기본 환영 페이지에 액세스합니다.
환영 페이지가 삭제되면 액세스합니다. 오류가 보고되고 감지가 이루어지며 포드가 다시 시작됩니다.
컨테이너의 IP 주소와 포트 번호를 통해 TCP 검사를 수행하면 TCP 연결이 설정될 수 있는 경우 컨테이너는 정상입니다.
리소스 파일 정의
포트 8080에 액세스하지만 포트 8080이 열려 있지 않아 액세스 시간이 초과되고 연결을 설정할 수 없으며 적중 감지, 포드 다시 시작
사용됨 컨테이너 서비스가 사용 가능한지(준비 상태) 확인합니다. 준비 상태에 도달한 포드만 요청을 수신할 수 있습니다.
리소스 파일 정의에 액세스할 수 없는 책임, 후크를 사용하여 확인이 필요한 파일 빌드
Ngixn으로 3개의 Pod를 생성하고 테스트용 POD를 통해 SVC를 생성
홈페이지 텍스트 수정
라벨 수정
파일 감지 삭제
POD를 사용하여 SVC 생성
SVC 테스트 Normal, 세 개의 POD가 정상적으로 로드됩니다.
파일을 삭제하고 테스트합니다.
Pod-liveness의 Pod가 더 이상 서비스를 제공하지 않는 것을 확인할 수 있습니다.
kube-apiserver.yaml, 두 개 동시에 여러 프로브 사용