[쿠버네티스] ConfigMap, Secret  (TS러버)

[쿠버네티스] ConfigMap, Secret (TS러버)

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 복습을 위한 자료 입니다.


1. 애플리케이션 설정을 외부로 분리하는 기능 - ConfigMap & Secret

쿠버네티스는 애플리케이션의 설정 분리와 보안성 향상을 위해 두 가지 핵심 리소스를 제공합니다.

이 기능은 설정값을 외부에서 주입하거나, 민감한 정보를 안전하게 다루기 위한 목적으로 사용됩니다.

  • ConfigMap :
    환경변수, DB 접속 URL 등 민감하지 않은 설정값 관리
    개발/운영 환경에 따라 유연하게 설정 가능

  • Secret :
    DB 비밀번호, 토큰 등 민감한 정보 저장
    Base64 인코딩, 추가 보안을 위해 Encryption at Rest 또는 Vault 연동 권장

2. 용도별로 나누는 설정 관리 전략

  • application.yaml → 불변값, 코드와 함께 버전 관리
    예: 포트 번호, SQL 출력 여부, 고정 드라이버 설정 등

  • ConfigMap → 환경에 따라 바뀌는 값
    예: DB URL, API 서버 주소 등

  • Secret → 민감한 정보
    예: DB ID/PW, 인증 토큰 등

# application.yaml
server:
  port: 8080
spring:
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: create
# ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: db-config
data:
  DB_URL: jdbc:mysql://db:3306/app?useSSL=false
# Secret
apiVersion: v1
kind: Secret
metadata:
  name: db-secret
type: Opaque
stringData:
  DB_USERNAME: root
  DB_PASSWORD: s3cret!

3. 정리

  • 배포 환경 전환이 쉬워지고

  • 민감 정보 보호가 강화되며

  • 유지보수와 운영 자동화가 수월해집니다.

ConfigMap과 Secret은 단순 설정 리소스를 넘어서 쿠버네티스 애플리케이션 관리의 핵심 도구입니다.

 

댓글을 작성해보세요.

채널톡 아이콘