개요
CKA 공부를 위해 KillerCoda 사이트 문제를 풀이한다.
목표
Kubernetes Apiserver 장애를 복구한다.
여정
The Apiserver manifest contains errors
문제를 해석하면
kubernetes의 apiserver 설정에서
잘못된 부분 3곳을 수정하여 복구하는 과정을 요구한다.
/var/log/pods 위치에
kube-system_kube-apiserver-controlplane로 시작하는 디렉토리부터 확인하자
없다면 yaml 파일 문법에서부터 오류가 난 것이다!
# 로그 기록 확인
cat /var/log/syslog | grep kube-apiserver
...
Could not process manifest file" err="/etc/kubernetes/manifests/kube-apiserver.yaml:
\ couldnt parse as pod(yaml: line 4: could not find expected ':')
# 에러 발생한 부분 수정
# kube-system 관리파일이므로 적용절차 필요없음
vi /etc/kubernetes/manifests/kube-apiserver.yaml
...
metadata: # 기존 : metadata;
이제 /var/log/pods 위치에 디렉토리를 확인해보자.
apiserver 실행이 확인되었으면 다음 로그를 확인하자
# 로그 기록 확인
cd /var/log/pods/kube-system_kube-apiserver-controlplane_.../kube-apiserver/
cat X.log
2023-02-16T16:18:09.00665352Z stderr F Error: unknown flag: --authorization-modus
# 에러 발생한 부분 수정
# vi 편집창에서 /검색어 입력 시 바로 찾을 수 있다
vi /etc/kubernetes/manifests/kube-apiserver.yaml
...
- --authorization-mode=Node,RBAC # 기존 : modus
두번째 오류가 해결되었다면 방금 있던 로그 디렉토리는 사라진다.
다시 /var/log/pods 위치에서 새로 생긴 디렉토리의 에러를 확인하자.
# 에러 확인
cd /var/log/pods/kube-system_kube-apiserver-controlplane.../kube-apiserver
cat X.log
Err: connection error: desc = "transport: Error while dialing dial tcp 127.0.0.1:23000: connect: connection refused"
# 에러가 발생한 위치 찾기
# /127.0.0.1:23000 검색
vi /etc/kubernetes/manifests/kube-apiserver.yaml
...
- --etcd-servers=https://127.0.0.1:23000 # IP와 Port 설정을 확인해볼 필요가 있다.
# etcd의 IP와 Port 확인하기
cat /etc/kubernetes/manifests/etcd.yaml # kube-apiserver와 같은 위치에 있다
...
- --listen-client-urls=https://127.0.0.1:2379
# 에러 발생한 부분 수정
vi /etc/kubernetes/manifests/kube-apiserver.yaml
...
- --etcd-servers=https://127.0.0.1:2379
마무리
이번 시간에는 kubernetes의 로그 확인과 기본 설정 변경을 응용한 문제를 풀어보았다.
중요한 것은 에러메시지를 잘 읽는 것이다.
(사실 어느 곳에 가나 에러메시지는 중요하다)
기본기가 탄탄해야 오래, 멀리 갈 수 있다.
'DevOps' 카테고리의 다른 글
CKA 뽀개기 - Application Multi Container Issue (0) | 2023.02.21 |
---|---|
CKA 뽀개기 - Application Misconfigured (0) | 2023.02.20 |
CKA 뽀개기 - Apiserver Crash (0) | 2023.02.17 |
쿠버네티스 비긴즈 - Service와 Ingress (0) | 2023.02.12 |
쿠버네티스 비긴즈 - 공유 디렉토리 설정(PV, PVC, NFS) (0) | 2023.02.08 |