본문 바로가기
cloud/k8s(문제풀이)

[따배쿠CKA]23. kubernetes Troubleshooting(1)

by mozi2 2022. 8. 16.
반응형

*k8s 구조

• Worker Node

- docker: 컨테이너를 실행시켜주는 엔진

- kubelet: systemctl 로 운영을 하게 되면 시스템 클러스터로 운영을 하게 해줌

- kube-proxy: 쿠버 환경에서 클라이언트커넥션을 받아주는 네트워크의 포트를 리슨하고 있는 역할을 담당한다. 

                      쿠버네티스의 네트워크를 담당하고 있다. 

 

• 예를들면,

Master Node 에서  API 가 어떤 Deploy 를 통해서 Nginx POD를 두개 실행하려고 하는데 그 중에 현재의 Worker Node에 

실행하려고 한다면??

 

-> API  요청 -> kubelet -> kubelet 는 파드 실행 능력이 없어 -> Docker (nginx 에게 요청한다) -> doc hub 에서 컨테이너 이미지를 다운받아 -> 파드형태로 만들어서 -> kubelet 에게 결과를 알려준다 -> 그리고 이 정보를 API 에게 전달하고 -> ETCD 에게 이 정보를 저장한다. 

 

• 위의 Worker Node 에서 실행되야 할 것은 무엇이 있을까? 

- Docker: Container Daemon(Engine)

- Kubelet: "systemctl" Running  상태 여야함.

- Kube-Proxy: kubelet 와 함께 같이 운영중이여야함. 


Not Reday 상태의 노드 활성화

Q. A kubernetes worker node, named h8s-w2 is in state NotReady.
Investigate why this is the case, and perform any appropriate steps to bring the node to a Reday state, ensuring that any changes are mad permanent.

* h8s-w2 대시 node01로 진행

 

• Worker node- ready 

  - Docker running?

  - kubelet running? 

  - kube-proxy(pod) running ?

  - CNI (Container Network Interface) running? 

 

1. 노드 확인 및 노드 접속 (not ready) 

k get nodes 
ssh node01 
sudo -i ( root 권한이어야함)

2. docker running?

 : running 상태로 docker 자체는 문제 없음 

systemctl status docker 

3. kubelet running?

 : inactive 상태이고, 다음번 동작에는 작동하게 되어 있다. (현재 내환경)

 : 따배쿠에서는 "disabled" 로 되어 있다. (다음번 동작시에도 작동이 안됨)

systemctl  status kubelet

 

4. kubelet 동작 시키기 

systmectl enable --now kubelet
== systemctl start --now kubelet
systemctl status kubelet

5. kube-proxy running?

: node01 이 아닌, master node 에서 확인해야 한다. 

 

: pod에 kube-proxy-???의 status 확인 

exit
exit
kubectl get pod -n kube-system -o wide

6. CNI Running?

: 현재 환경에서는 확인이어렵지만, 시험장에서는 Calico, Flannel 을 확인하는데 이것이 바로 (CNI ) 이다. 

kubectl get pod -n kube-system -o wide

7. 상태 확인 

kubectl get nodes 
: 이전과 달리 STATUS 가 READY 를 확인 할 수 있음 

 

* 본 게시글은 "TTABAE-LEARN" 을 보고 정리한 내용입니다.

 

728x90
반응형