Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

22.3. Downward API를 사용하여 컨테이너 값 사용

22.3.1. 환경 변수 사용

하향식 API를 사용하는 한 가지 메커니즘은 컨테이너의 환경 변수를 사용하는 것입니다. EnvVar 유형의 valueFrom 필드 (type EnvVarSource)는 변수의 값이 value 필드에 지정된 리터럴 값 대신 FieldRef 소스에서 제공되어야 함을 지정하는 데 사용됩니다. 향후 추가 소스가 지원될 수 있습니다. 현재 소스의 fieldRef 필드는 Downward API에서 필드를 선택하는 데 사용됩니다.

프로세스에 변수 값이 변경되었음을 알리는 방식으로 프로세스를 시작한 후에는 환경 변수를 업데이트할 수 없으므로 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