Kubernetes

[K8S] 05. Kubernetes 아키텍처

Y1sik 2025. 7. 13. 16:18
728x90

# Step 1. Kubernetes Architecture

쿠버네티스는 VM(또는 베어메탈 머신) 및 로드 밸런서와 같은 저수준의 컴퓨팅 기본 요소 위의 워크로드 레벨에 위치하는 추상화 계층이다.

쿠버네티스에서는 이 VM을 노드(Node) 라고 부르며, 클러스터 형태로 배포된다.

파드(Pod) 는 하나 또는 여러개의 컨테이너의 집합이다.

네트워크는 서비스를 통해 구성 된다.

디플로이먼트는 보다 쉽게 파드를 관리할 수 있다.

 

# Step 2. Kubernetes Cluster

쿠버네티스 클러스터는 컨테이너가 실행되는 컴퓨트 인스턴스인 노드의 집합

각 노드에는 쿠블릿(Kubelet)이라고 하는 특수한 쿠버네티스 프로세스가 실행된다.

쿠블릿은 컨트롤 플레인(쿠버네티스 오케스트레이션 프로세스)과 통신하고 컨테이너 런타임을 통해 노드에서 실행되는 컨테이너의 라이프 사이클 관리를 담당하는 역할을 한다.

클러스터에서는 하나 이상의 노드(고가용성 모드로 동작하는 경우)가 특별한 역할을 맡게 된다.

 

컨트롤 플레인 노드 역할

 - 쿠버네티스 명령행 인터페이스(CLI) 와 같은 도구를 사용하여 클러스터와 상호작용할 수 있도록 API 를 실행한다.

 - 클러스터의 상태를 저장

 - 클러스터 내의 모든 노드와 조정을 통해 컨테이너 스케줄링(시작, 중지, 재시작)

 

워커 노드 역할

  - 컨테이너 시작 및 중지와 같은 작업을 포함하여 실행되는 컨테이너의 라이프 사이클을 관리하는 역할을 담당한다.

  - 컨트롤 플레인은 노드에 특정 컨테이너를 실행하도록 지시하지만, 컨테이너의 실제 실행은 노드의 역할이다. ( 재시작, 메모리 회수)

 

컨트롤 플레인과 노드는 쿠버네티스 클러스터를 구성하고 워크로드를 스케줄링할 수 있는 쿠버네티스 플랫폼을 제공

 

# Step 3. Kubernetes Objects

클러스터가 생성되면 주로 쿠버네티스 API를 통해 상호작용하며 쿠버네티스 객체를 생성, 검사, 수정한다. 이러한 각 객체는 시스템의 특정 배포 구성을 나타낸다.

파드 

 - 컨테이너의 집합

 - 쿠버네티스에서 주된 스케줄링 단위로 사용됨

 - 쿠버네티스가 요청한 리소스에 따라 노드에 스케줄링을 수행하는 컴퓨팅 단위

 

디플로이먼트

 - 장애가 발생한 경우 파드를 재시작하거나 스케줄링을 변경해야 하기 때문에 라이프 사이클을 관리하는 상위 객체(디플로이먼트)로 래핑한다.

 - 다른 선택지로는 배치 프로세스 처리를 가능케 하는 잡(Job)이 있다.

 - 파드의 replicas 갯수 항목을 명시할 수 있다.

 - 파드가 클러스터에 분산되는 방식에 대한 세부 요구사항도 명시할 수 있다.

 - 지속적인 모니터링으로 상태 조정을 진행한다. -> 특정 시점 사용할 수 없게 되는 경우 요구사항을 충족 시키기 위해 새로운 파드를 스케줄링 한다.

 

서비스

파드 집합에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 방법이다.

 - 외부 노출 : 파드 집합에서 실행 중인 애플리케이션을 네트워크 서비스로 노출하는 방법이다.

 - 부하 분산 : 단일 주소 지정 메커니즘을 제공하고 파드 전체에 로드를 분산시킨다.

 - 고정 접속 : 내부 IP 주소와 DNS 레코드가 할당되기 때문에 클러스터 내부의 다른 파드에서 참조할 수 있다. 또한 서비스에는 외부 IP 주소가 할당된다.

 

반응형