使用基於策略的網路擴充套件KubernetesDeployments
今天的文章是由Nuage Networks 的產品管理總監Harmeet Sahni書寫,內容是關於他們在Kubernetes貢獻和Policy-Based Networking的見解。
儘管距離Kubernetes 1.0釋出僅僅只有18個月,我們已經看到Kubernetes領先容器業務流程平臺部署的分散式應用程式。周邊充滿活力的開源社群蓬勃發展是其最大原因之一。大量的Kubernetes貢獻者來自不同的背景意味著我們和使用者社群確信給一個開放的平臺投資。 像谷歌這樣的公司(容器引擎),紅帽子(OpenShift),和CoreOS(Tectonic)正在開發自己的基於Kubernetes的商業產品。因為它會帶來更多的標準化,並提供給使用者,所以這是一件好事。
K8s應用網路系統要求
把應用程式部署在Kubernetes的公司,面臨的一個最大問題是如何部署和合理安排大規模的容器。他們意識到底層基礎設施,包括網路和儲存,需要支援分散式應用程式。由於網路基礎設施的靈活性和敏捷性可以匹配應用程式本身,軟體定義網路(SDN)是一個非常適合這樣場景的應用。這些應用程式的網路要求包括:
- 網路自動化
- 分散式負載平衡和服務發現
- 分散式安全細粒度的策略
- QoS策略
- 可擴充套件實時監控
- 混合應用環境與服務橫跨容器,VMS和裸機伺服器
- 服務插入(如防火牆)
- 支援私有和公共雲部署
K8s網路系統
Kubernetes通過APIs提供了一組核心平臺服務。該平臺可以通過擴充套件API,外掛和標籤幾個方面實現可擴充套件性。這使得各種各樣的基於Kubernetes整合方法和工具被開發出來,。Kubernetes承認每個部署的網路將是獨一無二的。Kubernetes選擇了做網路系統外掛而不是試圖使核心系統來處理所有這些用例。
基於Nuage Networks提供基於SDN平臺的可擴充套件策略。該平臺由一個網路策略引擎管理,抽象出與配置系統相關的複雜性。平臺擁有一個帶有非常豐富的路由功能和實現水平擴充套件的獨立的SDN控制器。Nuage採用開源的Open vSwitch(OVS)與使用者空間的一些增強功能的OVS資料層。就像Kubernetes,Nuage一直信奉開放作為其平臺的核心宗旨。Nuage提供開放的API,允許使用者實現他們的網路和整合網路服務如防火牆、負載均衡器、IPAM工具等。Nuage和Kubernetes以及其他平臺一樣是支援多種雲平臺OpenStack,VMware和容器的平臺。
Nuage平臺實現了能夠生成VXLAN封裝的Kubernates網路外掛,提供Kubernates Pods和非Kubernates Pods(虛擬機器伺服器和裸機伺服器)之間基於策略的無縫網路連結。每個Pod都有一個特定名稱空間的網路IP,並且沒有在 kubernetes節點上繫結。
雲應用的建立使用了微服務,控制微服務之間通訊的是基礎要求。必須指出,這些網路策略需要控制即將到來的外部網路和服務的通訊也是至關重要的。Nuage策略的抽象模使得型應用程式宣告細粒度入口/出口策略更加容易。Kubernates使用Kubernates的擴充套件API實現了beta版的網路策略。Nuage實現了這一網路策略API解決各種各樣的策略用例如下:
- Kubernetes 名稱空間隔離
- 跨名稱空間策略
- 相同或者不同名稱空間的Pods的分組策略
- Kubernates Pods/名稱空間和外部的網路/服務之間的策略
策略是實現的可擴充套件性是使用者考慮的一個關鍵問題。一些網路設定需要建立訪問控制列表(ACL)條目告訴Pods它們如何相互作用。在大多數情況下,這最終導致了一個不規則堆積的ACL條目。Nuage平臺可以避免這個問題,快速分配策略應用於整個Pods組。Nuage平臺實現這些策略使用基於OVS的完全分散式防火牆。
監控Kubernetes Pods之間的通訊流的功能對於開發和運營團隊非常有用。Nuage平臺的實時分析引擎能夠視覺化和安全的監控Kubernetes應用。使用者可以得到的Pods之間的流量視覺化展示,使使用者很容易看到網路策略是如何生效。使用者還可以得到豐富的流量和策略統計集。此外,使用者可以根據策略事件閾值設定要觸發的警報。
總結
雖然在一年前我們開始從事Kubernetes一體化工作,但是感覺我們才剛剛開始。我們一直認為這是一個真正開放的社群,我們希望成為其中的一個組成部分。在GitHub上,你可以找到關於我們的Kubernetes整合的更多內容。
本文轉自中文社群-使用基於策略的網路擴充套件Kubernetes Deployments
相關文章
- 擴充套件Linux網路棧套件Linux
- 基於MongoDB.Driver的擴充套件MongoDB套件
- 基於 GatewayWorker 開發的 Laravel 擴充套件GatewayLaravel套件
- 基於PHP擴充套件的WAF實現PHP套件
- 基於shiro的自定義註解的擴充套件套件
- MySQL - 擴充套件性 2 擴充套件策略:氪金氪腦任君選MySql套件
- 基於PCNTl擴充套件的PHP多程式管理庫套件PHP
- 基於 swoole擴充套件 的即時通訊 im套件
- 編寫基於PHP擴充套件庫的後門PHP套件
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- 基於 Wasm 和 ORAS 簡化擴充套件服務網格功能ASM套件
- [擴充套件]laravel-xlswriter 一款基於xlswriter的laravel擴充套件包 excel極速讀寫套件LaravelExcel
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- Solon詳解(六)- Solon的校驗擴充套件框架使用與擴充套件套件框架
- .NET Core 3.0之建立基於Consul的Configuration擴充套件元件套件元件
- 如何基於k8s 開發自己的擴充套件K8S套件
- Source insight擴充套件宏使用套件
- 使用ctypes來擴充套件Python套件Python
- 使用cython擴充套件python庫套件Python
- 基於EKF擴充套件卡爾曼濾波的感測器網路目標跟蹤matlab模擬套件Matlab
- Flutter——Dart Extension擴充套件方法的使用FlutterDart套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- Airtel選擇Tejas進行光學網路擴充套件AI套件
- chrome擴充套件推薦:此刻、今天、最近~一個關於時間管理的擴充套件 – MomentumChrome套件
- 基於Chrome擴充套件的瀏覽器可信事件與網頁離線PDF匯出Chrome套件瀏覽器事件網頁
- Laravel集合探學系列——新增擴充套件macro策略(一)Laravel套件Mac
- 使用udev擴充套件ASM磁碟組dev套件ASM
- 表單驗證使用擴充套件套件
- tonyenc加密擴充套件使用方法加密套件
- 分享一個便於擴充套件的使用者表結構套件
- Rainbond外掛擴充套件:基於Mysql-Exporter監控MysqlAI套件MySqlExport
- 聊聊如何基於eureka後設資料擴充套件namespace功能套件namespace
- 基於GenericAPIView以及五個檢視擴充套件類寫介面APIView套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- 擴充套件一下使用reduce的思路套件
- 使用aggregation API擴充套件你的kubernetes APIAPI套件
- yii2-websocket | 基於 yii2 實現的 WebSocket 擴充套件Web套件