목록2025/09 (4)
근묵자흑
왜 싱글톤 서비스가 필요한가?쿠버네티스는 본질적으로 수평적 확장과 고가용성을 위한 다중 레플리카를 권장합니다. 하지만 현실의 많은 애플리케이션은 정확히 하나의 활성 인스턴스만을 요구합니다. 데이터베이스 마이그레이션 작업, 스케줄링된 태스크, 메시지 큐 컨슈머, 동시성을 처리할 수 없는 레거시 시스템 등이 대표적인 예입니다. 이번 장에서는 쿠버네티스 환경에서 싱글톤 서비스를 구현하는 검증된 패턴들에 대해 알아보겠습니다.쿠버네티스에서 싱글톤 패턴의 도전 과제철학적 충돌: 고가용성 vs 일관성쿠버네티스의 설계 철학과 싱글톤 요구사항 사이의 근본적인 긴장이 독특한 도전과제를 만들어냅니다. 쿠버네티스는 애플리케이션이 수평적으로 확장 가능하고 중복성을 통해 인스턴스 장애를 견딜 수 있다고 가정합니다. 싱글톤 서비스..
쿠버네티스를 운영하다 보면 모든 노드에서 특정 작업을 수행해야 하는 경우가 있습니다. 로그 수집, 모니터링 에이전트, 네트워크 플러그인 등이 대표적인 예시입니다. 이런 요구사항을 해결하기 위해 쿠버네티스는 DaemonSet이라는 리소스를 제공합니다. 데몬서비스 패턴은 쿠버네티스 클러스터의 모든 노드 또는 특정 노드에서 단일 Pod를 실행하도록 보장하는 패턴입니다. 이는 운영체제의 데몬 프로세스와 유사한 개념으로, 인프라 관련 작업을 수행하는 Pod를 배치하고 관리하는 데 주로 사용됩니다.데몬(Daemon)의 개념운영체제 수준: httpd, named, sshd 등 백그라운드에서 장시간 실행되는 자가 복구 프로그램애플리케이션 수준: JVM의 데몬 스레드처럼 가비지 컬렉션, 파이널라이제이션 등의 작업 수행쿠..
Periodic Job 패턴이란?쿠버네티스 패턴 책의 8장에서 다루는 Periodic Job 패턴은 Batch Job 패턴을 확장하여 시간적 요소를 추가한 것입니다. 쉽게 말해, 리눅스의 cron처럼 정해진 시간에 자동으로 작업을 실행하는 패턴입니다. 이를 통해 매일 새벽 3시에 데이터베이스를 백업하거나, 매시간 외부 API에서 데이터를 가져오는 등의 작업을 자동화할 수 있습니다.왜 주기적 작업이 필요한가?책에서는 현대 시스템이 실시간 이벤트 기반으로 동작하는 추세임에도 불구하고, 여전히 정기적인 작업 스케줄링이 필요한 이유를 설명합니다.예를 들어, 여러분이 온라인 쇼핑몰을 운영한다고 생각해보세요. 실시간으로 주문을 처리하는 것도 중요하지만, 다음과 같은 정기적인 작업들도 필요합니다:매일 새벽: 데이터베..
매일 수백만 건의 로그를 처리하거나, 수천 개의 이미지를 변환하거나, 복잡한 ML 모델을 훈련시켜야 한다면?쿠버네티스 Job은 이런 배치 작업을 위한 솔루션이 될 수 있습니다.Kubernetes 1.31 버전에서 GA가 된 Pod Failure Policy와 1.30에서 도입된 Success Policy는 배치 작업의 기능 또한 관련 내용을추가했습니다.Kubernetes Job이란?쿠버네티스에서 파드(Pod)를 실행하는 방법은 여러 가지가 있습니다. ReplicaSet은 웹 서버처럼 계속 실행되어야 하는 애플리케이션에 적합하고, DaemonSet은 모든 노드에서 로그 수집기를 실행하는 데 사용됩니다.그렇다면 한 번 실행하고 완료되는 작업은 어떻게 처리할까? 데이터베이스 마이그레이션, 배치 데이터 처리, ..
