Recent Comments
Link
Recent Posts
Today
Total
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
관리 메뉴

Study Memory Work

[K8S/CKA 자격증] Worloads & Scheduling - ConfigMap 본문

Infra/Kubernetes

[K8S/CKA 자격증] Worloads & Scheduling - ConfigMap

Hera Choi 2023. 1. 22. 18:06

ConfigMap

  • 컨테이너 구성 정보를 한 곳에 모아서 관리할 수 있도록 kubernetes에서 지원.
  • key, value 타입으로 이루어진 ConfigMap에 컨테이너 구성 정보를 저장한다.
  • 기존에는 컨테이너 내에 컨테이너의 conf 파일이 존재했다면, ConfigMap에 있는 정보를 컨테이너에 mount시켜주는 형태.
  • ConfigMap 수정 후, pod만 restart해주면 적용이 가능해서 많은 pod를 관리하는데에 용이하다.
# Configmap 생성하기
$ kubectl create configmap {configmapNAME} [--from-file=source] [--from-literal=key1=value1]

# --from-file : file 자체를 데이터로 가져오기
# --from-literal : 데이터 하나씩 생성해주기

 


[문제11] ConfigMap으로 환경변수 전달

작업 클러스터 : k8s
다음의 변수를 configMap eshop으로 등록하세요.

  • DBNAME: mysql
  • USER: admin

등록한 eshop configMapDBNAMEeshop-configmap라는 이름의 nginx 컨테이너에 DB라는 환경변수로 할당하세요.

# 1. configmap 생성
$ kubectl create configmap eshop --from-literal=DBNAME=mysql --from-literal=USER=admin


# 2. 확인
$ kubectl describe configmaps eshop


# 3. pod 생성
$ kubectl run eshop-configmap --image=nginx --dry-run=client -o yaml > eshop.yaml
$ vi eshop.yaml

###
apiVersion: v1
kind: Pod
metadata:
  name: eshop-configmap
spec:
  containers:
    - name: eshop-configmap
      image: nginx
      env:
        # Define the environment variable
        - name: DB			# Pod에서 사용할 변수명
          valueFrom:
            configMapKeyRef:
              name: eshop		# configmap 명
              key: DBNAME
              key: admin
  restartPolicy: Never
###


# 4. 확인
$ kubectl exec -it echop-configmap -- /bin/bash
$ env