DevOps/Kubernetes

[K8S] k8s 정리 - (3) Kubernetes Architecture - worker, addon

yubi5050 2022. 8. 28. 21:20

 

 

Kubernetes Component

쿠버네티스를 구성하는 Component에는 크게 전체 클러스터를 관리하는 마스터(Master), 컨테이너가 배포되는 노드(Node), 에드원 노드로 총 3가지 종류의 Component가 있으며, 각각의 Component는 다음과 같은 역할을 수행한다.

 

  • Master Component : 클러스터 관리 역할에 필수적인 컴포넌트
  • 일반 노드 Component : Worker, 애플리케이션 작업 관리 하는 주체 역할
  • addon 노드 Component : 필수는 아닌 추가 모듈 역할, ex. 네트워킹 에드온 등

 

Kubernetes node는 실제 master로 부터 전달 받은 명령을 수행하는 주체로 모듈로는 kubelet, kube-proxy 등이 있으며, addon 모듈은 클러스터 내에서 필요로 하는 특정 기능을 수행하는 파드이며 종류로는 네트워킹 addon, DNS addon 등이 있다.

  • kubelet : 모든 노드에서 실행되는 k8s daemon으로, Pod를 선언 정보에 다라 실행 및 관리
  • kube-proxy : k8s의 네트워크의 전반을 담당 (중계 및 변환 등 proxy 역할)
  • network addon : 클러스터 안 가상 네트워크 구성역할
  • DNS addon : 쿠버네티스 내부 서비스에 DNS 레코드를 제공하는 역할

addon Node는 그 외에도 Dashboard addon, 컨테이너 자원 모니터링 (cAdvisior) 등이 있다.

 

 

 

Worker 노드, Addon 노드 Component

Worker node Component는 Master 노드로부터 전달 받은 명령을 실제 수행하는 주체

  • 마스터의 API Server와 통신하며 서비스를 생성하고 상태를 관리
  • kubelet을 통한 서비스(컨테이너) 실행, 중지 및 alive 상태 목표의 관리
  • Proxy 역할 : network proxy와 loadbalancer 역할을 수행

 

worker node

 

Addon 모드는 클러스터 내에서 특정 필요 기능을 수행할 수 있는 부가적인 Node Component로, namespace는 kube-system이며 동일하게 deployment, replication 컨트롤러 등의 형태로 관리된다.

 

 

kubelet (명령 도구)

kubelet은 모든 노드에서 실행되는 k8s daemon으로, Pod의 선언 정보에 따라 실행, 관리 하는 역할

 

👉  kubelet의 특징

  • 마스터의 kube-apiserver와 통신하면서 Pod의 생성, 관리, 삭제를 담당
  • 워커 노드 에서는 scheduler로 부터 받은 Pod Spec을 Docker로 전달하여 container 실행
  • 내부적으로 cAdviser라는 모니터링 Tool을 통해 현재의 컨테이너에 대한 정보 수집, etcd에 저장

 

kube-proxy

k8s의 network 동작을 관리하며 다양한 중계 및 변환을 수행하는 네트워크 Proxy 역할

 

👉  kube-proxy 특징

  • 외부에서 들어오는 연결 수신
  • privileage 권한을 가지고 있으며, ip-tables rules 구성

 

Networking addons

클러스터 안 가상 네트워크 구성시 kube-proxy 외에 네트워킹 에드온을 사용

 

DNS addons

클러스터 안에서 동작하는 DNS 서버로 쿠버네티스 서비스에 DNS 레코드를 제공하는 역할을 수행

 

👉  DNS addons 특징

  • 쿠버네티스 안에 실행된 컨테이너들은 자동으로 DNS 서버에 등록됨
  • 종류는 크게 CoreDNS, Kube-DNS가 있으며, 초기에는 kube-DNS가 많이 사용됬으나, 버그가 많아 나중에는 CoreDNS를 기본 애드온으로 많이 사용

 

마무리 

이번 글에서는 Kuberenetes의 Architecture 중 Worker Component와 addon Component의 구성에 대해 알아보았다. 다음 시간엔 위 모듈들을 바탕으로 k8s의 동작 흐름(Flow)에 대해 알아보려고 한다.

 

이미지 출처 : https://www.youtube.com/watch?v=Iue9TC13vPQ