我開發了兩個Web應用程序(我們稱之爲A和B)並將它們部署到k8s。 Web應用程序A是指由Web應用程序B生成的圖像。在以前的環境中,B具有固定的IP和端口,因此可以更容易地訪問B上託管的圖像。在K8S環境中,我使用服務類型 - NodePort。在這種情況下,端口在每次部署時都會隨機生成。如何以編程方式在Kubernetes中獲取服務的NodePort?
問題是,是否有方法從A Pod以編程方式獲取B服務的節點端口。或者是否有可能修復一個服務的節點端口?
我開發了兩個Web應用程序(我們稱之爲A和B)並將它們部署到k8s。 Web應用程序A是指由Web應用程序B生成的圖像。在以前的環境中,B具有固定的IP和端口,因此可以更容易地訪問B上託管的圖像。在K8S環境中,我使用服務類型 - NodePort。在這種情況下,端口在每次部署時都會隨機生成。如何以編程方式在Kubernetes中獲取服務的NodePort?
問題是,是否有方法從A Pod以編程方式獲取B服務的節點端口。或者是否有可能修復一個服務的節點端口?
有三種回答您的問題:
首先是一個不應該被破壞,只是因爲Pod
這背後是重新部署了Service
。 Service
被設計爲長期合約,抽象的服務的位置(或計數)Pod
s
第二個是,如果你希望有網絡應用程序A使用已知的你NodePort
,你可以把一個價值在Service
內ports:
映射nodePort:領域,並假設它尚未分配,kubernetes會按照你的判斷
的第三個答案是,每Pod
集羣內自動運行獲得用於與kubernetes API進行通信的API令牌(它生活在/run/secrets/kubernetes.io
或類似的地方),所以你可以問A來自Pod內的PI爲您提供服務節點的當前值端口
非常有幫助,謝謝。 – ichbinblau