트러블 슈팅
note
Pod custom-app의 로그 모니터링 후 'file not found' 오류가 있는 로그 라인을 추출해서 /var/CKA2022/CUSTOM-LOG001 파일에 저장하세요.
kubectl logs custom-app | grep 'file not found' > /var/CKA2022/CUSTOM-LOG001
Pod가 사용하는 CPU나 Memory 리소스 정보 보기
kubectl top pods --sort-by=cpu
Node가 사용하는 CPU나 Memory 리소스 정보 보기
kubectl top nodes --sort-by=cpu
Json 포맷을 기준으로 특정 리소스 sort해서 보기
kubectl get pod -o json
kubectl get pods --sort-by=.metadata.name
kubectl get pv --sort-by=.spec.capacity.storage
note
- 작업 클러스터: hk8s
- 클러스터에 구성된 모든 PV를 capacity별로 sort하여 /var/CKA2022/my-pv-list 파일에 저장하세요.
- PV 출력 결과를 sort하기 위해 kubectl 명령만 사용
kubectl get persistentvolumes -o json
kubectl get pv --sort-by=.spec.capacity.storage
kubectl get pv --sort-by=.spec.capacity.storage > /var/CKA2022/my-pv-list
kubectl get pv --sort-by='{.spec.capacity.storage}' > /var/CKA2022/my-pv-list
note
'name=overloaded-cpu' 레이블을 사용하는 Pod들 중 CPU 소비율이 가장 높은 파드의 이름을 찾아서 /var/CKA2022/custom-app-log에 기록하세요.
kubectl get pods --show-labels
kubectl get pods --show-labels | grep name=overloaded-cpu
kubectl get pods --show-labels | grep -i name=overloaded-cpu
kubectl top nodes
kubectl top pods --sort-by=cpu
echo '소비율이 가장 높은 파드' > /var/CKA2022/custom-app-log
cat /var/CKA2022/custom-app-log
- runtime 확인
- Docker Engine:
/var/run/dockershim.sock
- containerd:
/run/containerd/containerd.sock
- CRI-O:
/var/run/crio/crio.sock
- kubelet 확인
- kube-proxy 확인
- cni 확인
note
워커 노드는 kubelet과 도커 데몬이 반드시 동작하고 있어야 한다.
- 작업 클러스터: hk8s
- Worker Node 동작 문제 해결
- node2라는 이름의 워커 노드가 현재 NotReady 상태에 있습니다. 이 상태의 원인을 조사하고 node2 노드를 Ready 상태로 전환하여 영구적으로 유지되도록 운영하세요.
kubectl get nodes
...
NAME STATUS ROLES AGE VERSION
master Ready control-plane 7d13h v1.26.1
node1 Ready <none> 7d13h v1.26.1
node2 NotReady <none> 7d13h v1.26.1
# node2 접속
ssh node2
sudo -i
# 도커 엔진 동작 확인
docker ps
systemctl status docker
# kubelet 데몬 동작 확인
systemctl status kubelet
systemctl enable --now kubelet
systemctl status kubelet
# 각 노드에 kube-proxy 동작 확인
kubectl get pod -n kube-system -o wide | grep -i kube-proxy
# 각 노드에 calico (CNI) 동작 확인 kube-system 또는 calico-system
kubectl get pod -n kube-system -o wide | grep -i calico-node
kubectl get pod -n calico-system -o wide | grep -i calico-node
kubectl get nodes
Calico Error
하단 명령어 실행시 네임스페이스 calico-system에서 동작하는 파드 calico-node가 모든 노드에서 동작하지 않는 현상 발생
calico docs에서 포트를 허용하여 노드를 동작시킴
kubectl get pod -n calico-system -o wide | grep -i calico-node
...
calico-node-d9gfp 0/1 Running 1 (6d16h ago) 7d14h 10.0.1.103 master <none> <none>
calico-node-jc79w 0/1 Running 2 (6d16h ago) 7d14h 10.0.2.99 node1 <none> <none>
calico-node-vpqxc 0/1 Running 2 (6d16h ago) 7d14h 10.0.2.100 node2 <none> <none>