Section 13-1. Application Failure
udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의 및 쿠버네티스 인 액션 (마르코 룩샤)를 참고하여 정리한 글입니다.
Section13. Troubleshooting
Application Failure
- 아래와 같은 응용 프로그램 액세스에 문제가 있을 경우 실패 원인을 분석해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
+=====================+
| |
| +-------------+ |
| | Web-Service | | ⇐ curl http://web-service-ip:node-port
| +-------------+ | kubectl describe service web-service
| ↑ |
| +-------------+ |
| | WEB | | ⇐ kubectl get pod / kubectl describe pod web
| +-------------+ | kubectl logs web -f --previous
| ↑ |
| +-------------+ |
| | DB-Service | |
| +-------------+ |
| ↑ |
| +-------------+ |
| | DB | |
| +-------------+ |
+=====================+
Web-Service 상태 확인
- 해당 서버가 노드 포트의 IP에서 curl을 이용해 접근 가능한지 확인한다.
1
$ curl http://web-service-ip:node-port
- Web-service의 selector와 WEB의 labels.name을 비교한다. (즉 서비스의 엔드포인트와 파드의 엔드 포인트가 동일한지 확인)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
$ kubectl describe service web-service Name: web-service Namespace: default Labels: <none> ...생략 Selector: name=webapp-mysql Endpoints: 10.32.0.6:8080 # web-service의 엔드포인트 # Web-pod.yaml apiVersion: v1 kind: Pod metadata: name: webapp-mysql labels: app: example-app name: webapp-mysql ...생략
WEB pod 상태 확인
- 파드가 잘 동작 중인지 확인한다.
1 2 3 4 5
$ kubectl get pod NAME READY STATUS RESTARTS AGE Web 1/1 Running 5 50m $ kubectl describe pod web
- log 커맨드로 애플리케이션 로그를 확인한다.
1
$ kubectl logs web -f --previous
DB-Service 상태 확인
- Web-Service와 마찬가지로 DB-Service를 확인한다.
DB pod 확인
- Web pod와 마찬가지로 DB Pod를 확인한다.
This post is licensed under CC BY 4.0 by the author.