컨테이너에 필요한 환경 설정을 컨테이너와 분리해서 제공하는 기능

다른 설정으로 컨테이너를 실행해야 할 때 사용

10.1 컨피그맵 사용하기

config-dev.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-dev
  namespace: default
data:
  DB_URL: localhost
  DB_USER: myuser
  DB_PASS: mypass
  DEBUG_INFO: debug

$ kubectl apply -f config-dev.yaml

Untitled

10.2 컨피그맵 설정 중 일부만 불러와서 사용하기

deployment-config01.yaml

piVersion: apps/v1
kind: Deployment
metadata:
  name: configapp
  labels:
    app: configapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: configapp
  template:
    metadata:
      labels:
        app: configapp
    spec:
      containers:
      - name: testapp
        image: arisu1000/simple-container-app:latest
        ports:
        - containerPort: 8080
        env:
        - name: DEBUG_LEVEL # 이름 설정
          valueFrom:
            configMapKeyRef: 
              name: config-dev # 어떤 콘피그 맵에서
              key: DEBUG_INFO # 어떤 값을 가져올지
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: configapp
  name: configapp-svc
  namespace: default
spec:
  ports:
  - nodePort: 30800
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: configapp
  type: NodePort

Untitled

10.3 컨피그맵 설정 전체를 한꺼번에 불러와서 사용하기

deployment-config02.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: configapp
  labels:
    app: configapp
spec:
  replicas: 1
  selector:
    matchLabels:
      app: configapp
  template:
    metadata:
      labels:
        app: configapp
    spec:
      containers:
      - name: testapp
        image: arisu1000/simple-container-app:latest
        ports:
        - containerPort: 8080
        envFrom:
        - configMapRef:
            name: config-dev # 컨피그맵 -> config-prod로 변경

envFrom을 사용

Untitled

configMap 2 생성 후 deployment yaml code를 map2와 연결