https://kubernetes.io/ko/docs/concepts/workloads/controllers/
이 글은 공식문서를 보고 혼자 공부한 것을 정리한 곳입니다.
레플리카셋
레플리카셋의 궁극적인 목표는 파드 집합의 실행을 항상 안정적으로 유지하는 것.
레플리카셋을 정의하는 필드에 포함되어야 하는 것들
1. 파드를 식별하는 셀렉터
2. 파드 개수를 명시하는 레플리카의 개수
3. 레플리카의 개수 만큼 유지하기 위해 신규 생성되는 파드의 파드 템플릿
디플로이먼트는 레플리카셋을 관리하고 다른 유용한 기능과 함께
파드에 대한 선언적 업데이트를 제공하는 상위 개념이다.
그래서 사용자 지정 오케스트레이션이 필요하거나 업데이트가 전혀 필요하지 않은
경우라면 레플리카셋을 직접적으로 사용하기 보다는
디플로이먼트를 사용하는 것을 권장한다고 공식문서에 나와있다.
그래서 레플리카셋을 직접 선언하기보다는 디플로이먼트를 이용하고,
사양 부분에서 어플리케이션을 정의하면 된다.
또한 레플리카셋은 파드들을 관리하는 것이지, 파드안의 컨테이너를 관리하는 것이 아니다.
(로컬 컨테이너의 재시작을 다른 에이전트에게 넘긴다. kubelet 또는 도커에게)
레플리카 컨트롤러와의 차이점?
레플리카셋이랑 레플리카셋 컨트롤러 라는 것이 있는데
두 개의 차이점이 궁금해서 찾아봤더니
두 개의 특징에서 차이가 납니다.
-
셀렉터
레플리케이션 컨트롤러는 등호 기반이므로 레이블을 선택할 때 같은지(=) 다른지(!=)만 비교합니다.
레플리카세트는 집합 기반으로써 in, notin, exists 같은 연산자를 지원합니다. -
rolling-update
레플리케이션 컨트롤러는 rolling-update 옵션을 사용할 수 있지만 레플리카세트는 사용할 수 없습니다.
레플리카세트는 디플로이먼트를 통하여 rolling-update를 지원합니다.
'Kubernetes & Docker' 카테고리의 다른 글
React와 Node.js 애플리케이션 Docker image build하기 (0) | 2020.07.24 |
---|---|
Mysql Docker Image를 이용해서 React-Node.js-MySQL 애플리케이션 구현해보기 (2) | 2020.07.23 |
쿠버네티스 공식문서 파헤치기 : 파드(Pod) (0) | 2020.07.16 |
쿠버네티스 공식문서 파헤치기 : 클러스터 아키텍처 (0) | 2020.07.15 |
쿠버네티스 공식문서 파헤치기 : 개요 (0) | 2020.07.15 |