본문 바로가기
ops/kubernetes

리소스 정의파일에서 configmap 사용하기

by seohan1010 2026. 1. 7.

방법1. volumeMounts, valueFrom로 참조 

#정의파일
apiVersion: v1
kind: Pod
metadata:
  name: configmap-test-pod
spec:
  containers:
    - name: configmap-test-container
      image: nginx
      env:
        - name: USER_NAME
          valueFrom:
            configMapKeyRef:
              name: app-config-map
              key: username 
        - name: USER_PASSWORD
          valueFrom:
            configMapKeyRef:
              name: app-config-map
              key: password
      volumeMounts:
      - name: config-map-volume
        mountPath: "/config"
        readOnly: true
  volumes:
  - name: config-map-volume
    configMap:
      name: app-config-map
      items:
      - key: username
        path: username 
      - key: password
        path: password

#컨테이너 환경변수 확인 
kubectl exec  configmap-test-pod configmap-test-container -- printenv | grep USER_NAME

USER_NAME=admin

kubectl exec  configmap-test-pod configmap-test-container -- printenv | grep USER_PASSWORD

USER_PASSWORD=password1234


방법2. volumeMounts로 참조

#정의파일 
apiVersion: v1
kind: Pod
metadata:
  name: configmap-test-pod
spec:
  containers:
  - name: configmap-test-container
    image: nginx
    volumeMounts:
    - name: config-map-volume
      mountPath: "/etc/configmap"
      readOnly: true
  volumes:
  - name: config-map-volume
    configMap:
      name: app-config-map

#컨테이너 확인 
kubectl exec configmap-test-pod configmap-test-container -- ls /etc/configmap

password
username

kubectl exec configmap-test-pod configmap-test-container -- cat /etc/configmap/username

admin

kubectl exec configmap-test-pod configmap-test-container -- cat /etc/configmap/password

admin



방법3. envFrom으로 참조

#정의파일 
apiVersion: v1
kind: Pod
metadata:
  name: configmap-test-pod
spec:
  containers:
    - name: configmap-test-container
      image: nginx
      envFrom:
        - configMapRef:
            name: app-config-map
            
#결과확인 
kubectl exec configmap-test-pod configmap-test-container -- printenv | grep username

username=admin

kubectl exec configmap-test-pod configmap-test-container -- printenv | grep password

password=password1234


방법4. confiMapKeyRef로 참조 

#정의파일 
apiVersion: v1
kind: Pod
metadata:
  name: configmap-test-pod
spec:
  containers:
  - name: configmap-test-container
    image: nginx
    env:
    - name: USER_NAME
      valueFrom:
        configMapKeyRef:
          name: app-config-map
          key: username          #username의 값만 참조하도록 설정 

#컨테이너 환경변수 확인 
kubectl exec configmap-test-pod configmap-test-container -- printenv | \ 
                            grep USER_NAME && printenv | grep USER_PASSWORD

USER_NAME=admin  #username의 값만 확인가능