Certified Kubernetes Administration - 81
2024-06-23
- Kubernetes
- Cloud
애플리케이션 장애 처리
2계층 애플리케이션 설정 예시
-
구성: 웹 서버와 데이터베이스 서버
-
데이터베이스 Pod: 데이터베이스 애플리케이션을 호스팅하고 데이터베이스 서비스를 통해 웹 서버에 제공.
-
웹 서버 Pod: 웹 애플리케이션을 호스팅하고 웹 서비스를 통해 사용자에게 제공.
-
트러블슈팅 절차
-
애플리케이션 프론트엔드 확인
-
웹 애플리케이션이 접근 가능한지 표준 방법으로 확인.
-
NodePort의 IP를 사용해 cURL로 웹 서버 접근 확인.
-
-
서비스 확인
-
웹 Pod에 대한 엔드포인트가 발견되었는지 확인.
-
발견되지 않으면, 서비스와 Pod의 셀렉터를 비교하여 일치하는지 확인.
-
-
Pod 상태 확인
-
Pod가 실행 중인지 확인.
-
Pod의 상태와 재시작 횟수 확인으로 애플리케이션 상태 파악.
-
kubectl describe
명령어를 사용해 Pod 관련 이벤트 확인. -
kubectl logs
명령어를 사용해 애플리케이션 로그 확인. -
Pod가 재시작 중이라면, 현재 버전의 로그가 마지막 실패 원인을 반영하지 않을 수 있으므로
-F
옵션으로 로그를 실시간으로 확인하거나--previous
옵션으로 이전 로그 확인.
-
-
DB 서비스 및 Pod 확인
- DB 서비스 상태와 Pod 로그 확인으로 데이터베이스 에러 확인.
컨트롤 플레인 장애 처리
절차
-
노드 상태 확인
- 클러스터의 노드 상태가 건강한지 확인.
-
Pod 상태 확인
- 클러스터에서 실행 중인 Pod의 상태 확인.
-
컨트롤 플레인 컴포넌트 확인
-
Kubeadm으로 배포된 클러스터:
kube-system
네임스페이스의 Pod 상태 확인. -
서비스로 배포된 클러스터: 마스터 노드에서
kube-apiserver
,controller-manager
,scheduler
서비스 상태 확인, 워커 노드에서kubelet
과kube-proxy
서비스 상태 확인.
-
-
로그 확인
-
Kubeadm으로 배포된 클러스터:
kubectl logs
명령어로 컨트롤 플레인 컴포넌트를 호스팅하는 Pod의 로그 확인. -
서비스로 배포된 클러스터: 호스트의 로깅 솔루션을 사용해 서비스 로그 확인 (예:
journalctl
명령어를 사용해kube-apiserver
로그 확인).
-
참고 사항
-
Kubernetes 문서에서 애플리케이션 및 클러스터 트러블슈팅에 대한 추가 팁 참고.
-
이러한 절차는 실습 테스트와 시험 준비에 도움이 됩니다.
Certified ...
Certified ...