
쿠버네티스 개요
쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 오픈소스 컨테이너 오케스트레이션 플랫폼입니다. 자동화된 배포, 확장 및 관리 기능을 제공하여 컨테이너화된 애플리케이션 운영을 간소화합니다 쿠버네티스 클러스터 구조
쿠버네티스 클러스터는 컨트롤 플레인과 컨테이너화된 애플리케이션을 실행하는 워커 노드로 구성됩니다. 모든 클러스터는 애플리케이션 워크로드의 구성 요소인 파드(Pod)를 실행하기 위해 최소한 하나의 워커 노드가 필요합니다.
주요 컴포넌트
컨트롤 플레인 컴포넌트
- kube-apiserver: 쿠버네티스 API를 노출하는 컴포넌트로, 모든 작업의 프론트엔드 역할을 합니다.
- etcd: 클러스터의 모든 데이터를 저장하는 일관성 있고 가용성 높은 키-값 저장소입니다.
- kube-scheduler: 새로 생성된 파드를 감시하고 어떤 노드에서 실행할지 결정합니다.
- kube-controller-manager: 여러 컨트롤러 프로세스(노드 컨트롤러, 레플리케이션 컨트롤러 등)를 실행합니다.
- cloud-controller-manager: 클라우드 제공자의 API와 클러스터를 연결합니다.
노드 컴포넌트
- kubelet: 각 노드에서 실행되는 에이전트로, 파드 내 컨테이너가 실행되도록 관리합니다.
- kube-proxy: 노드에서 네트워크 규칙을 유지하고 파드 간 네트워크 통신을 가능하게 합니다.
- 컨테이너 런타임: 컨테이너 실행을 담당하는 소프트웨어(예: Docker, containerd, CRI-O)입니다.
작동 방식
쿠버네티스는 선언적 구성과 자동화를 통해 컨테이너화된 애플리케이션 관리를 용이하게 합니다. 사용자가 원하는 상태를 선언하면, 쿠버네티스는 현재 상태를 지속적으로 모니터링하고 그 상태를 원하는 상태로 변경하기 위해 필요한 작업을 수행합니다.
이러한 구조를 통해 쿠버네티스는 확장성, 이식성, 자가치유 기능을 제공하며, 다양한 환경에서 일관된 방식으로 애플리케이션을 배포하고 관리할 수 있게 해줍니다.
신성민 병장님!