一文搞懂Kubernetes網絡策略(下)

從CNCF基金會的成立,到Kubernetes社區蓬勃發展,歷經6載,17年異軍突起,在mesos、swarm等項目角逐中,拔得頭籌,繼而一統容器編排,其成功的關鍵緣由可歸納爲如下幾點:git

  • 項目領導者們的堅守與遠見
  • 社區的良好的運做與社區文化
  • 社區與企業落地的正反饋

今天zouyee爲你們帶來《一文搞懂Kubernetes網絡策略(下)》,其中《kuberneter調度由淺入深:框架》正在編寫中,敬請期待,當前涉及版本均爲1.20.+github

4、NetworkPolicy 開發

​ 實現一個支持 Network Policy 的網絡擴展須要至少包含兩個組件api

  • CNI 網絡插件:負責給 Pod 配置網絡接口
  • Policy controller:監聽 Network Policy 的變化,並將 Policy 應用到相應的網絡接口

img

性能測試

下圖基於Kubernetes 1.19版本測試瞭如下特性:安全

1)MTU auto configmarkdown

2) 帶寬性能: Pod to Pod、Pod to Service(TCP、UDP)網絡

3)資源消耗: Pod to Pod、Pod to Service(TCP、UDP)框架

4)安全特性:Network Policies、 Encryption等工具

Image for post

calico其餘詳細的能力說明,可參看官網。oop

5、將來展望
a. SCTP特性

支持版本: Kubernetes v1.19 [beta]post

做爲一個 Beta 特性,SCTP 默認是被啓用的。 要在集羣層面禁用 SCTP,須要爲 kube-apiserver關閉特性--feature-gates=SCTPSupport=false,... 以禁用 SCTP 。 啓用該特性後,用戶能夠將 NetworkPolicy 的 protocol 字段設置爲 SCTP

⚠️ CNI插件須要支持SCTP協議

b. 待開發

截止Kubernetes v1.20 ,NetworkPolicy API 還不支持下述功能。

  • 強制集羣內部流量通過某公用網關(可經過服務網格或其餘代理來實現)
  • 與 TLS 相關的場景(可以使用服務網格或者 Ingress 控制器)
  • 實現適用於全部名字空間或 Pods 的默認策略(如calico)
  • 高級的策略查詢或者策略驗證相關工具(如calico)
  • 在同一策略聲明中選擇目標端口範圍的能力
  • 生成網絡安全事件日誌的能力(例如,被阻塞或接收的鏈接請求)
  • 禁止本地迴路或指向宿主的網絡流量(Pod 目前沒法阻塞 localhost 訪問, 它們也沒法禁止來自所在節點的訪問請求)。

上述需求能夠經過操做系統組件(如 SELinux、OpenVSwitch、IPTables 等) 或者七層技術(Ingress 控制器、服務網格實現)及准入控制器進行功能加強,固然有興趣的能夠參考calico及OPA項目。

後續相關內容,請查看公衆號:DCOS

6、參考文檔
相關文章
相關標籤/搜索