study/클라우드&쿠버네티스

쿠버네티스 아키텍처 (마스터, 노드)

dddzr 2023. 10. 4. 14:18

출처 https://kubernetes.io/docs/concepts/architecture/

 

쿠버네티스는 크게 마스터(Master)와 노드(Node) 두 개의 컴포넌트로 분리

 

마스터(Master)

마스터는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할

etcd, kube-apiserver, kube-scheduler, kube-controllermanager로 구성

  • Kube-apiserver: 쿠버네티스 API를 제공하며, 클러스터의 모든 작업을 조율합니다.
  • etcd: 클러스터의 모든 구성 데이터를 안전하게 저장하는 분산형 키-값 저장소입니다.
  • Kube-scheduler: 새로운 Pod을 어떤 노드에 배치할지 결정하는 역할을 합니다.
  • Kube-controller-manager: 클러스터의 상태를 감시하고 제어하는 여러 컨트롤러를 실행합니다.

 

노드(Node)

출처 https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/explore/explore-intro/

노드는 파드나 컨테이너처럼 쿠버네티스 위에서 동작하는 워크로드를 호스팅하는 역할

노드에는 kubelet, kube-proxy, docker등이 실행

실제 사용자가 사용하는 컨테이너들은 대부분 노드에서 실행

  • Kubelet: 마스터로부터 할당된 작업을 실행하고, 노드 상태를 주기적으로 마스터에 보고합니다.
  • Kube-proxy: 각 노드에서 동작하며, 서비스의 가상 IP 및 포트를 각 Pod로 전달합니다.
  • Container Runtime: 컨테이너를 실행하는 데 사용되는 소프트웨어 (Docker, containerd 등).

 

*애드온

쿠버네티스 클러스터에 추가적인 기능이나 리소스를 제공하기 위한 확장 기능입니다. 

일부 예시 입니다.

  • kube-DNS: 클러스터 내에서 서비스 간의 DNS 해결을 제공하여 서비스 디스커버리를 간편하게 합니다.
  • 웹 UI (대시보드): 쿠버네티스 클러스터를 위한 범용의 웹 기반 UI
  • 컨테이너 리소스 모니터링: 중앙 데이터베이스 내에 컨테이너들에 대한 포괄적인 시계열 메트릭스를 기록하고 그 데이터를 열람하기 위한 UI를 제공
  • 클러스터-레벨 로깅: 검색/열람 인터페이스와 함께 중앙 로그 저장소에 컨테이너 로그를 저장