주녁, DevNote
article thumbnail
Published 2023. 2. 19. 09:00
CKA 뽀개기 - Apiserver Misconfigured DevOps

개요

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의 로그 확인과 기본 설정 변경을 응용한 문제를 풀어보았다.

 

중요한 것은 에러메시지를 잘 읽는 것이다.

(사실 어느 곳에 가나 에러메시지는 중요하다)

 

기본기가 탄탄해야 오래, 멀리 갈 수 있다.


 

profile

주녁, DevNote

@junwork

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!