ConfigMap은 Pod 내에서 사용되는 설정 정보를 저장하는 객체입니다.
Pod에 ConfigMap을 설정하는 방법을 알아보겠습니다.
ConfigMap 설정하는 방법
1.
ConfigMap yaml 파일 작성하기
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
env: production
host_url: https://www.test.com
YAML
복사
2.
ConfigMap 생성하기
kubectl apply -f my-config-map.yaml
YAML
복사
Pod에서 ConfigMap 사용 방법
1. 환경 변수로 사용하는 방법
Pod을 생성할 때, 컨테이너의 환경 변수로 ConfigMap 값을 설정합니다.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: environment
valueFrom:
configMapKeyRef:
name: my-config-map
key: env
- name: host
valueFrom:
configMapKeyRef:
name: my-config-map
key: host_url
YAML
복사
"my-pod"라는 이름의 Pod을 생성하며, "my-container"라는 이름의 컨테이너가 포함됩니다.
이 컨테이너에서는 environment 환경 변수를 사용하며, 해당 값은 ConfigMap의 env 키에서 가져옵니다. 또한 host 환경 변수는 ConfigMap의 host 키에서 가져옵니다.
2. 볼륨으로 사용하는 방법
Pod을 생성할 때, 컨테이너의 볼륨으로 ConfigMap을 마운트합니다.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
volumeMounts:
- name: my-volume
mountPath: /etc/my-config
volumes:
- name: my-volume
configMap:
name: my-config-map
YAML
복사
"my-pod"라는 이름의 Pod을 생성하고, "my-container"라는 이름의 컨테이너를 포함합니다.
이 컨테이너에서는 "/etc/my-config" 경로에 ConfigMap의 값을 노출합니다. 이를 위해, my-volume이라는 이름의 볼륨을 생성하고, 이 볼륨에 ConfigMap을 마운트합니다.
위 코드에서 my-config-map은 생성한 ConfigMap의 이름입니다. 이 ConfigMap을 my-volume이라는 이름의 볼륨으로 마운트하고, 이 볼륨을 "my-container"의 "/etc/my-config" 경로에 마운트합니다. 이렇게 함으로써, "my-container"에서 "/etc/my-config" 경로를 통해 ConfigMap의 값을 사용할 수 있게 됩니다.
참고사항
•
ConfigMap은 immutable합니다. ConfigMap을 수정하려면 새로운 ConfigMap을 생성하고, 이전 ConfigMap을 삭제해야 합니다.
•
ConfigMap이나 Secret을 사용하여 설정 값을 저장하는 것은 암호나 키와 같이 보안 정보를 저장하는 데 적합하지 않습니다. 이러한 정보를 보호하려면 Secret 오브젝트를 사용해야 합니다.