반응형
1. Application Log 모니터링
지정한 Pod내의 특정 컨테이너 애플리케이션 로그 확인
kubectl logs <PODNAME> -c <CONTAINER_NAME>
예제
Pod custom-app의 로그 모니터링 후 'file not found' 오류가 있는 로그 라인 추출(Extract)해서 /var/CK2022/CUSTOM-LOG001 파일에 저장하시오.
풀이
kubectl logs custom-app | grep -i 'file not found' > /var/CKA2022/CUSTOM-LOG001
클러스터 리소스 모니터링
클러스터 안에서 실행 중인 컨테이너의 상태를 모니터링
- Pod가 사용하는 CPU나 Memory 리소스 정보 보기
kubectl top pods --sort-by=cpu
- Node가 사용하는 CPU나 Memory 리소스 정보 보기
kubectl top pods --sort-by=cpu
- Json포맷을 기준으로 특정 리소스 sort 해서 보기
# json으로 출력해서 어떤 리소스로 sort할 지 확인
kubectl get pods <POD_NAME> -o json
# 이름기준으로 조회
kubectl get pods --sort-by=.metadata.name
# 용량기준으로 pv조회
kubectl get pv --sort-by=.spec.capacity.storage
예제1
클러스터에 구성된 모든 PV를 capacity별로 sort하여 /var/CKA2022/my-pv-list 파일에 저장하시오.
PV 출력 결과를 sort하기 위해 kubectl 명령만 사용하고, 그 외 리눅스 명령은 적용하지 마시오.
풀이
kubectl get pv -o json pv0001
kubectl get pv --sort-by='{.spec.capacity.storage}' > /var/CKA2022/my-pv-list
cat /var/CKA2022/my-pv-list
# sort-by 아래처럼해도 됨.
# kubectl get pv --sort-by=.spec.capacity.storage > /var/CKA2022/my-pv-list
예제2
'name=overloaded-cpu' 레이블을 사용하는 Pod들 중 CPU 소비율이 가장 높은 Pod의 이름을 찾아서 /var/CKA2022/custom-app-log에 기록하시오.
풀이
# name=overloaded-cpu 레이블을 가진 파드이름 확인
kubectl get pods -o wide --show-labels --all-namespaces | grep -i name=overloaded-cpu
# 해당 pod들 중 CPU 높은 순으로 조회
$ kubectl top pods --sort-by=cpu | grep -e campus-01 -e fast-01
# 결과 저장
$ echo 'campus-01' > /var/CKA2022/custom-app-log
반응형
Worker Node Troubleshooting
워커노드가 정상적으로 동작하지 않는 경우 확인사항
1. Installing Runtime (시험에선 Docker Engine)
2. kubelet
3. kubeproxy
4. cni
예제
hk8s-w2라는 이름의 worker node가 현재 NotReady 상태에 있습니다. 이 상태의 원인을 조사하고 hk8s-w2 노드를 Ready 상태로 전환하여 영구적으로 유지되도록 운영하시오.
풀이
# 노드 확인
kubectl get nodes
# NotReady상태의 노드 접속
ssh hk8s-w2
# sudo 권한 획득
sudo -i
# docker engine 동작 확인
docker ps
# docker engine 상태 확인
systemctl status docker
# docker engine이 inactive상태일 경우
# docker engine 실행 및 재시작시 실행되도록 enable
systemctl enable --now docker
# docker engine 상태 재확인
systemctl status docker
# kubelet 상태 확인
systemctl status kubelet
# kubelet이 inactive상태일 경우
# kubelet 실행 및 재시작시 실행되도록 enable
systemctl enable --now kubelet
# kubelet 상태 재확인
systemctl status kubelet
# console로 이동
exit
exit
# 워커노드 동작확인
kubectl get nodes
끝.
Thank you!
반응형
'Tools > Kubernetes' 카테고리의 다른 글
[CKA 도전 시리즈] 15. CKA 시험 후기 (0) | 2023.03.22 |
---|---|
[CKA 도전 시리즈] 13. Storage (0) | 2023.02.26 |
[CKA 도전 시리즈] 12. Ingress / Core DNS (0) | 2023.02.20 |
[CKA 도전 시리즈] 11. Network Policy (0) | 2023.02.13 |
[CKA 도전 시리즈] 10. Service ClusterIP (0) | 2023.02.07 |