Kubernetes插件的該如何擴展,這6個方面必不可少
Kubernetes插件或擴展是Kubernetes堆棧的重要組成部分,可幫助滿足各種需求并增強使用體驗,為了支持生產級的部署,Kubernetes需要許多可擴展的組件,比如日志記錄和監控功能,安全治理等等。那么到底需要在哪些方面進行擴展,選擇哪些插件呢?

1. 覆蓋網絡插件
容器必須以某種方式進行通信,所以覆蓋網絡(Overlay network)插件十分重要。盡管集群可以獨立于覆蓋網絡運行,但使用此覆蓋網絡的擴展,將大大提升靈活性。
覆蓋網絡插件的有不少,比如Calico,Weave,Flannel,Canal(Calico + Flannel)和Kube Router。每個集群可以手動安裝,也可以針對每個集群分別安裝。但是,這可能很耗時,并且限制縮放比例。由于覆蓋網絡是Kubernetes集群的關鍵部分,因此請確保它是自動化的,并且是Kubernetes管理平臺的一部分。
2. 云原生存儲擴展
大多數用戶,開始使用無狀態應用程序進行Kubernetes時,但很快便涉足有狀態應用程序領域。此時,需要一種使用特定擴展來管理云原生存儲的方法。
Kubernetes提供基本的本地存儲功能。但是,它們可能在諸如存儲配置,訪問管理或針對不同存儲類型的SLA等方面不足。盡管可以通過半手動方式解決這些問題,但這給運營團隊帶來了負擔,并帶來了可伸縮性問題。
為了通過狀態應用程序支持,可擴展的Kubernetes集群,需要自動執行云原生存儲管理,操作和治理。這幾個選項是不錯的選擇,比如Portworx,Storage OS和Robin。開源項目還可以選擇Ceph和Rook。
所以在選擇構建自己的云原生存儲,利用商業產品(或具有商業支持的開源產品),或使用Kubernetes擴展云原生存儲功能。這三種選擇,第一種方法顯然不可行,因為構建自己的所需的工作和資源對大多數企業來說,都成本高昂的;最好考慮使用供應商提供的現有云本地存儲框架,或使用Kubernetes內置的存儲功能。
3. CI/CD管道插件
可以選擇各種持續集成和持續交付(CI/CD)擴展。有些是特定于云原生的,而另一些是通用的,可以與Kubernetes或其他部署工具一起使用。這些工具中的每一個都有不同程度的可定制性。有些包裝與預配置的管道打包在一起,這限制了自定義,而另一些限制較少,但需要更多的設置工作。
在查看選項時,請考慮開發團隊正在使用的工具及其體驗。可以通過插件,將CI/CD管道與Kubernetes和云原生堆棧集成在一起。如果沒有,請考慮使用開源工具,如Jenkins,Spinnaker或兩者的組合。
4. 安全管理和治理框架擴展
安全管理和治理框架對于企業至關重要,挑戰也在所難免。通過不同的框架實現不同的治理規則,并且這些擴展可能與現有的安全框架重疊。如果沒有一個能夠滿足所有治理需求的綜合工具,可能需要混合搭配以最大程度地覆蓋范圍,而又不會過度使用治理框架的數量和給運營團隊帶來負擔。
由于不同的企業的安全要求不同,因此安全插件也面臨類似的挑戰。首先,定義你的要求并確定正確的擴展;其次,在使覆蓋范圍最大化的同時,最小化所需的框架。
一些安全框架將與覆蓋網絡擴展集成,或者可以利用某些Kubernetes安全功能,包括網絡策略,pod安全策略等。對于自動化而言,如NeuVector之類的解決方案可以在集群,環境和應用程序中應用通用策略。
5. 入口管理擴展
入口管理可以將Kubernetes集群服務提供給外部用戶。為此,可以利用集群中的入口控制器。但是,更復雜的場景可能需要多個入口控制器并與API管理系統(如NGINX或Kong)集成。這兩個工具都與Kubernetes,云原生工具和不同的API管理系統集成在一起。
6. 運行時框架
有許多應用程序運行時擴展可供選擇。無服務器框架和服務網格通常與Kubernetes一起使用,并且能夠在每個集群中自動部署這些框架的功能非常有用。特別是對于開發和質量保證。使用這些工具時,請務必注意,它們會從應用程序中收集其他指標維度,并應與Kubernetes日志收集和監控集成。例如,服務網格可以為監控和解決各種問題,提供有價值的跟蹤信息。
鏡像注冊表是Kubernetes的另一個重要擴展。鏡像管理或構建庫管理遠遠超出了托管構建二進制文件,Helm軟件包或Docker鏡像的范圍。它支持應用程序恢復以及Kubernetes重啟Pod的能力,使其既具有部署時間又具有運行時依賴性。還必須考慮與這些構件庫相關的治理規則,例如誰可以在每個存儲庫中發布,并將這些規則與安全框架集成。
總結
Kubernetes插件或擴展是任何Kubernetes堆棧的重要組成部分。對于某些功能,例如覆蓋網絡,云本地存儲或CI/CD框架,選擇很簡單。但是,安全和治理帶來了復雜的問題。當你將各種工具組合在一起時,缺少單個綜合工具就需要對安全性要求進行深入思考和考慮,這并非易事。
那么可能需要考慮使用企業級Kubernetes平臺,例如Kublr,它通過默認設置關鍵擴展來解決Kubernetes的安全和治理挑戰。此類平臺還與身份管理系統和RBAC集成。