共計 1954 個字符,預計需要花費 5 分鐘才能閱讀完成。
K8S 1.3 中將引入的網絡策略 API 的示例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Kubernetes SIG 小組自去年年底以來一直頻繁開會,旨在給 Kubernetes 添加網絡策略,也收獲很多進展。
很多用戶都遇到過一個問題,就是 Kubernetes 的開放網絡策略對于有些程序是不合適的,比如那些需要更精確控制流量來問訪問 pod 或者 service 的程序。現在,這可能是一個只允許流量從隔壁層流過來的多層應用程序。但是隨著新的云原生應用組合著微服務的產生,控制信息流量在這些 service 間的流動的能力變得愈發重要。
網絡 SIG 小組努力搭建,從識別特定的需要網絡隔離增強安全性的案例場景(網址)著手。正確獲得這些簡單使用案例的 API 對于工作十分重要,因為這也是更加復雜的網絡協議的基礎,對于 Kubernetes 里面的多租戶來說十分重要。
從這些場景中,一些可行的辦法早就想到了,最小的策略規范已經被定義好了。基礎的想法就是,如果每個命名空間之間開啟隔離,那么特殊 pods 之間的通信就需要啟用特定的策略。
要快速支持這個實驗的 API 最簡單的方法就是以第三方資源拓展(ThirdPartyResource)的形式到 API 服務器,Kubernetes 1.2 現在已經支持了。
如果對這個運行不熟悉,Kubernetes API 可以通過定義第三方資源(ThirdPartyResources)拓展,在指定的 URL 上創建一個新的 API 端點。
這樣就可以創建一個 API 端點(每個命名空間一個):
第三方網絡控制器可以在這些端點上監聽,當資源被創建、修改或者刪除的時候作出必要的回應。注意:kubernetes 1.3 版本即將發布,網絡策略 API 會以測試版的形式發布,那么也就沒有必要像上文提到那樣去創建一個第三方資源 API 端點了。
網絡隔離默認設置下是關閉的,所以所有的 pods 之間正常情況下可以互相交流。然而,重點是一旦網絡隔離打開,在所有的命名空間里,所有到 pods 的流量都會被攔截,也就是說,打開隔離將會改變你的 pods 的行為反應。
通過定義命名空間上的網絡隔離注釋來打開網絡隔離,如下圖所示:
只要網絡隔離打開,網絡協議肯定被用來做 pod 之間的交流。
政策規范可以應用到一個命名空間來定義政策的細節,具體如下圖所示:
在這個例子中,‘tenant-a’命名空間 get 到‘pol 1’,如圖所示。具體來說,帶有段落標簽‘backend’的 pods 會在 80 端口允許 TCP 流量在帶有段落標簽‘frontend’接收。
現在,Romana,OpenShift,OpenContrail 和 Calico 都支持網絡協議應用到命名空間和 pods。Cisco 和 VMware 也都在致力于這方面的實施工作。Romana 和 Calico 最近在 KubeCon 證實了 Kubernetes1.2 的性能。你可以點擊這里查看他們的 presentation:Romana(視頻地址:https://www.youtube.com/watch?v=f-dLKtK6qCs 幻燈片地址:http://www.slideshare.net/RomanaProject/kubecon-london-2016-ronana-cloud-native-sdn),Calico(視頻地址:https://www.youtube.com/watch?v=p1zfh5N4SX0 幻燈片地址:http://www.slideshare.net/kubecon/kubecon-eu-2016-secure-cloudnative-networking-with-project-calico)
如何運作
每個解決方案都有各自的實施細節。目前,他們依靠的是主機執行機制,但是未來的實施也會在超級管理器上面創建應用協議,或者直接依靠網絡本身。
外部協議控制軟件(不同實施細節)會為 pods 創建或者運用新的協議,查看新的 API 端點。當一個 event 要求策略配置,收聽器會識別區別,控制器會通過配置界面、運用策略來回應。下面的框架展示了一個 API 收聽器和協議控制器如何通過主機來應用網絡策略,然后回應更新。pods 上面的網絡界面是通過主機上一個 CNI 插件配置的(沒有在圖中展示)。
如果你因為網絡隔斷或者安全問題(或者兩者都有)在開發程序時被絆住了,這些新的網絡協議對提供你需要的 control 很有幫助。因為網絡策略現在已經像一個 API 一樣可得到,所以不需要等到 Kubernetes1.3。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。