• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

kube-api-server & kube-proxy 관련 질문

21.11.19 15:32 작성 조회수 221

1

안녕하세요. 

궁금한 부분이 있어 질문 올립니다!

pod 생성과정에서 
pod를 생성하는 명령어가 들어와 api-server가 etcd 기록을 끝낸 후
스케줄러가 api-server를 watch하고 있다 pod 생성해야 된다고 판단이 되면 node resource 확인 후
그 정보를 api-server에게 요청을 보내서 api-server가 etcd에 pod가 스케줄링 될 node정보를 기입하는 형태가 맞나요?

아니면 스케줄러가 etcd에 직접 정보를 기입하는 건가요? 
무조건 api-server를 통해야 된다고 말씀주신것 같아서 궁금해 여쭤봅니다!

----

그리고 

api-server를 kubelet이 watch하고 있다가 자신에 해당하는 node 정보를 가진 pod를 확인하면 
container runtime인 docker에게 cotainer 생성을 시키고 컨테이너가 성공적으로 생성이 되면 
kube-proxy에게 네트워크를 생성하도록 한다고 말씀 주셨는데 네트워크 생성이라는 것이 아래 두가지를 말씀하시는 건가요?궁금해서 여쭤봅니다! (Networking Architecture강좌까지 듣고 질문 올립니다!)

1. Container생성시 Pause Container도 같이 생성이 되며 
Pause Container안에는 Network Interface가 생성이 되어있다고 설명해주셨는데
한 Pod내의 모든 Container들이 Pause Container안에 있는 Network Interface 같이 사용할수 있도록 구성을 해주는 기능을 하는 건가요?

2. Pause Container가 생성시 Host(Node) 에도 Namespace를 이용해 1:1 매칭되는 가상 인터페이스가 생긴다고 말씀을 주셨는데 Pause Container 인터페이스와 Host 인터페이스와 연결해주는 역활을 하는 건가요?

 

답변 4

·

답변을 작성해보세요.

1

kube-proxy에서 network 생성한다는 부분에 큰 포커스를 둘 필요는 없다는 말씀 드릴께요.

해당 부분은 큰 그림에 대한 컨셉들을 설명하는거라 

제가 언급한 단어 하나하나에 크게 논리적인 분석을 할 필요는 없는 부분입니다^^

다시 말씀드리면 kube-proxy가 iptables를 이용해서 트래픽을 pod에 전달하게 하죠. 그런 내용들을 통칭해서 network를 생성한다라고 표현한 겁니다.

 

1

안녕하세요. 

강의로 말씀주신 내용들인데 제 머리속에서 매칭이 안되는 부분이 있어 올린 질문입니다!

정리하자면 kube-proxy가 create network 해주신다고 했는데 create network 라는것이 어떤것을 하는 건지가 잘 이해가 안되는것 같습니다.
단순하게 라우팅정보를 iptables에 전달하는 역할만 하는지 아니면 
create network 할때에 말씀주신 namespace를 가지고 네트워크를  create하는 역할을 하는건지 알고 싶습니다.

 

0

안녕하세요. 답변이 늦었습니다.

모든 통신은 api-server를 거치게 됩니다. 주체가 누가됐건 결국 api-server가 etcd에 데이터를 수정하고요.

두번째 질문은 제가 내용 이해가 잘 안되서 다시 질문을 정리해주시면 좋을것 같고요

1,2번 답변은 공통인거 같은데. 

네트워크 인터페이스의 역할을 Pause Container가 해주고요. 쿠버네티스에서는 namespace를 이용해서 다른 컨테이너들이  Pause Container의 인터페이스를 같이 공유하도록 해주는 역할을 합니다.

강의에서 대부분 말씀드린 내용과 답변인데 질문의 의도는 재확인 차원인지요?

좀더 명확한 질문의 의도를 덧붙여주시면 다시 답변드리겠습니다.

감사합니다. 

0

안녕하세요! 바쁘신 와중에 죄송합니다

답변부탁드립니다!