제21장. 애플리케이션문제 해결
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
프로덕션 쿠버네티스 클러스터에서 애플리케이션을 운영할 때, 장애 는 거의 불가피합니다. 애플리케이션 개발자가 설계하고 배포한 쿠버네티스 객체에 대한 문제를 해결할 수 있는 것은 쿠버네티스 관리자로서의 귀하의 책임입니다.
이 장에서는 문제의 근본 원인을 파악하여 적절한 조치를 취하고 장애를 해결하는 데 도움이 되는 문제 해결 전략을 살펴봅니다. 여기서 논의하는 전략은 쿠버네티스 객체에 대한 높은 수준의 관점에서 시작하여 필요에 따라 더 세부적인 내용으로 파고듭니다.
Pod 문제 해결
대부분의 경우 Pod 생성 자체는 문제가 되지 않습니다. 단순히 run, create 또는 apply 명령을 실행하여 Pod를 인스턴스화하면 됩니다. YAML 매니페스트가 올바르게 구성되었다면 쿠버네티스는 요청을 수락하므로 모든 것이 예상대로 작동한다고 가정합니다. 올바른 동작을 확인하려면 먼저 Pod의 상위 수준 런타임 정보를 확인해야 합니다. 이 작업에는 Pod의 복제본을 롤아웃하는 데 사용되는 Deployment와 같은 다른 쿠버네티스 객체가 포함될 수 있습니다.
상위 수준 정보 검색
정보를 검색하려면 kubectl get pods 명령어 를 실행하여 네임스페이스에서 실행 중인 Pod만 확인하거나, kubectl get all 명령어 를 실행하여 네임스페이스에서 가장 중요한 객체 유형(Deployment 포함)을 검색하세요. READY, STATUS, RESTARTS 열을 확인하세요. 최적의 경우 준비된 컨테이너 수가 스펙에서 정의한 컨테이너 수와 일치합니다. 단일 컨테이너 Pod의 경우 READY 열에 1/1이 표시됩니다.
상태는 Pod가 적절한 라이프사이클 상태에 진입했음을 나타내는 Running이어야 합니다. Pod가 Running 상태를 표시하더라도 애플리케이션이 실제로 제대로 작동하지 않을 수 있다는 점을 유의하십시오. 재시작 횟수가 0보다 크다면, 정의된 경우 활성 프로브(liveness probe)의 논리를 확인하고 재시작이 필요한 이유를 파악해야 할 수 있습니다.
다음 Pod는 ErrImagePull 상태를 감지하며 들어오는 트래픽에 대해 0/1개의 컨테이너를 사용할 수 있게 합니다. 간단히 말해, 이 Pod에는 문제가 있습니다:
$ kubectl get pods NAME READY STATUS RESTARTS AGE misbehaving-pod 0/1 ErrImagePull 0 2s
쿠버네티스를 일정 기간 사용하다 보면 일반적인 오류 상태 를 자연스럽게 인식하게 됩니다. 표 21-1에는 이러한 오류 상태 일부와 해결 방법이 설명되어 있습니다.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access