> Controller의 역할
Auto Healing
Pod나 Node에 문제가 생겨 에러가나거나 죽을 경우, Controller가 새로운 Pod나 Node를 생성하여 장애를 처리
Auto Scaling
Pod에 급격한 부하로 인해 성능이 부족할 경우, 자동으로 Pod를 더 생성한다.
Software Update
Pod에 대한 version을 업그레이드 해야할 경우, Controller를 통해 한번에 쉽게 할 수 있고 rollback도 가능하다.
Job
일시적으로 Pod를 생성하여 업무를 처리하고, 이후 Pod를 삭제하는 역할을 하여 자원을 효율적으로 사용 할 수 있도록한다.
> ReplicaSet
Template
생성할 pod에 대한 정의. 이를 토대로 신규생성시 내용이 반영됨.
Replicas
유지할 pod에 대한 갯수 정의
Selector
pod들 중, labels를 선택하여 특정 pod만 선택 할 수 있도록 함.
- matchLabels, matchExpressions{key, operator[Exists, DoesNotExist, In, NotIn]}
> Deployment
ReCreate
1) Pod(v1) 생성 및 Service 연결
2) Deployment의 template를 v2로 변경
3) ReplicaSet이 0으로 변경되며 Pod(v1) 종료 -> Downtime 발생
4) template로 Pod(v2)를 가진 ReplicaSet 생성 후 Pod(v2) 생성
Rolling Update(default)
1) Pod(v1) 생성 및 Service 연결
2) Deployment의 template를 v2로 변경
3) template로 Pod(v2)를 가진 ReplicaSet 생성 후 Pod(v2) 1개 생성
4) template로 Pod(v1)를 가진 ReplicaSet 생성 후 Pod(v2) 1개 삭제
5) template로 Pod(v2)를 가진 ReplicaSet 생성 후 Pod(v2) 1개 생성 - 총 2개
6) template로 Pod(v1)를 가진 ReplicaSet 생성 후 Pod(v1) 1개 삭제 - 모두삭제
'Container > Kubernetes' 카테고리의 다른 글
[ Kubernetes ] ArgoCD 빠르게 레벨업 하기 (0) | 2024.08.01 |
---|---|
[ Kubernetes ] 배포 파이프라인 구축시 고려해봐야 할 부분 (1) | 2024.07.24 |
[ Kubernetes ] Helm과 Kustomize 비교하며 사용하기 - Kustomize 배포 (1) | 2024.07.22 |
[ Kubernetes ] Helm과 Kustomize 비교하며 사용하기 - Helm 배포 (0) | 2024.07.17 |
[Kubernetes] Jenkins Pipeline (4) | 2024.07.16 |