티스토리 뷰

728x90

 

728x90

1. Control Plane

1) kube-apiserver

- 클러스터로 들어오는 요청을 가장 앞에서 접수한다.
- kubectl을 사용하여 명령을 수행할 경우 kube-apiserver로 전송한다.

 

2) kube-scheduler

- 새로 생성된 파드 감지 후, 어떤 노드에 배치할지 판단한다.
- 파드 스케쥴링 결정을 위해 요구사항, 정책제어, 어피니티(스케쥴링에 관한 조건), 라벨 등을 요소를 고려한다.


3) kube-controller-manager

- 컨트롤러 프로세스를 실행하는 컨트롤 플레인 컴포넌트
- 노드 컨트롤러 : 노드가 다운되었을 때, 통지와 대응에 관한 책임을 가진다.
- 잡 컨트롤러 : 일회성 작업인 Job 오브젝트를 감시하여 해당 작업을 완료할 때 까지 동작하는 파드를 생성한다.
- 엔드포인트 컨트롤러 : 서비스와 파드를 연결한다.
- 서비스 어카운트 & 토큰 컨트롤러 : 새로운 네임스페이스에 대한 기본 계정과 API 접근 토큰을 생성한다.


4) ETCD

- 모든 클러스터 데이터를 담는 Key-Value 저장소이다.
- etcd 백업 기능으로 특정 시간의 데이터 백업을 수행한다.

 

 

 


2. Node 컴포넌트


1) kubelet

- 클러스터의 각 노드에서 실행되는 에이전트
- 파드에서 컨테이너가 확실하게 동작하도록 관리한다.
- 파드스펙(PodSpec)을 받아서 컨테이너 동작을 하며, 쿠버네티스를 통해 생성되지 않는 컨테이너는 관리하지 않는다.


2) kube-proxy

- 각 노드에서 실행되는 네트워크 프록시로, 쿠버네티스 서비스 개념의 구현부
- 노드의 네트워크 규칙을 유지 및 관리하여, 클러스트&파드의 통신을 가능하게 한다.


3) Container runtime

- 컨테이너 실행을 담당하는 소프트웨어
- 쿠버네티스 CRI 구현체인 containerd, CRI-O 와 같은 고수준 런타임을 지원한다.
- 쿠버네티스에서는 도커를 런타임으로 지원하였으나, v1.24 버전부터 기본 엔진에서 제외했다.


4) Container Network Interface (CNI)

- 컨테이너 간 네트워킹을 제어할 수 있는 플러그인을 만들기 위한 표준
- CNI을 준수하는 다양한 플러그인이 존재한다. (Calico, Weave, Cilium 등)

 

 


3. 컴포넌트 통신 플로우

1) 관리자는 kubectl 명령어를 작성하여 실행한다.
2) 해당 명령어는 Control Plane의 API server 를 통해 접수된다.
3) 접수된 명령어는 Controller Manager 나 Scheduler 를 통해 실행된다.
4) 워커노드의 kubelet에서 Control Plane의 API Server와 통신하며 동작한다.,
5) 사용자는 워커노드의 proxy(Server IP)를 통해 해당 클러스터에 접속하여 kube-proxy를 통해 파드에 접속할 수 있다.

 

 

 

 

 

 

 

참고하면 좋을 글

https://www.samsungsds.com/kr/insights/kubernetes-3.html

 

쿠버네티스 알아보기 3편: 쿠버네티스를 이루고 있는 여러 가지 구성 요소 | 인사이트리포트 | 삼

쿠버네티스 구성 요소인 쿠버네티스 컴포넌트에 대해 살펴보겠습니다.

www.samsungsds.com

 

 

 

다음 글 보러가기

2024.01.26 - [infra/kubernetes] - [쿠버네티스] 워크 로드(1) / Pod

 

[쿠버네티스] 워크 로드(1) / Pod

1. Pod 란? - 쿠버네티스 노드 내에 최소 한 개 이상의 컨테이너를 가진 파드가 실행되고 있으며, 파드마다 다른 IP를 가지고 있고 컨테이너끼리 통신이 가능함 - 파드 내 컨테이너끼리 볼륨(저장소

coding.lifeandmoney.kr

2024.02.08 - [infra/kubernetes] - [쿠버네티스] 워크 로드(2) / ReplicaSet, Deployment, DaemonSet, Static Pod

 

[쿠버네티스] 워크 로드(2) / ReplicaSet, Deployment, DaemonSet, Static Pod

1. ReplicaSet - 파드를 생성 및 복제하고, 복제된 파드 수를 yaml 파일에서 생성된 개수만큼 항상 유지 apiVersion: apps/v1 kind: Replicaset metadata: name: nginx-rs labels: app: nginx-rs tier: nginx-rs spec: replicas: 3 selector:

coding.lifeandmoney.kr

 

728x90
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크