목표
쿠버네티스에서 설정파일과 환경변수를 관리하는 방법을 알아봅니다.
- 컨테이너에서 설정 파일을 관리하는 방법은 이미지를 빌드할 때 복사하거나, 컨테이너를 실행할 때 외부 파일을 연결하는 방법이 있다.
- 쿠버네티스는
ConfigMap
으로 설정을 관리한다.
- 애플리케이션을 배포하다 보면 환경에 따라 다른 설정값을 사용하는 경우가 있다.
- 이런 환경 변수가 차이나는 경우 매번 다른 컨테이너 이미지를 만드는건 매우 불편하다.
- 환경변수나 설정값들을 변수로 관리해서 Pod이 생성될 때 이 값을 넣어줄 수 있는데, 이러한 기능을 제공하는 것이 Configmap과 Secret이다.
- Configmap이나 secret에 정의해놓고, 이 정의해놓은 값을 Pod로 넘기는 방법은 크게 두가지가 있다.
- 정의해놓은 값을 Pod의 환경 변수 (Environment variable)로 넘기는 방법
- 정의해놓은 값을 Pod의 디스크 볼륨으로 마운트 하는 방법
ConfigMap
- configmap은 설정 정보를 저장해놓는 저장소 역할을 한다.
- key-value 형식으로 저장이 된다.
- 문자로 생성하는 방법, 파일로 생성하는 방법 두 가지가 있다.
- 문자(Literal)로 생성
- YAML 파일로 생성
Kubectl create configmap [configmap 이름] --from-literal=[키]=[값]
// hello-cm.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: hello-cm
data:
language: java
Share article