2017-09-02 56 views
0

我已經創建了一個k8s服務(type = loadbalancer),後面帶有一些數據包。據我瞭解,從pod引發的所有數據包將具有作爲PodIP的源IP,因此響應入站流量的那些源將具有作爲LoadBalancer IP的源IP。所以我的問題是:Kubernetes出站數據包網絡

  1. 我的聲明是真的,還是有時間源IP將是節點IP而不是?
  2. k8s中是否有任何技巧,我可以將第一種情況下的源IP從PodIP更改爲LB IP?
  3. 任何方式來指定一個指定的pod IP?

回答

0

正如user315902所說,Azure ACS k8s使用Azure負載平衡器向互聯網提供服務。

Kubernetes的

架構圖通過Azure的集裝箱服務部署: enter image description here

是我的要求真的,或者有時間的源IP將是節點IP 呢?

如果我們將服務暴露給互聯網,我認爲源IP將是負載均衡器公共IP地址。在ACS中,如果我們將多個服務暴露給互聯網,Azure LB將添加多個公共IP地址。

是否有K8S什麼花招,我可以從PodIP到LB IP的 第一個場景改變源IP?

你的意思是你想使用節點公共IP地址將服務公開給互聯網嗎?如果是的話,我認爲我們不能使用節點IP向互聯網公開服務。在Azure中,我們不得不使用LB向互聯網公開服務。

+0

謝謝@Jason。它有很多幫助。只是爲了確認一點,今天有沒有方法來指定pod IP? (我的理解是否定,對吧?) – diamondwong

+0

@diamondwong你的意思是你想把服務暴露給互聯網,並且想要指定這個pod的公共IP地址?答案不是,我們將動態獲取公共IP地址。如果您刪除此窗格並創建新窗口,則IP地址將丟失,並且我們將獲得新的IP地址。 –

1

豆莢在內部網絡中運行時負載均衡是在互聯網上曝光,所以數據包的地址看起來或多或少是這樣的:

[pod1] <----->  [load balancer]   <-----> [browser] 
10.1.0.123   10.1.0.234 201.123.41.53    217.123.41.53 

用於指定莢IP看看SessionAffinity