반응형
Controller란
- Pod의 개수를 보장
- 스케줄러는 파드를 노드에 알맞게 배치, 컨트롤러는 파드의 개수를 보장
- 컨트롤러가 보장중인 파드 중 한개가 다운되어 수가 적어질 경우 컨트롤러가 파드를 하나 생성하여 보장 개수를 맞춰줌
- 보장하는 Pod의 구분은 레이블을 이용
Controller 종류
Replication Controller
- 가장 기본적인 컨트롤러
- 요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는 것을 목표로 함
- 요구하는 Pod의 개수가 부족하면 template를 이용해 Pod를 추가
- 요구하는 Pod의 수 보다 많으면 최근에 생성된 Pod를 삭제
- 기본 구성
- selector
- replicas
- template
- selector의 key: value에 해당하는 레이블을 갖는 컨테이너를 replicas 배포 갯수만큼 운영
- 현재 운영 중인 key:value 해당 컨테이너가 배포 갯수보다 많으면 pod를 죽이고 적으면 pod 생성
Replication Controller 동작원리
- app:webui라는 label을 가지는 pod 실행 및 보장
Replication Controller Definition
- Pod 정의는 labels을 key:value의 형태로 넣을 수 있음
- labels은 Pod를 구분하는 정보, 태그
- Replication Controller 정의는 selector이용하여 해당 label을 가진 pod를 replicas 수 만큼 보장하며 pod와 똑같은 형식을 template에 넣어 pod가 부족할때 template을 이용해 pod 생성
Replication Controller Example
- create -f를 통해 ReplicationController 실행
- kubectl create -f rc-nginx.yaml
- get, describe rc를 통해 ReplicationController 확인
- kubectl get rc
- kubectl describe rc rc-nginx
- edit, scale rc을 이용하여 보장 pod수 수평 확장&감소(scale-out & scale-down)
- kubectl edit rc rc-nginx
- kubectl scale rc rc-nginx --replicas=2
- 컨트롤러의 보장 pod 수가 충족된 상황에서 같은 label의 pod가 생성되면 바로 삭제 됨
- 보장 pod수가 넘을시 가장 최근에 생성된 pod 삭제 되므로
- edit을 통해 template의 image정보를 바꾸고 저장하면 컨테이너의 이미지가 당장 바뀌지 않고 기존의 pod가 삭제되고 새로운 pod가 template을 통해 생성될 때 반영 됨
- 기존의 버전이 삭제되고 새로운 버전으로 변경되는 것을 rolling update 배포라고 함
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes - Deployment & Rolling Update (0) | 2023.02.23 |
---|---|
[k8s]Kubernetes - ReplicaSet (0) | 2023.02.23 |
[k8s]Kubernetes - Pod 환경 변수 & 구성 패턴 (0) | 2023.02.20 |
[k8s]Kubernetes - Pod에 Resource 할당하기 (0) | 2023.02.20 |
[k8s]Kubernetes - static pod(kubelet daemon) (0) | 2023.02.17 |