GitHub

https://github.com/Choidongjun0830

클라우드

Deployment 리소스 생성시 흐름

gogi masidda 2024. 10. 10. 12:07

실행 흐름

1. kubectl 명령어로 Deployment 생성
   - 사용자가 kubectl을 통해 Deployment를 생성하면, 이 요청이 Kubernetes API 서버로 전달됩니다.

 

2. Deployment Controller가 ReplicaSet 생성
   - Deployment Controller는 사용자가 원하는 상태(예: 특정 수의 Pod를 실행)를 보고 ReplicaSet을 생성합니다.
   - 이 ReplicaSet은 "짜장면 2개"와 같은 상태로, 실행해야 할 Pod의 수(=컨테이너를 돌리는 Pod)를 정의합니다.

 

3. ReplicaSet Controller가 주문서 Pod 생성
   - ReplicaSet Controller는 정의된 수만큼의 Pod 오브젝트(주문서 Pod)를 생성합니다.
   - 이 주문서 Pod는 컨테이너가 어떻게 실행되어야 할지에 대한 명세서입니다. 즉, 어떤 컨테이너를 실행해야 하는지, 자원 요구 사항은 무엇인지 등의 정보를 담고 있습니다.

 

4. Scheduler가 스케줄링 후 etcd에 결과 기록
   - 스케줄러는 이 주문서 Pod를 보고, 어떤 노드(Worker Node)에서 실행될지 결정합니다.
   - 스케줄링 결과(어느 노드에서 Pod가 실행될지)를 etcd에 기록합니다.

 

5. kubelet이 Pod를 실행
   - 각 Worker Node에 상주하는 kubelet은 etcd와 API 서버에서 스케줄링된 Pod의 정의(주문서 Pod)를 가져옵니다.
   - kubelet은 이 주문서를 보고 컨테이너를 돌리는 Pod를 실제로 생성하고, 해당 컨테이너를 실행시킵니다.

 

비유 정리

- ReplicaSet은 "짜장면 2개 필요"라고 적혀 있는 상태입니다.
- ReplicaSet Controller는 이 "짜장면 2개"라는 요구를 보고, 짜장면을 만들기 위한 Pod 2개의 주문서를 작성합니다.
- 이 주문서(Pod 오브젝트)를 보고, 스케줄러는 각각의 짜장면(Pod)이 어느 주방(노드)에서 만들어질지를 결정합니다.
- 마지막으로 kubelet이 주방에서 실제로 짜장면(컨테이너)을 만들어서 실행하게 됩니다.

 

요약

- ReplicaSet은 실행해야 할 Pod의 수(목표 상태)를 정의하는 역할을 합니다.
- ReplicaSet Controller는 그 목표에 맞춰 Pod 오브젝트(주문서 Pod)를 생성하는 역할을 합니다.
- 그 후, 스케줄러와 kubelet이 그 주문서를 보고 실제로 컨테이너를 실행하게 됩니다.

728x90

'클라우드' 카테고리의 다른 글

Kubernetes Volumes  (0) 2024.10.12
K8S 네트워킹  (1) 2024.10.11
Kubernetes Basic - 2  (2) 2024.10.08
Restful API  (1) 2024.10.06
Kubernetes Basic - 1  (0) 2024.10.06