Kubernetes에서 설정 변경 시 자동 재시작을 위한 Reloader

IMKUNYOUNG·2025년 4월 4일

1. Reloader란?

Reloader는 Kubernetes에서 ConfigMap이나 Secret의 변경 사항을 감지하고, 이와 연관된 파드를 자동으로 재시작하는 오픈소스 도구입니다. Stakater에서 개발한 Reloader는 애플리케이션이 최신 설정을 자동으로 로드하여 설정 변경 후 수동으로 파드를 재시작해야 하는 번거로움을 해소해줍니다.

2. 주요 기능

  • ConfigMap/Secret 변경 감지: 지정된 ConfigMap 또는 Secret이 업데이트될 때 자동으로 감지
  • 자동 파드 재시작: 변경 사항이 감지된 ConfigMap/Secret을 사용하는 파드를 자동 재시작하여 최신 설정 적용
  • 다양한 배포 리소스 지원: Deployment, StatefulSet, DaemonSet 등 여러 리소스를 지원
  • 선택적 적용: 특정 리소스만 선택하여 감시할 수 있는 유연성 제공

3. Reloader 설치 방법

Reloader는 Helm을 통해 쉽게 설치할 수 있습니다.

3.1 Helm을 통한 설치
helm repo add stakater https://stakater.github.io/stakater-charts
helm repo update
helm install reloader stakater/reloader --namespace reloader --create-namespace

4. Reloader 활용 예제

Reloader를 활용하기 위해서는 Deployment의 어노테이션에 ConfigMap 또는 Secret을 명시합니다.

ConfigMap 변경 시 자동 재시작 예제
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  annotations:
    reloader.stakater.com/auto: "true" # Reloader 자동 감지 활성화
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app-image
        envFrom:
          - configMapRef:
              name: my-configmap

위와 같이 설정하면, my-configmap의 값이 변경될 때마다 Reloader가 자동으로 해당 파드를 재시작합니다.

Secret 변경 시 자동 재시작 예제
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  annotations:
    reloader.stakater.com/auto: "true"
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-app-image
        envFrom:
          - secretRef:
              name: my-secret

이 설정을 통해 Secret 값이 변경되면 파드가 자동으로 최신 설정으로 재기동됩니다.

5. Reloader 사용의 이점

  • 운영 효율성 향상: 수동으로 파드를 재시작하지 않아도 설정 변경이 즉시 반영됨
  • 서비스 다운타임 최소화: 변경 사항이 발생할 때만 선택적으로 재시작하여 불필요한 재시작을 줄임
  • 오류 방지: 설정 변경 후 즉시 파드를 최신화하여 오래된 설정으로 인한 장애 방지

6. 마치며

Reloader는 Kubernetes 환경에서 설정 변경 시 애플리케이션의 자동 재시작을 편리하게 만들어 주는 매우 유용한 도구입니다. 수동 관리 작업을 줄이고 효율적인 운영 환경을 구축하려는 DevOps 팀에게 강력히 추천되는 도구입니다.

docs.stakater.com/reloader
stakater/Reloader

0개의 댓글