CKA Study Day 22

김건호·2023년 4월 25일
0

251-264

Control Plane Failure

1.클러스터 노드 상태 확인
2.파드 상태 확인
kube-system내의 파드 확인 or 서비스 상태확인
kubelet kube-proxy확인
3. 로그 확인

Worker Node Failure

  1. 노드 상태확인
  2. describe node
  3. top 노드 cpu memory 확인
  4. kubelet 로그 확인 journalctl -u kubelet
  5. openssl x509 -in /var/lib/kubelet/worker-1.crt -text
    인증서 확인
    Issuer가 CN = KUBERNETS-CA인지 확인, 기간 확인 O = system:nodes 확인

Network Troubleshooting

Port 53 is used for for DNS resolution.

    kubernetes cluster.local in-addr.arpa ip6.arpa {
       pods insecure
       fallthrough in-addr.arpa ip6.arpa
       ttl 30
    }

This is the backend to k8s for cluster.local and reverse domains.

Advanced Kubectl Commands

WHY JSON PATH?
노드가 수백 수천 파드가 수천개의 파드인 경우 이 개체에 대한 정보를 확인 하기 어려움
복잡한 조건을 사용해 큰 데이터셋을 데이터 필터링 쉽게 함

kubectl 실행마다 apiserver로 요청을 보냄 kubeapiserver json사용-> json 포맷 정보만 결과로 나옴 -> kubectl이 변환하여 출력

추가 세부사항
kubectl get nodes -o wide

kubectl - json path
1. 정보를 주는 명령어를 알아야함 kubectl get node와 같은
2. -o json 추가하여 출력
3. json 구조를 살펴보고 query ex) .items[0].spec.containers[0].image
4. kubectl과 함께 사용 kubectl get pods -o=jsonpath='{.items[0].spec.containers[0].image}'

kubectl get node -o=jsonpath='{range .items[*]{.metadata.name}{"\t"{.status,capacity.cpu}{"\n"{end}'

kubectl get nodes -o=custom-clumns=컬럼:JSONPATH

정렬
kubectl get nodes --sort-by=.metadata.name

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글