Kubernetes 컴포넌트
Kubernetes 컴포넌트 (Kubernetes Components)
Kubernetes 클러스터를 구성하는 핵심 컴포넌트들에 대해 살펴볼게요. 컨트롤 플레인과 노드 컴포넌트, 그리고 애드온까지 옆에서 차근차근 정리해드릴게요.
핵심 컴포넌트 (Core Components)
Kubernetes 클러스터는 **컨트롤 플레인(control plane)**과 하나 이상의 **워커 노드(worker nodes)**로 구성됩니다.
컨트롤 플레인 컴포넌트 (Control Plane Components)
클러스터의 전반적인 상태를 관리해요.
- kube-apiserver: Kubernetes HTTP API를 노출하는 핵심 컴포넌트 서버예요.
- etcd: 모든 API 서버 데이터를 위한 일관되고 고가용성인 키-값 저장소예요.
- kube-scheduler: 아직 노드에 바인딩되지 않은 파드를 찾아 각 파드를 적절한 노드에 배정합니다.
- kube-controller-manager: Kubernetes API 동작을 구현하기 위해 컨트롤러를 실행합니다.
- cloud-controller-manager(선택): 기반이 되는 클라우드 제공자와 통합합니다.
노드 컴포넌트 (Node Components)
모든 노드에서 실행되며, 실행 중인 파드를 유지하고 Kubernetes 런타임 환경을 제공해요.
- kubelet: 컨테이너를 포함한 파드가 실행 중이도록 보장합니다.
- kube-proxy(선택): 서비스를 구현하기 위해 노드에 네트워크 규칙을 유지합니다.
- 컨테이너 런타임: 컨테이너 실행을 담당하는 소프트웨어예요.
클러스터는 각 노드에 추가 소프트웨어가 필요할 수 있어요. 예를 들어 Linux 노드에서 로컬 컴포넌트를 감독하기 위해 systemd를 실행할 수도 있습니다.
애드온 (Addons)
애드온은 Kubernetes의 기능을 확장해요. 몇 가지 중요한 예는 다음과 같습니다.
- DNS: 클러스터 전역 DNS 해석용.
- 웹 UI(대시보드): 웹 인터페이스를 통한 클러스터 관리용.
- 컨테이너 리소스 모니터링: 컨테이너 메트릭 수집·저장용.
- 클러스터 수준 로깅: 컨테이너 로그를 중앙 로그 저장소에 저장용.
아키텍처의 유연성 (Flexibility in Architecture)
Kubernetes는 이러한 컴포넌트를 배포·관리하는 방식에 유연성을 허용해요. 아키텍처는 작은 개발 환경부터 대규모 프로덕션 배포까지 다양한 요구에 맞게 조정될 수 있습니다.
각 컴포넌트에 대한 자세한 정보와 다양한 클러스터 아키텍처 구성 방법은 클러스터 아키텍처 페이지를 참고하세요.