Skip to main content

ConfigMap


ConfigMap

apiVersion: v1
kind: ConfigMap
metadata:
name: <name>
namespace: <namespace>
# true로 설정하 kube-apiserver가 자동 업데이트를 위한 감시를 하지 않기 때문에 성능 향상을
# 기대할 수 있습니다면
immutable: false
data:
<key>: <value>

Pod와 연결


  • ConfigMap과 Pod는 같은 namespace에 있어야 합니다
  • mount된 ConfigMap이 업데이트 되면 해당 파일도 자동으로 업데이트 됩니다
  • subPath를 사용한 경우 업데이트 되지 않습니다
  • env로 설정한 경우 업데이트 되지 않습니다

ConfigMap을 volumes로 사용

apiVersion: v1
kind: Pod
metadata:
name: <name>
namespace: <namespace>
spec:
containers:
- volumeMounts:
- name: <volumeName>
# <mountPath>가 존재하는 경우 덮어씁니다
mountPath: <mountPath>
readOnly: true
volumes:
- name: <volumeName>
configMap:
name: <configMapName>
# optional: false
# defaultMode: 0644
# items:
# - key: <key>
# path: <path>
apiVersion: v1
kind: Pod
metadata:
name: <name>
namespace: <namespace>
spec:
containers:
- volumeMounts:
- name: <volumeName>
# <mountPath>가 존재하더라도 덮어쓰지 않고 <subPath>만 추가됩니다
mountPath: <mountPath>/<subPath>
subPath: <subPath>
readOnly: true
volumes:
- name: <volumeName>
configMap:
name: <configMapName>
# optional: false
# defaultMode: 0644
# 선언하지 않으면 key가 path로 사용됩니다
# <path>와 <subPath>가 일치해야합니다
items:
- key: <key>
path: <path>

ConfigMap을 env로 사용

apiVersion: v1
kind: Pod
metadata:
name: <name>
namespace: <namespace>
spec:
containers:
- env:
# export <env>=<value>
- name: <env>
valueFrom:
configMapKeyRef:
name: <configMapName>
key: <key>
# optional: false
apiVersion: v1
kind: Pod
metadata:
name: <name>
namespace: <namespace>
spec:
containers:
- envFrom:
# export <key>=<value>
- configMapRef:
name: <configMapName>