inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쉽게 시작하는 쿠버네티스(v1.35)

5.2.쿠버네티스 워커 노드의 구성 요소에 문제가 생겼다면-v1.25

kubelet과 API 서버 사이의 동작방식

297

오몰내알

작성한 질문수 13

0

안녕하세요! 이번 강의와 앞선 쿠버네티스 구조 부분을 듣다가 의문이 생기는 부분이 있어 질문드립니다!

이번 강의에서 kubelet은 API 서버와 선언적인 방식으로 동작하지 않기 때문에 kubelet에 문제가 생긴다면 시스템 전체에 문제가 생길 수 있다고 하셨는데,

앞선 쿠버네티스 구조 부분에서는 강사님께서 kubelet이 API 서버가 선언한 부분을 읽어서 컨테이너 런타임에게 컨테이너를 만들어주라고 명령하는 방식으로 파드가 생성된다고 하셔서 kubelet과 API 서버 사이의 동작방식에 대해 약간 헷갈려서 질문 드립니다!

kubelet이 API 서버가 선언적인 방식으로 동작하지 않는 것이 맞는지, 맞다면 둘 사이에서는 어떤 방식으로 동작하는 것인지 궁금합니다!

정말 좋은 강의로 매일매일 쿠버네티스 공부가 즐거운 것 같습니다 앞으로도 좋은 강의 부탁드립니다😀

 

docker kubernetes

답변 2

1

조훈(Hoon Jo)

안녕하세요 

 

kubelet은 서비스 데몬 형태이기 때문에 위와 같이 얘기한 게 맞습니다만...

API 서버는 쿠버네티스의 구성 요소에 맞게 선언적인 방식입니다. 

(다른 구성 요소에 비해서 더 많은 일들을 하지만요)

그리고 kubelet에 문제가 있으면 해당 노드에 문제가 생기는 것은 맞으나, 그걸 쿠버네티스와 같은 클러스터 시스템에서 전체라고 표현하기는...주어에 따라 좀 다를 것 같습니다.  

 

앞선 쿠버네티스 구조 부분에서는 강사님께서 kubelet이 API 서버가 선언한 부분을 읽어서 컨테이너 런타임에게 컨테이너를 만들어주라고 명령하는 방식으로 파드가 생성된다고 하셔서 kubelet과 API 서버 사이의 동작방식에 대해 약간 헷갈려서 질문 드립니다!

또한 위와 같이 혼동이 생기신 것은..

1차적으로는 kubelet이 API 서버는 직접 연결을 시도하지 않는 구조입니다. 선언적으로 하기 위해서는 누군가는 선언을 하고 이를 관리해야 하는데, 해당 역할이 API 서버입니다.  

이 부분은 쿠버네티스의 기본 철학의 파드가 배포되면? (파드 라이프 사이클)을 보고 다시 정리하시는게 좋으실꺼 같습니다. 

 

kubelet이 API 서버가 선언적인 방식으로 동작하지 않는 것이 맞는지, 맞다면 둘 사이에서는 어떤 방식으로 동작하는 것인지 궁금합니다!

 

이 부분도 쿠버네티스의 기본 철학의 파드가 배포되면? (파드 라이프 사이클)을 보시는게 나으실꺼 같습니다. API가 선언한 것을 주기적으로 kubelet이 watch 하는 구조입니다. 아마도 watch가 먼저 들어가는 부분이 혼동이 있었을 수 있는데, kubelet도 다른 구성 요소처럼 API 서버에 선언되어 있는 것을 보고 파드를 올릴지 말지를 결정합니다. 다만 여기서 복잡성이 있는 부분은 중복해서 파드를 올리지 않게 하기 위해서 내부적으로 노드 같은 경쟁(race)를 방지해야 하는 것이 필요하긴 합니다. 

 

어쨌든 쉽게 설명하자면 kubelet도 선언적에 가깝게 API 서버를 바라봅니다. 

 

한가지 제안이 있는데, 지금 내용을 이해하고 해석하시려는 것은 매우 좋은데, 다른 분과 함께 의논해 가면서 정리하시면 아마 학습 효과가 더 올라가실 것 같습니다. 

왜냐면 나의 생각을 정리하고 다른 사람과 나누고 설명하는 과정에서 다시 정리가 되거든요. 

이에 가능하시다면, 내가 이해한게 맞나? 라는 질문도 좋지만 스터디 그룹을 만들고 이를 활용해 보시는 것도 추천드리고 싶네요. 

어짜피 쿠버는...가볍게 보기에는 한없이 가볍지만 무겁게 보려면 꽤 무거운거라서요. 

 

필요하신 내용이라면 참고하시기 바랍니다. 

 

 

 

 

 

 

0

조훈(Hoon Jo)

좀 더 구체적으로 알고 싶으시다면, 아래의 라이프 사이클을 참고하시는 것도 좋으실 것 같습니다. 

 

https://dzone.com/articles/kubernetes-lifecycle-of-a-pod

https://velog.io/@idnnbi/Kubernetes-lifecycle-of-pod

0

오몰내알

친절한 답변 감사합니다!

환경 설정에 대하여

0

77

2

실습 환경 관련 질의

0

73

2

ch4 디렉토리

0

115

2

cp-k8s-1.30.0(github_SysNet4Admin).ova 파일 확인 부탁드립니다.

0

87

2

6.2 nfs_exporter Permission denied

0

93

2

12분 13초부터의 내용 질문

0

85

1

K8S https 로 try 하는 부분에 대한 Error 확인

0

94

1

deployment 관련 문의

0

102

3

kubectl get nodes 관련 문의

0

224

5

Vagrant 도 에러, OVA도 에러... 실습환경을 만드는게 너무 힘들어요~~~~~!!!!!!

0

125

3

Tabby를 설치후 Copy할때 오류

0

102

3

nginx run 시 ImagePullBackOff 발생

0

116

4

쿠버네티스 환경 구축 질문입니다.

0

120

2

virtualbox 설치 실패

1

134

2

2.4강 brew install 시 .rb 파일 미인식 (./virtualbox-v7.1.10/virtualbox.rb)

1

172

2

워커노드 OS SWAP 질문

0

65

1

2.4.베이그런트(Vagrant)+버추얼박스/vagrant up issue

0

147

2

k run chk-info --image=sysnet4admin/chk-info 에러..

0

113

2

vagrant up 시에 Running pre-flight checks 에서 에러

0

94

2

failed to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.30.14\": context canceled"

0

202

2

vagrant up을 하면 설정과 다르게 설정이 됩니다.

0

132

2

Tabby 무응답

0

142

4

ova 입력시

0

173

3

vagrant up

0

170

2