작성
·
217
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
혹시 추가로 궁금하신 점이 있으면 남겨주세요
감사합니다 :)