[Cloud] 쿠버네티스(Kubernetes, k8s) 오브젝트(Object)-Replicaset, Deployment
본문 바로가기
IT/Cloud

[Cloud] 쿠버네티스(Kubernetes, k8s) 오브젝트(Object)-Replicaset, Deployment

by 로진김 2021. 6. 27.

 Kubernetes의 기본 관리 단위인 Pod의 상위 Object를 알아보겠습니다.

Relicaset, Deployment

 


Replicaset

 

 Replicaset은 설정된 개수만큼 Pod를 생성하고 유지하는 Controller 객체입니다. Replicaset에 설정된 내용에 따라 똑같은 설정을 가진 Pod를 생성합니다. 생성이지만, 복제의 개념의 생성이라고 생각하시면 됩니다. 어떠한 이유로 Replicaset으로 생성된 Pod가 삭제된다면, 설정한 개수만큼 다시 생성시키는 self-healing기능을 수행합니다.

 

 Application을 실행 중인 컨테이너를 복제하면 고장이 발생하거나 부하가 가중되는 경우를 대비할 수 있습니다. 장애 대비용으로 역할을 하는 Object입니다. 최근에는 Deployment가 유용하게 사용되어 Replicaset은 잘 사용하지 않는 추세입니다.


Deployment

 

 Deployment는 Replicaset의 상위 Object로 Pod의 업데이트를 지원합니다. Desired State를 정의하여 컨트롤러를 통해 비율을 조정합니다. 즉, 개수를 정의할 수 있습니다. Desired State를 Replicaset처럼 사용하는 것입니다. Replicaset은 개수를 유지하려고 하기 때문에 동적으로 하드 변경까지 이루어지지 않습니다. 변경사항이 생기면 Pod를 재생성하는데만 역할을 합니다.

 

 그러나, Deployment는 하드나 Replicaset에서 진행되는 업데이트나 자동으로 업데이트가 멈추게 된다면, 해당 업데이트에 대해 Rolling update나 자동 update를 하는 기능을 가지고 있습니다.

 

Update 종류

 

  •  Rolling update : 변경사항이 발생하면 다른 Replicaset을 1개 더 만들어서 하위에 Pod를 만들어서 변경사항을 업로드 합니다. 기존 Replicaset의 Pod를 줄이면서 새로운 Replicaset에 Pod를 추가시키면서 새로운 Replicaset로 Downtime 거의 없이 업데이트하는 방식입니다.
  •  Blue-Green update : 새 버전이 뜨는 것을 확인한 이후 구버전을 한번에 내리는 방식입니다.

 

 

반응형