我有一個nodejs應用程序,它指向kubernetes服務/負載均衡器公有IP的IP地址。有沒有辦法從運行時的process/env變量中獲取它?來自Env的Kubernetes中的服務/負載均衡器的公共IP地址
e..g process.env.ENV_VARIABLE
,什麼是環境變量名
感謝
我有一個nodejs應用程序,它指向kubernetes服務/負載均衡器公有IP的IP地址。有沒有辦法從運行時的process/env變量中獲取它?來自Env的Kubernetes中的服務/負載均衡器的公共IP地址
e..g process.env.ENV_VARIABLE
,什麼是環境變量名
感謝
這不可作爲環境變量。同時請記住,一個容器可以接收來自多個負載平衡器的流量,並且在容器啓動後外部IP可能會發生變化,從而導致陳舊的值;所以環境變量中的IP可能不是一個適當的解決方案。
如果您使用的是入口對象就可以判斷它是通過查詢Kubernetes API服務器的外部IP(試行kubectl get myingress -o yaml
,看到status:
部分)。
對於特定的傳入http請求檢查負載平衡器IP的X-Forwarded-For:
標頭。
由於這個問題被標記google-container-engine,您還可以使用gcloud來獲取IP(可能是從一個initContainer或在啓動時):
gcloud compute forwarding-rules describe k8s-fw-YOURNAMESPACE-YOURINGRESSNAME--YOURHASHVALUE --global --format='value(IPAddress)'
gcloud compute addresses describe my-static-ip-name --global --format='value(address)'
我相信{SVCNAME}_SERVICE_HOST
和{SVCNAME}_SERVICE_PORT
變量,其中絲氨酸副名是上層,破折號轉換爲下劃線會給我IP地址。 (https://kubernetes.io/docs/concepts/services-networking/service/)
這個IP地址本地集羣。它不在kubernets集羣之外。 – sfgroups