쿠버네티스는 ConfigMap을 이용하여 설정(환경변수, 설정파일)을 관리한다.
# 파일을 ConfigMap으로 만들기
kubectl create cm my-config --from-file=config-file.yml
# ConfigMap 조회
kubectl get cm
# ConfigMap 내용 상세 조회
kubectl describe cm/my-config
apiVersion: v1
kind: Pod
metadata:
name: alpine
spec:
containers:
- name: alpine
image: alpine
command: ["sleep"]
args: ["100000"]
volumeMounts:
- name: config-vol
mountPath: /etc/config
volumes:
- name: config-vol
configMap:
name: my-config
# env 포멧으로 생성
kubectl create cm env-config --from-env-file=config-env.yml
# config-map.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
data:
hello: world
kuber: netes
multiline: |-
first
second
third
kubectl apply -f config-map.yml
을 통해 cm/my-config
를 생성할 수 있다.apiVersion: v1
kind: Pod
metadata:
name: alpine-env
spec:
containers:
- name: alpine
image: alpine
command: ["sleep"]
args: ["100000"]
env:
- name: hello
valueFrom:
configMapKeyRef:
name: my-config
key: hello