관리 메뉴

피터의 개발이야기

[kubernetes] Pod 생성 과정으로 쿠버네티스 오브젝트 역할이해하기 본문

Kubernetes/기초공부

[kubernetes] Pod 생성 과정으로 쿠버네티스 오브젝트 역할이해하기

기록하는 백앤드개발자 2024. 1. 8. 17:15
반응형

ㅁ 들어가며

 이전 글, [kubernetes]쿠버네티스 아키텍처에서 쿠버네티스의 아키텍처를 살펴보았다. 이 글에서는 od를 생성하는 과정을 예로 들어 쿠버네티스의 오브젝트들의 역할을 살펴보았다.

 

ㅁ Pod 생성 과정

각 모듈은 서로 통신하지 않고 오직 API Server와 통신한다. API Server를 통해 etcd에 저장된 상태를 체크하고 현재 상태와 원하는 상태가 다르면 필요한 작업을 수행한다. 

 

1. Pod 생성요청

 ㄴ kubectl을 이용하여 ReplicaSet 명세를 yml파일로 정의하여 API Server에게 전달한다.

 

2. etcd에 기록

 ㄴ API Server는 새로운 Pod Object를 etcd 저장한다.

 

3. Pod 생성 요청 감시

 ㄴAPI Server는 unscheduled pod event를 생성

 ㄴ Scheduler할당되지 않은 Pod가 있는지 event를 체크한다.

 

4. Node에 Pod 할당

 ㄴ 할당되지 않은 Pod가 있으면 조건에 맞는 Node를 할당한다.

 

5. etcd에 기록

 ㄴ Node에 할당된 정보를 etcd에 저장한다.

 

6. Pod 할당 감시

 ㄴ API Server은 kublet에게 Pod 스팩 정보를 전달하고 생성요청을 한다. 

 

7. 컨테이너 생성

 ㄴ Container runtime 중 예를 들어 Docker가 켄테이너를 생성한다.

 

8. Pod 상태 업데이트

 ㄴ 컨테이너가 생성되면 생성된 정보를 API Server에게 전달한다.

 

9. etcd 기록

 ㄴ 생성된 Pod의 상태 정보를 etcd에 저장한다.

 

 ㅇ 간단하게 Nigix를 생성해 보았다.

 ㅇ pod 생성 events를 확인할 수 있다. 

 

 

ㅁ control-plane

 ㅇ 테스트를 위해 minikube 환경에서 진행하였다.

 

 

ㅁ 함께 보면 좋은 사이트

 ㅇ 쿠버네티스 pod생성 과정 디버깅

  ㄴ apiserver, controller-manager, scheduler, etcd  debug모드로 로그분석함

반응형
Comments