• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

마스터 노드의 Kublet 의 역할은 무엇인가요?

22.05.18 16:10 작성 조회수 315

0

안녕하세요 조훈님.

쿠버네티스의 개념과 기초를 공부하기 위해 강의를 수강중입니다!
다름아니라, 궁금증이 생겨 질문드립니다. 

강의 영상에서 kubelet에 문제가 생겻을때 어떻게 되나 를 보고 있던 와중에, 워커노드에서는 kubelet에 문제가 생겼을때 배포가 이뤄지지 않는걸 확인했는데, 마스터노드에서는 도커 런타임에 문제가 생기지 않는 이상, kubelet에 문제가 생겨도 배포가 제대로 이뤄지는걸 확인했습니다.  그렇다면 마스터노드에서 kubelet의 역할은 무엇인가요?? 

답변 2

·

답변을 작성해보세요.

3

주도님의 프로필

주도

2022.05.22

안녕하세요, 에따비님.

튜터 주도입니다.

 

질문 주신 부분은 아래와 같이 이해했습니다 :)

 

Q1. 마스터노드에서 kubelet이 하는 일이 무엇인가요?

A1. kubelet은 컨테이너 런타임을 이용하여 pod내의 컨테이너들이 제대로 동작할 수 있도록 관리하는 역할을 합니다. 마스터노드에도 etcd, kube-scheduler 와 같은 파드들이 있으므로, 그 파드들을 관리하기 위해 kubelet이 존재합니다.

 

강의 <​​3.3.실제 쿠버네티스의 파드 배포 흐름>을 보시면 pod가 생성되는 순서는 다음과 같습니다.

1.[마스터노드]개발자가 kubectl을 통해 API server에 명령을 내린다

2.[마스터노드]API server는 해당 명령을 etcd에 저장한다

3.[마스터노드]kube-controller-manager는 API server의 명령을 보고 상태값을 업데이트 한다

4.[마스터노드]kube-scheduler는 어느 노드에 pod를 배치할 지 결정한다

5.[마스터노드, 워커노드]해당 노드의 kubelet은 이를 감지하고

6.[마스터노드, 워커노드]kubelet은 컨테이너런타임에 "pod를 생성하라"라고 요청한다.

7.[마스터노드, 워커노드]컨테이너런타임은 pod를 생성한다

8.[마스터노드, 워커노드]생성된 pod들은 kube-proxy를 통해 통신한다

 

그 중 kubelet이  하는 일과 관련된 순서는 5, 6입니다.

 

Q2. 워커노드에서는 kubelet에 문제가 생기면 배포가 안되는 것으로 이해했습니다. 마스터노드에서는 (도커에 문제만 없다면) kubelet에 문제가 생겨도 배포가 되는 이유가 무엇인가요?

A2. 질문 주신 부분은 강의 <4.3.쿠버네티스 마스터 노드의 구성 요소에 문제가 생겼다면>를 보고 주신 것으로 이해했습니다. 해당 강의 실습 내용을 요약하면 다음과 같습니다.

------------------

1) 마스터노드의 kube-scheduler삭제

→ 스케쥴러가 다시 생성됨

 

2) 마스터노드의 kubelet 중지 &&  kube-scheduler 삭제

→ 스케쥴러가 Terminating 상태이지만, 실제로는 삭제 안됨

 

3)마스터노드의 kubelet 중지 && 스케쥴러 정상(삭제 안 됨) && 워커노드에 애플리케이션 배포

→ 워커노드에 배포 성공

 

4)마스터노드의 Docker 중지(=마스터노드의 컨테이너런타임에 문제 발생)

→ kubectl get pods 같은 기본 통신 불가 

워커노드에 배포되어 있던 애플리케이션에 curl하는 통신도 안됨(전체 서비스 장애)

------------------

 

위에서 3) 부분을 보고 질문 주신 것으로 이해했습니다.

 

마스터노드의 kubelet에 문제가 생기면, 워커노드에 한동안 영향 없이 배포가 이루어지는 것처럼 보입니다.

하지만 시간이 지나면 결국 마스터노드 내에 중요 static pod(etcd, kube-apiserver, kube-controller-manager, kube-scheduler 등)들이 영향을 받으면서,  워커노드에도 영향을 미치게 됩니다.

 

워커노드에 한동안 영향 없이 배포가 이루어지는 부분에 대해서는 아래 답변을 참고하시면 좋을 것 같습니다 :)

https://www.inflearn.com/questions/222555 

 

그리고 테스트해보시면 마스터노드의 kubelet에 문제가 생기면 '마스터노드'에는 제대로 배포가 되지 않는 것을 확인하실 수 있습니다.

 

 

혹시 추가로 궁금하신 점이 있으면 남겨주세요!

감사합니다 :)

 

0

주도님의 프로필

주도

2022.05.20

안녕하세요, 에따비님.

튜터 주도입니다.

 

관련해서 내용을 정리하고 있으니,

곧 답변을 드릴 수 있도록 하겠습니다 :)

 

감사합니다.