日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在 Kubernetes Pod 中注入環(huán)境變量及優(yōu)先級問題

?1. Kubernetes Pod 引用環(huán)境變量的幾種方式

1.1 直接 Key/Value

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"
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name

1.2 從 Secret 引用

有兩種方式引用 Secret 中的變量:

專注于為中小企業(yè)提供網(wǎng)站建設、成都網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)元江縣免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

  • 通過 envFrom 引用 Secret 中全部變量
  • 通過 valueFrom 引用 Secret 中指定變量
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: redis
envFrom:
- secretRef:
name: secret-config
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: secret-config
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: secret-config
key: password

1.3 從 ConfigMap 引用

有兩種方式引用 ConfigMap 中的變量:

  • 通過 envFrom 引用 ConfigMap 中全部變量
  • 通過 valueFrom 引用 ConfigMap 中指定變量
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: k8s.gcr.io/busybox
envFrom:
- configMapRef:
name: configmap-config
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: special-config
key: special.how
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: env-config
key: log_level

2. 變量引用的優(yōu)先級

從源碼中可以看到的實現(xiàn)邏輯是,會初始化一個 Map 存放環(huán)境變量,然后按照如下步驟進行處理:

  1. 按順序遍歷 envFrom 引用的 ConfigMap 和 Secret 的 Key/Value
  2. 按順序遍歷 env 中的設置的 Key/Value
  3. 由于 Pod 默認開啟了 EnableServiceLinks,最后還需要將 Service 相關變量注入

優(yōu)先級是,Service 變量 > Env > EnvFrom,其中 EnvFrom 的優(yōu)先級是后面覆蓋前面。

這里單獨說下,注入到環(huán)境變量中的 Service 相關變量:

  • 注入的范圍。所在命名空間的所有 Service
  • 注入的內容。同一命名空間下,所有的服務地址、端口、協(xié)議。
  • 注入的格式。大寫字母加下劃線的格式,例如ADMIN_WEB_PC_TEST_PORT_80_TCP=tcp://10.233.45.183:80,ADMIN_WEB_PC_TEST_PORT=tcp://10.233.45.183:80,ADMIN_WEB_PC_TEST_PORT_80_TCP_ADDR=10.233.45.183,ADMIN_WEB_PC_TEST_PORT_80_TCP_PORT=80,ADMIN_WEB_PC_TEST_PORT_80_TCP_PROTO=tcp 。如果同一個命名空間下,部署大量服務,每個 Pod 中可能會增加幾百個這樣的變量。

3. 參考

  • https://github.com/kubernetes/kubernetes/blob/eacbf87bfe105b1b24f6226640ea85c93462401e/pkg/kubelet/kubelet_pods.go#L575
  • https://github.com/kubernetes/kubernetes/blob/eacbf87bfe105b1b24f6226640ea85c93462401e/pkg/kubelet/envvars/envvars.go#L32:6


網(wǎng)頁題目:如何在 Kubernetes Pod 中注入環(huán)境變量及優(yōu)先級問題
網(wǎng)站URL:http://www.5511xx.com/article/dpodeji.html