• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

pod 생성과정에 대한 질문

21.12.10 15:32 작성 조회수 306

2

안녕하세요. 강의 너무 잘 듣고있습니다. 강의내용 복습중 이해가 부족한 부분에 대해 질문 올립니다. pod생성 과정이 아래 처럼 생성이 된다는 걸로 이해를 했습니다. 1. client가 kubectl를 이용해 pod 생성 요청 2. api server가 request 받음 3. etcd에 pod 정보 저장 4. scheduler가 api server를 watch하고 있음으로 pod 생성 요청이 들어오면 api server가 watch하고 있는 scheduler에게 통지 5. schduler가 최적의 노드를 판별해 api server를 통해 etcd에 정보 업데이트 6. 각 노드의 kubelet이 api server를 watch하고 있음으로 pod의 노드정보 업데이트 되면 apiserver가 kubelet에게 통지 7. kubelet은 container runtime인 docker에게 컨테이너 생성 요청
....
 
그런데 여기서 궁금한점은 pod lifecycle 강의에서 pod status에 대해서는 pod가 생성될때 Initialized 실행을 하고나서 PodScheduled 된다고 설명해주셨는데 해당 강좌에서는 PodScheduled 된 후에 container가 생성이 되는것 같아 질문 올립니다. 순서가 어떻게 되는지 설명 해주시면 감사하겠습니다!

답변 6

·

답변을 작성해보세요.

1

상세한 확인 감사합니다.

저도 다시 확인해보니까, init-containers보다 노드 스케줄링이 먼저네요.

아래 내용의 출력 결과에도 순서가 명확하게 표시되있고요

https://kubernetes.io/docs/concepts/workloads/pods/init-containers/#init-containers-in-use

저도 라이프사이클 강의에 잘못된 순서 부분을 수정 해놔야겠네요!

좋은 질문 감사합니다~^^

 

 

 

 

1

안녕하세요.
저는 이벤트 로그를 통해서 확인해보았는데
도움이 될까 글 남깁니다.

# kubectl
1. kubectl create deplyment

 

# deployment controller
2. api server로 부터 deployment 생성 통지받음
3. deployment controller create replicaset

 

# replication controller
4. api server로 부터 replicaset 생성 통지받음
5. replicaset controller create pod 

 

# scheduler
6. api server로 부터 pod 생성 통지 받음
7. 최적의 노드 찾아 스케줄 (노드에 할당)

 

# kubelet container runntime
8. init container image pull
   create init container
   started init container

 

9. main container image pull
   create container
   started container

 

 

1

아닙니다~

질문에서 컨테이너 생성이 Pod 생성으로 오해하고 있나 싶어서 다시 한번 질문드린거고요.

initialized 을 컨테이너 생성전에 필요시 먼저 생성되는 Init 컨테이너라고 생각하셨음. 맞습니다.

그리고 아직 제가 원래 질문에 대한 답변을 드린건 아니고요^^

결국 질문의 요지는 init컨테이너 생성이 먼저냐 본 Pod 스케줄이 먼저냐인거죠?

글을 쓰면서 생각해보면 Pod 스케줄이 먼저일것 같고, 그렇다면 강의 내용을 좀 수정해야할것 같은데 명확하게 해당 설명에 대한 내용이 검색이 안되네요. 좀더 찾아보고 답변 드리겠습니다.

 

 

 

1

initialized에서 본 컨테이너 기동전에 먼저 생성되는 컨테이너도 컨테이너라고 생각을 했는데

그렇게 생각하면 안되나보군요!

답변감사합니다.

 

0

아넵 맞습니다!

감사합니다! 답변 기다리고 있겠습니다!

0

안녕하세요. 

Pod의 Initialized를 컨테이너 생성이라고 생각하시나요?

Pod와 Container는 다른 개념인데, 다시한번 질문 확인 바랍니다.