Skip to main content

트러블 슈팅

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
  1. runtime 확인
  • Docker Engine: /var/run/dockershim.sock
  • containerd: /run/containerd/containerd.sock
  • CRI-O: /var/run/crio/crio.sock
  1. kubelet 확인
  2. kube-proxy 확인
  3. 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>