我工作的一個Kubernetes部署具有以下屬性:如何爲Kubernetes服務提供跨多個子網的裸機靜態地址?
- 集羣是在我們自己的裸機機器上運行(不象GCE或AWS雲服務供應商)
- 工人機跨越多個子網
出於安全考慮,我們希望做到以下幾點:
- 引腳到只能在町計劃的某些服務尤其是子網NES(這是很簡單的,我們已經找到了如何做到這一點)
- 對於那些需要接受從其它子網中運行的服務的通信,以某種方式固定地址(或者服務的IP,端口,或兩者)的服務。然後,在我們的路由器上靜態配置ACL以僅允許這些通信。
我見過一對夫婦的方法建議,但據我所知,他們都功虧一簣以某種方式。它們是:
- 使用LoadBalancer。這不會起作用,因爲負載均衡器目前僅支持GCE或AWS負載均衡
- 使用NodePorts。這是行不通的,因爲據我所知,有沒有辦法來指示Kubernetes到只有機器的特定子集(在我們的情況下,在同一個子網中的服務機)偵聽端口和流量轉發到上該服務(使所有子網中的所有計算機監聽和轉發通信都不可行的原因是,我們無法提前知道服務實例將調度到哪個IP地址/端口,因此無法靜態配置我們的路由器上的ACL)。
- 使用External IPs。這可能與可行性最接近,但要求給定子網中需要接受來自該子網之外的服務的連接的服務數不超過子網中的IP數。
有沒有解決這個問題,我很想念的一些其他的方式?編寫自定義軟件來解決這個問題是一種選擇,但如果可能的話,我們希望避免這種情況。
「_How給予Kubernetes服務上跨多個子網裸機靜態地址_?」這個問題並沒有真正意義。地址只在一個網絡中,而不是在多個網絡中。您需要爲不同的網絡分配不同的地址。 –