[쿠버네티스] ConfigMap, Secret (TS러버)
9개월 전
해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 복습을 위한 자료 입니다.
강의 링크 :https://inf.run/f2xSR
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은 단순 설정 리소스를 넘어서 쿠버네티스 애플리케이션 관리의 핵심 도구입니다.
댓글을 작성해보세요.