參考:https://kubernetes.io/zh/docs/tasks/inject-data-application/define-environment-variable-container/
為容器設置一個環境變量
創建 Pod 時,可以為其下的容器設置環境變量。通過配置文件的 env 或者 envFrom 字段來設置環境變量。
本示例中,將創建一個只包含單個容器的 Pod。Pod 的配置文件中設置環境變量的名稱為 DEMO_GREETING, 其值為 "Hello from the environment"。下面是 Pod 的配置清單:
apiVersion: v1
kind: Pod
metadata:
name: envar-demo
labels:
purpose: demonstrate-envars
spec:
containers:
- name: envar-demo-container
image: gcr.io/google-samples/node-hello:1.0
env:
- name: DEMO_GREETING
value: "Hello from the environment"
- name: DEMO_FAREWELL
value: "Such a sweet sorrow"
說明: 通過 env 或 envFrom 字段設置的環境變量將覆蓋容器鏡像中指定的所有環境變量。
說明: 環境變量可以互相引用,但是順序很重要。 使用在相同上下文中定義的其他變量的變量必須在列表的后面。 同樣,請避免使用循環引用。
在配置中使用環境變量
您在 Pod 的配置中定義的環境變量可以在配置的其他地方使用, 例如可用在為 Pod 的容器設置的命令和參數中。 在下面的示例配置中,環境變量 GREETING ,HONORIFIC 和 NAME 分別設置為 Warm greetings to , The Most Honorable 和 Kubernetes。然后這些環境變量在傳遞給容器 env-print-demo 的 CLI 參數中使用。
apiVersion: v1
kind: Pod
metadata:
name: print-greeting
spec:
containers:
- name: env-print-demo
image: bash
env:
- name: GREETING
value: "Warm greetings to"
- name: HONORIFIC
value: "The Most Honorable"
- name: NAME
value: "Kubernetes"
command: ["echo"]
args: ["$(GREETING) $(HONORIFIC) $(NAME)"]
創建后,命令 echo Warm greetings to The Most Honorable Kubernetes 將在容器中運行。