인프런 커뮤니티 질문&답변

끼야호우님의 프로필 이미지
끼야호우

작성한 질문수

쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}

3.3.파드와 디플로이먼트(Deployment) 차이

Scale 관련 질문 드립니다.

작성

·

227

1

문의 드립니다.

 

scale을 통하여 pod를 늘렸을 때 사용자가 실수로 scale된 pod를 삭제하면 자동으로 설정된 scale 값을 유지하기 위해 다시 생성 되나요?

다른 질문은 scale 을 통하여 복제된 pod는 최초 생성된 pod를 복제하는 부분인가요? 아니면 최초 생성된 pod의 이미지를 가지고 생성되는 것인가요?

예를들어 최초 pod생성 후 해당 pod에 변경사항이 있는 상태에서 scale out 시 변경상태가 적용된 pod가 복제되는 것인지, 아니면 최초 pod를 생성한 이미지로 (변경사항 적용안된..) Scale out이 되는것인지 궁금합니다.

답변 1

3

비모님의 프로필 이미지
비모
지식공유자

안녕하세요, 끼야호우님.

튜터 비모입니다.

 

이후 강의를 쭉 보시면서 따라하신다면 알게되시겠지만, 쿠버네티스 오브젝트에 대해 찾아보시면 좀더 이해에 도움이 되실 것 같습니다.

현재 학습중이신 디플로이먼트를 예로 들면 아래와 같이 오브젝트를 생성할 때, 의도한 상태를 기술한 오브젝트 spec을 가지고 있으며 

컨트롤러는 이 spec을 읽고 의도한 상태에 가깝게 만드는 역할을 합니다.

 

- 쿠버네티스 오브젝트 이해하기

https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/kubernetes-objects/

---

예를 들어, 쿠버네티스 디플로이먼트는 클러스터에서 동작하는 애플리케이션을 표현해줄 수 있는 오브젝트이다. 

디플로이먼트를 생성할 때, 디플로이먼트 spec에 3개의 애플리케이션 레플리카가 동작되도록 설정할 수 있다. 

쿠버네티스 시스템은 그 디플로이먼트 spec을 읽어 spec에 일치되도록 상태를 업데이트하여 3개의 의도한 애플리케이션 인스턴스를 구동시킨다. 

만약, 그 인스턴스들 중 어느 하나가 어떤 문제로 인해 멈춘다면(상태 변화 발생), 쿠버네티스 시스템은 보정(이 경우에는 대체 인스턴스를 시작하여)을 통해 

spec과 status간의 차이에 대응한다.

---

 

따라서 문의주신 사항에 답변은 아래와 같습니다.

 

1. scale을 통하여 pod를 늘렸을 때 사용자가 실수로 scale된 pod를 삭제하면 자동으로 설정된 scale 값을 유지하기 위해 다시 생성 되나요?

- 디플로이먼트의 현재 상태(status)와 명세(spec) 간 차이가 발생하면 시스템에서 이를 복구하게 됩니다.

2. 다른 질문은 scale 을 통하여 복제된 pod는 최초 생성된 pod를 복제하는 부분인가요? 아니면 최초 생성된 pod의 이미지를 가지고 생성되는 것인가요?

- 기존의 pod를 복제하는것이 아닌 명세(spec)에 작성된 내용을 기반으로 추가적인 새 pod를 생성합니다.

 

제 답변이 많이 부족하여 이해에 도움이 되실만한 문서를 전달드리오니 참조 부탁 드립니다.

 

- 컨트롤러

https://kubernetes.io/ko/docs/concepts/architecture/controller/

 

- 디플로이먼트 사양 작성

https://kubernetes.io/ko/docs/concepts/_print/#%EB%94%94%ED%94%8C%EB%A1%9C%EC%9D%B4%EB%A8%BC%ED%8A%B8-%EC%82%AC%EC%96%91-%EC%9E%91%EC%84%B1

 

혹시 추가로 궁금하신 점이 있으면 남겨주세요

 

감사합니다 :)

끼야호우님의 프로필 이미지
끼야호우

작성한 질문수

질문하기