본문 바로가기
IT/kubernates

Kubernetes Architecture

by 봉즙 2024. 5. 16.

Kubernetes의 클러스터에는 아래와 같이 여러 개의 구성 요소가 있습니다.

Kubernetes Architecture

Control Plane 이라 불리는 Matser Node와 Data Plane 이라 불리는 Work Node 가 존재합니다.

Control Plane

클러스터 전체를 관리하고 조정하는 중앙 컴포넌트 집합입니다. Control Plane은 클러스터의 상태를 유지하고, 작업을 예약하며, 클러스터의 일관성과 안정성을 보장합니다. 주요 구성 요소는 다음과 같습니다:

  1. kube-api-server:
    • Kubernetes API 서버로, 클러스터의 API 요청을 처리합니다.
    • 사용자, CLI 툴, 그리고 다른 Kubernetes 컴포넌트와의 모든 통신을 처리합니다.
    • 클라이언트가 클러스터와 상호 작용할 수 있도록 RESTful API를 제공합니다.
  2. etcd:
    • 모든 클러스터 데이터를 저장하는 key-value 데이터 저장소입니다.
    • 고가용성 및 일관성을 보장하는 분산 데이터 저장소로 설계되었습니다.
    • 모든 상태 정보(예: 노드 상태, Pod 상태 등)를 저장하며, Control Plane의 다른 컴포넌트들이 이를 참조합니다.
  3. kube-scheduler:
    • 새로 생성된 Pod가 실행될 적절한 노드를 결정합니다.
    • 리소스 요구사항, 정책 제한, 노드 상태 등에 따라 스케쥴링을 실행합니다.
  4. controller-manager:
    • 여러 컨트롤러를 실행하는 프로세스입니다.
    • 각 컨트롤러는 클러스터의 상태를 원하는 상태로 유지하기 위한 작업을 수행합니다.
    • 주요 컨트롤러는 다음과 같습니다.
      • Node Controller
      • Replication Controller
      • Endpoint Controller
  5. cloud-controller-manager:
    • 클라우드 공급자와의 상호 작용을 담당하는 컨트롤러입니다.
    • 클러스터를 다양한 클라우드 환경에서 원활하게 실행할 수 있도록 지원합니다.
    • 주요 컨트롤러는 다음과 같습니다.
      • Node Controller
      • Route Controller
      • Service Controller

DATA PLANE

Kubernetes에서 노드(Node)는 워커 머신으로, 클러스터 환경에 따라 VM 혹은 물리적 머신 일도 있습니다. 각 노드는 pod을 실행하기 위한 필수 서비스를 제공하며, Control Plane에 의해 관리됩니다.

노드의 주요 구성 요소

  1. kubelet:
    • 각 노드에서 실행되는 에이전트로, PodSpec에 명시된 컨테이너들이 실행되고 있는지, 그리고 그 상태가 정상인지 확인합니다.
    • Kube API와 통신하며, 해당 노드에 할당된 pod를 관리합니다.
  1. kube-proxy:
    • 각 노드에서 실행되는 네트워크 프록시로, 네트워크 규칙을 유지합니다. 이러한 규칙은 클러스터 내외부의 네트워크 세션에서 pod와의 통신을 가능하게 합니다. (예: 웹 서버와 DB의 연결)

네트워크 플러그인

클러스터 내에서 컨테이너 네트워킹을 설정하고 관리하는 데 사용됩니다. 네트워크 플러그인은 Kubernetes 네트워킹 모델을 구현하여 각 pod가 고유한 IP 주소를 가지며, 모든 pod가 클러스터 내에서 서로 통신할 수 있도록 합니다.

| Ref. |

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

'IT > kubernates' 카테고리의 다른 글

Pod  (0) 2024.05.21
Node  (0) 2024.05.20
Control Plane  (0) 2024.05.17
Kubernetes  (0) 2024.05.16
WSL2 Ubuntu 환경에서 Docker Desktop 설치 하지 않고 Minikube 설치 및 IntelliJ Kubernetes 플러그인 연동 방법  (0) 2023.07.26

댓글