본문 바로가기

가상 머신/쿠버네티스

[ 쿠버네티스 / Kurbernetes ] K8s 구성하는 주요 프로세스

반응형

Kubernetes(K8s) 클러스터를 구성하는 코어 프로세스는 클러스터의 관리와 오케스트레이션을 담당하며, 주요 구성 요소는 다음과 같습니다:

1. 마스터 노드 (Control Plane)

마스터 노드는 클러스터를 관리하고 모든 노드 간의 조정을 담당합니다. 주요 구성 요소는 다음과 같습니다:

  1. kube-apiserver:
    • Kubernetes API 서버로, 클러스터의 중앙 제어 부분입니다.
    • 클러스터의 모든 요청을 받아들이고, 유효성을 검사하며, RESTful API를 통해 다른 구성 요소와 통신합니다.
  2. etcd:
    • 분산 키-값 데이터베이스로, 클러스터의 상태 정보를 저장합니다.
    • 모든 마스터 노드 구성 요소와 클러스터의 상태를 공유하며, 고가용성을 위해 복제본을 유지합니다.
  3. kube-scheduler:
    • 새로 생성된 Pod를 적절한 노드에 할당하는 역할을 합니다.
    • CPU, 메모리, 네트워크와 같은 리소스 요구사항과 정책을 기반으로 스케줄링 결정을 내립니다.
  4. kube-controller-manager:
    • 여러 컨트롤러를 실행하는 데몬으로, 각 컨트롤러는 클러스터의 상태를 원하는 상태로 유지하는 역할을 합니다.
    • 주요 컨트롤러에는 복제 컨트롤러, 노드 컨트롤러, 서비스 계정 및 토큰 컨트롤러 등이 있습니다.
  5. cloud-controller-manager:
    • 클라우드 제공자와의 통합을 담당합니다.
    • 노드 컨트롤러, 라우트 컨트롤러, 서비스 컨트롤러 등을 포함하며, 클라우드 리소스와 Kubernetes 리소스를 연결합니다.

2. 워커 노드 (Worker Nodes)

워커 노드는 실제 애플리케이션 워크로드를 실행하는 노드입니다. 주요 구성 요소는 다음과 같습니다:

  1. kubelet:
    • 각 워커 노드에서 실행되는 에이전트입니다.
    • Pod 및 컨테이너의 생명 주기를 관리하고, 마스터 노드와 통신하여 클러스터 상태를 보고합니다.
  2. kube-proxy:
    • 네트워크 프록시로, Kubernetes 서비스의 네트워크 규칙을 구현합니다.
    • 클러스터 내에서 네트워크 트래픽이 올바르게 라우팅되도록 하며, 서비스 디스커버리와 로드 밸런싱을 처리합니다.
  3. Container Runtime:
    • 컨테이너를 실행하고 관리하는 소프트웨어입니다.
    • Docker, containerd, CRI-O 등이 여기에 포함됩니다.

3. 클러스터 통신 및 관리

  • Pod:
    • Kubernetes에서 가장 작은 배포 단위로, 하나 이상의 컨테이너 그룹을 의미합니다.
    • 각 Pod는 고유한 IP 주소를 가지며, 같은 노드 내의 다른 Pod들과 통신할 수 있습니다.
  • Service:
    • Pod의 집합에 대한 정책적 접근 방식을 제공하는 추상화입니다.
    • 로드 밸런싱, 서비스 디스커버리 등을 통해 Pod와 외부 간의 통신을 관리합니다.

이러한 구성 요소들이 협력하여 Kubernetes 클러스터를 관리하고, 확장 가능하고 신뢰할 수 있는 애플리케이션 배포 환경을 제공합니다.

반응형