개요
CKA 공부를 위해 KillerCoda 사이트 문제를 풀이한다.
목표
Kubernetes Apiserver 장애를 복구한다.
여정
Configure a wrong argument
문제를 해석하면
kubernetes의 apiserver을 잘못된 인자(--this-is-wrong)를 심고,
이를 로그 위치에서 확인한 뒤, 원래대로 복구하는 과정을 요구한다.
로그는 다양한 방법으로 확인할 수 있지만
아래 방법 순서로 확인했다.
# kubelet 상태 확인
journalctl
# cri 상태 확인
crictl ps
...
# cri 로그 확인
crictl logs
...
# 로그 기록 확인
cd /var/log/pods
cd /var/log/containers
이제 잘못된 인자를 주입하고 복구해보자.
# apiserver 위치로 이동
cd /etc/kubernetes/manifests
# 복원용 백업파일 생성
cp kube-apiserver.yaml kube-apiserver.bak
# 설정 변경
vi kube-apiserver.yaml
...
spec:
containers:
- command:
- --this-is-wrong # 잘못된 인자 삽입
---
# 변경된 설정 적용
kubectl apply -f kube-apiserver.yaml
# 로그 확인
k logs pod/kube-apiserver-controlplane -n kube-system
# 로그 확인 방법2(직접 파일위치로 이동)
cd /var/log/pods
cd kube-system_kube-apiserver_2fc87b52-2a44-4b3c-8bad-0074e11e1c16/
cat 3.log
# 2023-02-16T15:02:02.20681146Z stderr F Error: unknown flag: --this-is-very-wrong
# 복구
cp kube-apiserver.bak kube-apiserver.yaml
kubectl apply -f kube-apiserver.yaml
Misconfigure ETCD connection(잘못된 etcd 연결 설정)
1번 문제와 동일한 방식으로 진행한다.
다만, /var 이하에 있는 로그에 대한 확인은 금지한다.
# apiserver 위치로 이동
cd /etc/kubernetes/manifests
# 복원용 백업파일 생성
cp kube-apiserver.yaml kube-apiserver.bak
# 설정 변경
vi kube-apiserver.yaml
...
spec:
containers:
- command:
- --etcd-servers=this-is-very-wrong # 잘못된 인자로 변경
---
# 변경된 설정 적용
kubectl apply -f kube-apiserver.yaml # 에러 발생
# 로그 확인
journalctl | grep apiserver
# 복구
cp kube-apiserver.bak kube-apiserver.yaml
kubectl apply -f kube-apiserver.yaml
Invalid Apiserver Manifest YAML(올바르지 않은 YAML 설정)
# apiserver 위치로 이동
cd /etc/kubernetes/manifests
# 복원용 백업파일 생성
cp kube-apiserver.yaml kube-apiserver.bak
# 설정 변경
vi kube-apiserver.yaml
...
apiVersionTHIS IS VERY ::::: WRONG v1 # 잘못된 문법으로 변경
---
# 변경된 설정 적용
kubectl apply -f kube-apiserver.yaml # 에러 발생
# 로그 확인
journalctl | grep apiserver
# 복구
cp kube-apiserver.bak kube-apiserver.yaml
kubectl apply -f kube-apiserver.yaml
마무리
이번 시간에는 kubernetes의 로그 확인과 기본 설정 변경으로 문제를 해결했다.
중요한 것은 apiserver의 기본 위치(/etc/kubernetes/manifests)와
로그 확인 방법(journalctl | grep apiserver) 이다.
'DevOps' 카테고리의 다른 글
CKA 뽀개기 - Application Misconfigured (0) | 2023.02.20 |
---|---|
CKA 뽀개기 - Apiserver Misconfigured (0) | 2023.02.19 |
쿠버네티스 비긴즈 - Service와 Ingress (0) | 2023.02.12 |
쿠버네티스 비긴즈 - 공유 디렉토리 설정(PV, PVC, NFS) (0) | 2023.02.08 |
쿠버네티스 비긴즈 - 모니터링 대시보드 설치하기 (0) | 2023.02.06 |