초보를 위한 쿠버네티스 안내서 - ConfigMap

yshjft·2023년 1월 27일
0

ConfigMap

쿠버네티스는 ConfigMap을 이용하여 설정(환경변수, 설정파일)을 관리한다.

파일을 ConfigMap으로 만들기

# 파일을 ConfigMap으로 만들기
kubectl create cm my-config --from-file=config-file.yml

# ConfigMap 조회
kubectl get cm

# ConfigMap 내용 상세 조회
kubectl describe cm/my-config
  • 파일 내용(config-file.yml)이 my-config로 저장된다.

ConfigMap을 적용

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
  • volume을 이용하여 ConfigMap을 적용한다.
    • /etc/config라는 컨테이너 내부 디렉토리에 ConfigMap을 마운트한다.

env 파일로 만들기

# env 포멧으로 생성
kubectl create cm env-config --from-env-file=config-env.yml

ConfigMap을 yaml로 정의하기

# 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를 생성할 수 있다.

ConfigMap을 환경변수로 사용하기

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
  • volume이 아닌 환경변수를 이용하여 컨테이너에서 ConfigMap을 사용하도록 한다.

참고

쿠버네티스 안내서

profile
꾸준히 나아가자 🐢

0개의 댓글