W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本頁(yè)將展示如何為 kubernetes Pod 下的容器設(shè)置環(huán)境變量。
你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:
創(chuàng)建 Pod 時(shí),可以為其下的容器設(shè)置環(huán)境變量。通過配置文件的 ?env
?或者 ?envFrom
?字段來設(shè)置環(huán)境變量。
本示例中,將創(chuàng)建一個(gè)只包含單個(gè)容器的 Pod。Pod 的配置文件中設(shè)置環(huán)境變量的名稱為 ?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"
kubectl apply -f https://k8s.io/examples/pods/inject/envars.yaml
kubectl get pods -l purpose=demonstrate-envars
查詢結(jié)果應(yīng)為:
NAME READY STATUS RESTARTS AGE
envar-demo 1/1 Running 0 9s
kubectl exec envar-demo -- printenv
打印結(jié)果應(yīng)為:
NODE_VERSION=4.4.2
EXAMPLE_SERVICE_PORT_8080_TCP_ADDR=10.3.245.237
HOSTNAME=envar-demo
...
DEMO_GREETING=Hello from the environment
DEMO_FAREWELL=Such a sweet sorrow
說明: 通過 ?
env
?或 ?envFrom
?字段設(shè)置的環(huán)境變量將覆蓋容器鏡像中指定的所有環(huán)境變量。
說明: 環(huán)境變量可以互相引用,但是順序很重要。 使用在相同上下文中定義的其他變量的變量必須在列表的后面。 同樣,請(qǐng)避免使用循環(huán)引用。
你在 Pod 的配置中定義的環(huán)境變量可以在配置的其他地方使用, 例如可用在為 Pod 的容器設(shè)置的命令和參數(shù)中。 在下面的示例配置中,環(huán)境變量 ?GREETING
?,?HONORIFIC
?和 ?NAME
?分別設(shè)置為 ?Warm greetings to
? , ?The Most Honorable
? 和 ?Kubernetes
?。然后這些環(huán)境變量在傳遞給容器 ?env-print-demo
? 的 CLI 參數(shù)中使用。
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)"]
創(chuàng)建后,命令 ?echo Warm greetings to The Most Honorable Kubernetes
? 將在容器中運(yùn)行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: