Exercise 8.1: Create a ConfigMap

  1. CP 노드에 연결된 터미널로 이동

  2. ConfigMap에 사용할 파일 생성

    {
        mkdir primary
        echo c > primary/cyan
        echo m > primary/magenta
        echo y > primary/yellow
        echo k > primary/black
        echo "known as key" >> primary/black
        echo blue > favorite
    }
  3. ConfigMap 생성

    kubectl create configmap colors \
    --from-literal=text=black \
    --from-file=./favorite \
    --from-file=./primary/
  4. 생성된 ConfigMap 확인

    kubectl get cm colors
  5. 생성된 ConfigMap 데이터 확인

    kubectl get cm colors -o yaml 
  6. Pod 생성

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: shell-demo
    spec:
      containers:
      - name: nginx
        image: nginx
        env:
        - name: ilike
          valueFrom:
            configMapKeyRef:
              name: colors
              key: favorite
    EOF
  7. 생성된 Pod에 지정한 환경변수 확인

    kubectl exec shell-demo -- /bin/bash -c 'echo $ilike'
  8. Pod 삭제

    kubectl delete pod shell-demo
  9. Pod 생성

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: shell-demo
    spec:
      containers:
      - name: nginx
        image: nginx
        envFrom:
        - configMapRef:
            name: colors
    EOF
  10. 생성된 Pod에 지정된 모든 환경변수 확인

    kubectl exec shell-demo -- /bin/bash -c 'env'
  11. Pod 삭제

    kubectl delete pod shell-demo
  12. ConfigMap 생성

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: fast-car
      namespace: default
    data:
      car.make: Hyundai
      car.model: Ioniq
      car.trim: Exclusive
    EOF
  13. 생성된 ConfigMap 데이터 확인

    kubectl get cm fast-car -o yaml 
  14. Pod 생성

    cat <<EOF | kubectl create -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: shell-demo
    spec:
      containers:
      - name: nginx
        image: nginx
        volumeMounts:
          - name: car-vol
            mountPath: /etc/cars
      volumes:
        - name: car-vol
          configMap:
            name: fast-car
    EOF
  15. 생성된 Pod에 마운트된 디렉토리 확인

    kubectl exec shell-demo -- /bin/bash -c 'df -ha |grep cars'
  16. 생성된 Pod에 마운트된 파일 내용 확인

    kubectl exec shell-demo -- /bin/bash -c 'cat /etc/cars/car.trim; echo'
  17. Pod 삭제

    kubectl delete pod shell-demo
  18. ConfigMap 삭제

    kubectl delete cm fast-car colors

Last updated