[Kubernetes] 데몬셋과 스테이트풀셋의 업데이트 전략: 롤링 업데이트, 온딜리트

728x90
반응형

데몬셋과 스테이트풀셋의 업데이트 전략

데몬셋(DaemonSet)과 스테이트풀셋(StatefulSet)은 쿠버네티스에서 특수한 목적을 위해 사용되는 워크로드 유형으로, 두 리소스 모두 롤링 업데이트(Rolling Update)온딜리트(OnDelete) 두 가지 업데이트 전략을 제공한다. 이 두 가지 전략의 기본적인 동작 방식은 동일하며, 사용자가 각각의 워크로드에 맞게 전략을 선택하여 유연하게 관리할 수 있다.


데몬셋

데몬셋은 각 노드에서 특정한 파드를 하나씩 실행하도록 보장하는 리소스로, 일반적으로 로그 수집, 모니터링, 또는 노드 레벨의 기능을 제공하기 위해 사용된다. 모든 노드에서 파드를 동작시키는 것이 목표이므로, 업데이트 시에도 기존 파드가 하나씩 안전하게 교체되며 모든 노드에서 업데이트가 일관되게 수행되는 것이 중요하다.

스테이트풀셋(StatefulSet)

스테이트풀셋은 이름에서 알 수 있듯이 상태가 중요한 애플리케이션을 위해 설계된 리소스로, 각 파드가 고유한 ID를 가지며 파드 간 순서와 상태를 유지해야 할 때 사용된다. 예를 들어, 데이터베이스, 캐시, 또는 기타 상태 기반 애플리케이션에 적합하다. 따라서 스테이트풀셋의 업데이트는 파드 순서와 상태를 유지하면서 신중하게 이루어져야 한다.


업데이트 전략

1) 롤링 업데이트 (Rolling Update)

기존 파드를 하나씩 새로운 버전으로 교체하며 자동으로 업데이트가 진행되는 방식이다.
이 방식은 각 노드에서 서비스 중단을 최소화하면서 점진적으로 새 버전의 파드를 배포하는 데 효과적이다.

2) 온딜리트 (OnDelete)

사용자가 파드를 수동으로 삭제할 때만 업데이트가 수행되는 방식이다.
즉, 새로운 버전이 준비되더라도 자동으로 배포되지 않고, 사용자가 직접 파드를 삭제한 시점에만 새로운 파드로 교체된다. 이 방식은 관리자가 원하는 시점에 업데이트를 수행할 수 있어, 특정 타이밍에만 업데이트가 필요할 때 유용하다. 주로 안정성이나 호환성이 중요한 서비스에서 사용된다.

 

Tip: 온딜리트(OnDelete) 전략을 사용하는 경우, 사용자가 업데이트 타이밍을 제어할 수 있어 불필요한 업데이트를 피하고 안정성을 높일 수 있지만, 그만큼 운영자가 직접 관리해야 하는 부분이 늘어난다는 점을 고려해야 한다.

 


데몬셋과 스테이트풀셋의 업데이트 전략은 각각의 목적에 맞게 선택할 수 있다. Rolling Update는 자동으로 안전하게 업데이트를 수행하고 싶을 때 적합하며, OnDelete는 수동으로 원하는 시점에 업데이트를 수행하고 싶을 때 유용하다. 상황에 맞는 업데이트 전략을 선택함으로써 배포 과정에서 서비스의 안정성을 최대한 보장할 수 있다.

728x90
반응형