6.5.2. Downward API를 사용하여 컨테이너 값을 사용하는 방법 이해

컨테이너는 환경 변수 또는 볼륨 플러그인을 사용하여 API 값을 사용할 수 있습니다. 선택하는 메서드에 따라 컨테이너에서 다음을 사용할 수 있습니다.

  • Pod 이름
  • Pod 프로젝트/네임스페이스
  • Pod 주석
  • Pod 라벨

볼륨 플러그인만 사용하여 주석 및 라벨을 사용할 수 있습니다.

6.5.2.1. 환경 변수를 사용하여 컨테이너 값 사용

컨테이너의 환경 변수를 사용할 때는 변수 값을 value 필드에서 지정하는 리터럴 값 대신 FieldRef 소스에서 제공하도록 EnvVar 유형의 valueFrom 필드(EnvVarSource 유형)를 사용합니다.

프로세스에 변수 값이 변경되었음을 알리는 방식으로 프로세스를 시작한 후에는 환경 변수를 업데이트할 수 없으므로 Pod의 상수 특성만 이러한 방식으로 사용할 수 있습니다. 환경 변수를 사용하여 지원되는 필드는 다음과 같습니다.

  • Pod 이름
  • Pod 프로젝트/네임스페이스

프로세스

환경 변수를 사용하려면 다음을 수행합니다.

  1. pod.yaml 파일을 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: dapi-env-test-pod
    spec:
      containers:
        - name: env-test-container
          image: gcr.io/google_containers/busybox
          command: [ "/bin/sh", "-c", "env" ]
          env:
            - name: MY_POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: MY_POD_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
      restartPolicy: Never
  2. pod.yaml 파일에서 Pod를 생성합니다.

    $ oc create -f pod.yaml
  3. 컨테이너의 로그에 MY_POD_NAMEMY_POD_NAMESPACE 값이 있는지 확인합니다.

    $ oc logs -p dapi-env-test-pod