6.5.2. Downward API를 사용하여 컨테이너 값을 사용하는 방법 이해
컨테이너는 환경 변수 또는 볼륨 플러그인을 사용하여 API 값을 사용할 수 있습니다. 선택하는 메서드에 따라 컨테이너에서 다음을 사용할 수 있습니다.
- Pod 이름
- Pod 프로젝트/네임스페이스
- Pod 주석
- Pod 라벨
볼륨 플러그인만 사용하여 주석 및 라벨을 사용할 수 있습니다.
6.5.2.1. 환경 변수를 사용하여 컨테이너 값 사용
컨테이너의 환경 변수를 사용할 때는 변수 값을 value
필드에서 지정하는 리터럴 값 대신 FieldRef
소스에서 제공하도록 EnvVar
유형의 valueFrom
필드(EnvVarSource
유형)를 사용합니다.
프로세스에 변수 값이 변경되었음을 알리는 방식으로 프로세스를 시작한 후에는 환경 변수를 업데이트할 수 없으므로 Pod의 상수 특성만 이러한 방식으로 사용할 수 있습니다. 환경 변수를 사용하여 지원되는 필드는 다음과 같습니다.
- Pod 이름
- Pod 프로젝트/네임스페이스
프로세스
환경 변수를 사용하려면 다음을 수행합니다.
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
pod.yaml
파일에서 Pod를 생성합니다.$ oc create -f pod.yaml
컨테이너의 로그에
MY_POD_NAME
및MY_POD_NAMESPACE
값이 있는지 확인합니다.$ oc logs -p dapi-env-test-pod