ConfigMap, Secret
Env(Literal, File), Mount(File)

1. Env (Literal)

1-1) ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: cm-dev
data:
SSH: 'false'
User: dev
1-2) Secret
apiVersion: v1
kind: Secret
metadata:
name: sec-dev
data:
Key: MTIzNA==
1-3) Pod
apiVersion: v1
kind: Pod
metadata:
name: pod-1
spec:
containers:
- name: container
image: kubetm/init
envFrom:
- configMapRef:
name: cm-dev
- secretRef:
name: sec-dev
2. Env (File)

2-1) Configmap
echo "Content" >> file-c.txt
kubectl create configmap cm-file --from-file=./file-c.txt
2-2) Secret
echo "Content" >> file-s.txt
kubectl create secret generic sec-file --from-file=./file-s.txt
2-3) Pod
apiVersion: v1
kind: Pod
metadata:
name: pod-file
spec:
containers:
- name: container
image: kubetm/init
env:
- name: file-c
valueFrom:
configMapKeyRef:
name: cm-file
key: file-c.txt
- name: file-s
valueFrom:
secretKeyRef:
name: sec-file
key: file-s.txt
3. Volume Mount (File)

3-1) Pod
apiVersion: v1
kind: Pod
metadata:
name: pod-mount
spec:
containers:
- name: container
image: kubetm/init
volumeMounts:
- name: file-volume
mountPath: /mount
volumes:
- name: file-volume
configMap:
name: cm-file
kubectl
ConfigMap
# file-c.txt 라는 파일로 cm-file라는 이름의 ConfigMap 생성
kubectl create configmap cm-file --from-file=./file-c.txt
# key1:value1 라는 상수로 cm-file라는 이름의 ConfigMap 생성
kubectl create configmap cm-file --from-literal=key1=value1
# 여러 key:value로 cm-file라는 이름의 ConfigMap 생성
kubectl create configmap cm-file --from-literal=key1=value1 --from-literal=key2=value2
Secret Generic
# file-s.txt 라는 파일로 sec-file라는 이름의 Secret 생성
kubectl create secret generic sec-file --from-file=./file-s.txt
# key1:value1 라는 상수로 sec-file라는 이름의 Secret 생성
kubectl create secret generic sec-file --from-literal=key1=value1
Tips
Secret
- 데이터가 메모리에 저장되기 때문에 보안에 유리
- 한 Secret당 최대 1M까지만 저장됨
Referenece
Kubernetes
- Configure a Pod to Use a ConfigMap : https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/
- Distribute Credentials Securely Using Secrets : https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/