YongsHub / -Kubernetes-Study

스터디 레포지토리
1 stars 1 forks source link

Chapter6 - 범위: 섹션8 2024/01/29 #6

Closed himJJong closed 6 months ago

himJJong commented 6 months ago

Architecture

Topic

YongsHub commented 6 months ago

kubelet이 하는 일이 정확히 무엇인지 이해하고 있나요?

himJJong commented 6 months ago
  1. Networking 질문
himJJong commented 6 months ago

kubelet이 하는 일이 정확히 무엇인지 이해하고 있나요?

제가 이해한것을 간단히 말씀드리겠습니다. kubelet은 모든 노드에 존재합니다. 그리고 Master Node의 컴포넌트인 kube-apiserver를 watch 하고 있다가, 본인 노드에 해당되는 Pod의 정보를 캐치했다면

himJJong commented 6 months ago
  1. Pause Container와 전체 맥락 이해
    • 전체적인 구조에 대해 짚고 넘어가고자 같은 이해를 했는지 궁금해서 글을 작성해보았습니다. 부족한 부분이 있다면 추가 설명 감사하겠습니다 :)

1) Pause Conatainer는 Pod가 생성될 때 네트워킹 담당 역할을 맡기 위해 자동 생성. 2) Pause Container는 하나의 Pod내에 모두 존재하며, 이를 통해 Network Plugin인 kubenet이라면 Bridge, Calcio라면 Route와 각자의 가상 인터페이스와 직접 통신. 3) 이후 Pod끼리 통신하는 방법과 Service를 통해 Pod에 통신을 요청하는 방법이 있음. 그중에 Service를 통해 요청하는 방법일 때 해당 Service가 생성되면 kube-dns, api-server, kube-proxy에 서비스 정보를 등록. 그리고 사실상 이때 Endpoint가 실제 Service와 Pod 연결 상태를 맡고 있음. api-server가 Endpoint를 보다가 NAT 내에서 kube-proxy에게 해당 Service IP를 Pod IP로 변환해주는 정보를 주며, 이때 Proxy Mode로 3가지 중 한개를 사용하여 동작함.

YongsHub commented 6 months ago
  1. Networking 질문
  • 첫번째는 Host Network의 Router는 해당 Pod IP가 본인의 대역이면 bridge 쪽으로 트래픽을 내리고, 아니라면 위로 올려준다고 강의에 나와있습니다. Rotuer내에 NAT 기능은 해당 강의에서 배웠듯이 해당 Service에 대한 정보가 저장이 되어 있고, 이를 Pod IP와 연결을 해주는 것으로 이해했는데요. 질문하고 싶은 점은 해당 Router에서 위로 올려보낼 때 이미 보내야 할 IP대역을 Router에서 인지하고 위로 올려보내는 것이 맞는가?? 입니다! 저와 같에 이해하셨는지 궁금합니다.
  • 두번째는 Calico 플러그인을 사용했을 때 (kubenet, Calico 구성에서)Bridge 대신 Route를, Router 대신 Overlay가 역할을 대체하는거로 이해했는데 맞는지 궁금합니다. Calico 사용시 추가되는 기능이 있지만, 이를 제외하고 크게 봤을 때 위처럼 이해한 부분이 옳은지 궁금해서 질문 올렸습니다~

네네 저도 동일하게 이해했습니다. NAT은 Service IP에 대해서 Pod IP로 통신될 수 있게 저장하고 있다보니 라우팅 되어 있는 것으로 이해했습니다

두번째로 calico는 Route와 보안기능 (firewall), Overlay를 통해 타 Node와 통신하기 위해!! 네 비슷한 것 같네요

YongsHub commented 6 months ago

kubelet이 하는 일이 정확히 무엇인지 이해하고 있나요?

제가 이해한것을 간단히 말씀드리겠습니다. kubelet은 모든 노드에 존재합니다. 그리고 Master Node의 컴포넌트인 kube-apiserver를 watch 하고 있다가, 본인 노드에 해당되는 Pod의 정보를 캐치했다면

  • Container Runtime으로 사용하고 있는 Docker에게 컨테이너 생성 요청을 합니다.
  • 모든 노드에 존재하는 kube-proxy에게 생성한 컨테이너가 사용될 네트워크 생성을 요청합니다.
  • 생성된 컨테이너에 새로 생긴 Network를 할당하도록 도와줍니다.

저도 동일하게 이해했습니다!

YongsHub commented 6 months ago

Storage Type 중, FileStorage, ObjectStorage, BlockStorage 에 대해 정리하면 좋을 것 같네요!

himJJong commented 6 months ago

확인했습니다!! 덕분에 이해에 도움이 되었습니다 감사합니다. 이제 마지막 주차만 남았네요. 마지막까지 화이팅입니다👍

YongsHub commented 6 months ago

확인했습니다!! 덕분에 이해에 도움이 되었습니다 감사합니다. 이제 마지막 주차만 남았네요. 마지막까지 화이팅입니다👍

고생하셨습니다!