본문 바로가기

Container/Kubernetes

[ Kubernetes ] Controller - ReplicaSet, Deployment

728x90
반응형

 

> 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개 삭제 - 모두삭제

 

728x90
반응형