실습

Environment Variable

  1. ConfigMap 생성

    kubectl create configmap echo --from-literal=message="hello kubernetes"
  2. 생성된 ConfigMap 확인

    kubectl get cm echo -o yaml
  3. Pod 생성

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: echo
    spec:
      containers:
      - image: alpine
        name: echo
        command: [ "/bin/sh", "-c" ]
        args: [ "while true; echo \$MESSAGE; do sleep 5; done;" ]
        env:
          - name: MESSAGE
            valueFrom:
              configMapKeyRef:
                name: echo
                key: message
    EOF
  4. Pod 로그 확인

    kubectl logs echo
  5. ConfigMap 수정

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: echo
    data:
      message: goodbye kubernetes
    EOF
  6. 수정한 ConfigMap 확인

    kubectl get cm echo -o yaml
  7. Pod 로그 확인

    kubectl logs echo
  8. Pod 재생성

    cat <<EOF | kubectl replace --force -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: echo
    spec:
      containers:
      - image: alpine
        name: echo
        command: [ "/bin/sh", "-c" ]
        args: [ "while true; echo \$MESSAGE; do sleep 5; done;" ]
        env:
          - name: MESSAGE
            valueFrom:
              configMapKeyRef:
                name: echo
                key: message
    EOF
  9. Pod 로그 확인

    kubectl logs echo
  10. ConfigMap 생성

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: env
    data:
      DB_URL: db.example.com
      DB_NAME: mydb
      DB_USER: admin
    EOF
  11. Pod 생성

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Pod
    metadata:
      name: env
    spec:
      containers:
      - image: alpine
        name: env
        command: [ "env" ]
        envFrom:
          - configMapRef:
              name: env
      restartPolicy: Never
    EOF
  12. Pod 로그 확인

    kubectl logs env
  13. 생성한 리소스 삭제

    {
        kubectl delete pod echo env
        kubectl delete cm echo env
    }

Volume

  1. HTML 파일 생성

  2. ConfigMap 생성

  3. 생성된 ConfigMap 확인

  4. Pod 생성

  5. ConfigMap을 마운트한 경로에 있는 파일 확인

  6. 배포한 웹서버를 호출해서 인덱스 페이지 확인

  7. ConfigMap에 데이터 추가

  8. 업데이트된 ConfigMap 확인

  9. ConfigMap을 마운트한 경로에 있는 파일 확인 - 수정분이 반영되는지 시간이 걸릴수 있음

  10. ConfigMap에 데이터 변경

  11. 업데이트된 ConfigMap 확인

  12. 배포한 웹서버를 호출해서 인덱스 페이지 확인

  13. Pod 재생성

  14. ConfigMap을 마운트한 경로에 있는 파일 확인

  15. 배포한 웹서버를 호출해서 인덱스 페이지 확인

  16. 생성한 리소스 삭제

Last updated