IT/쿠버네티스 / / 2020. 4. 14.

[kubernetes] configMap 활용

포스팅 목차

    1. configMap 이란?

    - 쿠버네티스의 기본 오브젝트로 구성 데이터를 저장하는 key/value 쌍의 집합

    - pod 에 파일을 생성하거나 pod의 환경 변수에 추가하는 방식으로 데이터를 제공할 수 있다.

     

    2. configMap 생성

    예시) config.yaml 파일을 configMap으로 생성 해보자.

    1) 필요한 설정인 config.yaml 내용이 아래와 같다고 하자.

    autoSaveInterval: 60

    batchSize: 128

    protocols:

      - http

      - https

     

    2) 직접 yaml 파일을 생성하여 실행하는 방법

    $ vi create_config.yaml

    apiVersion: v1

    data: 

      config.yaml: |

        autoSaveInterval: 60

        batchSize: 128

        protocols:

          - http

          - https

    kind: ConfigMap

    metadata:

      name: demo-config

      namespace :demo

     

    3) config.yaml 파일을 가지고 kubectl 명령을 활용하여 생성

    $ kubectl create configmap demo-config --namespace=demo --from-file=config.yaml

     

    4) 생성된 configMap을 매니페스트 파일로 export

    $ kubectl get configmap/demo-config --namespace=demo --export -o yaml. > demo-config.yaml

     

    3. confinMap을 활용하여 환경변수 설정

    1) 사용할 configMap 생성

    $ vi demo_config.yaml

    apiVersion: v1

    kind: ConfigMap

    metadata:

      name: demo-config

    data:

      greeting: Hola

     

    $ kubectl create -f demo_config.yaml

     

    2) deployment spec에 추가 수정

    $ vi demo.yaml
    spec:
      containers:
        - name: demo
           image: cloudnatived/demo:hello-config-env
           ports:
             - containerPort: 8888
           env:
             - name: GREETING
                valueFrom:
                  configMapKeyRef:
                    name: demo-config
                    key: greeting

     

    3) 해당 deployment 와 port-forward 한 후 확인

    $ kubectl apply -f demo.yaml

    $ kubectl port-forward deply/demo 9999:8888

     

    http://localhost:9999로 접속하여 확인한다.

     

    4. configMap에서 전체 환경 변수 가져오기

     

     

     

     


    • 네이버 블로그 공유
    • 네이버 밴드 공유
    • 페이스북 공유
    • 카카오스토리 공유