我已經向我的 Kubernetes 服務添加了第二個 TCP 埠,并且注意到 kubelet 分配給{SVCNAME}_SERVICE_PORT 環境變數的埠似乎取決于順序。
例如,如果我在我的服務中這樣宣告我的埠:
ports:
- name: example
port: 9000
protocol: TCP
- name: http
port: 8080
protocol: TCP
然后FOO_SERVICE_PORT將被賦值9000。但是如果我翻轉訂單...
ports:
- name: http
port: 8080
protocol: TCP
- name: example
port: 9000
protocol: TCP
……然后FOO_SERVICE_PORT就是現在8080。
有沒有辦法強制 kubelet 選擇一個特定的埠來設定到這個變數中,這樣它就不會依賴于我定義埠的順序?也就是說,有沒有我可以設定的配置,所以它總是使用“http”埠(8080)作為它分配給這個變數的值,而不管這個特定埠在串列中的哪個位置宣告?
uj5u.com熱心網友回復:
在較舊的 Kubernetes 版本中,服務只能定義一個埠。當他們添加對多個埠的支持時,他們在設計上選擇將第一個埠放在向后兼容的環境變數中。沒有改變這種行為的配置。
但是,Kubernetes 也會{serviceName}_SERVICE_PORT_{portName}為命名埠設定環境變數,因此您可以通過埠名稱獲取埠號。例如:
FOO_SERVICE_PORT_EXAMPLE=9000
FOO_SERVICE_PORT_HTTP=8080
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/457708.html
標籤:Kubernetes
上一篇:使用Kustomize或kubectl從命令列部署1-containerpod或服務
下一篇:部署如何更新共享服務?
