如何建立Kubernetes治理戰略
譯文譯者 | 李睿
審校 | 孫淑娟
治理可帶來一致性和可重復性,以確保質量永遠不會降低。制定Kubernetes治理模型有助于保持整個組織的正常運行。此外,Kubernetes治理模型中提出的策略并不局限于資源和部署的安全基線。
然而,真正的問題是:在企業的云原生旅程中,在哪里以及為什么需要Kubernetes的治理和策略?
Kubernetes提供了基于角色的訪問控制(RBAC)特性,這有助于以非常細粒度的方式定義訪問,從而區分操作人員或管理人員所擁有的訪問級別。
基于角色的訪問控制(RBAC)的局限性在于,它不允許用戶對資源使用設置限制。而在定義策略邊界時,對資源設置這些限制至關重要。
本文將介紹Kubernetes治理及其意義。
一、什么是Kubernetes治理?
人們都理解“治理”,即跨所有組、部門或整個組織執行某些規則和策略的能力。同樣,在討論Kubernetes治理時,指的是在所有Kubernetes集群中遵循的特定標準,以及在這些集群上運行的應用程序。
更容易理解的是,人們需要標準流程來保持事情的可預測性和安全性。當用戶擁有較少的集群,并且一個人處理所有的集群時,合并標準化看起來可能有點過分。但是,隨著時間的推移,這可能在維護集群方面付出巨大努力。
在這里了解治理的維度是什么,以及如何防止有太多重疊的政策。
二、治理的維度
Kubernetes治理有三個維度。
Kubernetes治理的維度
它需要在組織單位和技術單位方面加以實施。組織單位由用戶、組、團隊和部門組成。
技術單元包括云計算提供商、數據中心、區域、集群組、標簽選擇器、名稱空間等。還可以根據從靜態列表到動態規則的功能來定義范圍。
談到策略目標,在安全策略、映像管理、網絡策略管理和配置約束和策略方面有很多需要探討的地方。以下詳細了解一下。
三、治理目標是什么?
可以將Kubernetes治理目標分為以下幾類:
(1)安全策略
(2)容器圖像管理
(3)網絡策略管理
(4)訪問管理
(5)配置約束和策略
1.安全策略
當人們談論安全政策時,企業的運維團隊需要控制不同的領域。
框架安全設置可以確保:
(1)誰有權訪問集群或應用程序?
(2)針對不同部門定制訪問權限。
(3)指定應用程序使用操作系統功能的程度。
例如,對于數據科學部門創建的所有集群,這一切應該如何工作,用戶只能訪問特定的默認名稱空間。
2.容器圖像管理
另一個治理領域是圖像管理。在這種情況下,企業可以制定一套規則來說明:
(1)要在哪些集群中使用的容器映像類型。
(2)在生產環境中使用容器映像的標準是什么?
(3)容器登記冊選擇的監管標準以及如何防止其受到損害。
3.網絡策略管理
用戶需要專注于定義哪些pod或容器可以相互通信。簡單地說,需要通過治理來確保pod的安全約束。在某些情況下,安全框架確實可以解決這個問題。
擁有一個涵蓋安全以及其他領域(如集群拓撲和一般集群配置約束)的公共治理框架總是好的。
4.訪問實施和管理
引入基于角色的訪問控制策略(RBAC)的流行概念。
通過這種方式,管理員可以限制對Kubernetes集群的訪問。有各種Kubernetes對象在定義基于角色的訪問控制策略(RBAC)時起作用,例如角色、群集角色、角色綁定和群集角色綁定。有了它們,可以詳細定義訪問限制。
5.配置約束與策略
這是關于定義資源可配置權限以及資源訪問和限制。這是如何工作的——假設有不同的軟件團隊。通過配置約束與策略,允許團隊A在Azure和AWS上創建集群,并定義了團隊A可以利用資源的上限。需要注意的是,團隊A不能更改這些配置細節。
與部署的應用程序相關的治理規則與上面討論的安全規則非常相似。其中包括網絡策略和定義pod如何交互(稱為應用程序級約束)。還可以對所有應用程序的資源使用、請求和限制進行約束。
四、Kubernetes多集群管理和治理的重要性
實現多集群管理和治理的主要優點包括:
(1)減少管理復雜性——當工程團隊遵守一系列規則時,就更容易防止任何形式的浪費/過度使用。
(2)增強的集群可見性——更好的工作負載管理,實現資源的最佳使用。防止在節點之間不均勻地分布應用程序pod。
(3)更好的應用程序可用性——更容易在最近的可用區域部署應用程序。
(4)改進的監控和日志記錄——更容易解決問題,最大限度地減少停機時間。
(5)確保一致性和合規性——員工遵守規定的政策會帶來一致性,并使事情具有可預測性。
(6)減少延遲——有了強大的監控,更容易預測任何偏差,并更好做好準備。
改進的災難恢復。
(7)能夠跨多云/混合云環境部署遺留和云原生應用程序。
(8)標準化,內置自動化,降低運營成本,提高效率。
(9)強化的安全態勢——全面可見、集中控制、一致性和標準化。
五、如何實施Kubernetes治理框架?
在此之前,需要了解Kubernetes治理框架是什么樣子的?
它將多個專門的治理框架組合為一個全面的解決方案。這包括為不同的目標使用不同的工具,如云計算成本管理、云計算資源管理、可觀察性和監視、安全性等。一個全面的解決方案的問題是,這些不同的工具不一定要相互溝通和集成。
最好的方法是使用Kubernetes管理平臺。一個遵循安全性、可觀察性、成本管理等最佳實踐的低代碼平臺。
1.安全的最佳實踐
(1)集成在持續集成(CI)/持續交付(CD)管道中強大的圖像掃描過程,確保在軟件開發生命周期(SDLC)的構建和運行階段掃描每個企業應用程序。
(2)使用符合互聯網安全基準測試中心(CIS)標準的工具。
(3)限制對機密系統或數據的訪問。
(4)使用HashiCorp Vault等工具更好地管理數字認證憑證。
2.監視和可觀察性的最佳實踐
(1)監控策略,專注于提供Kubernetes集群內部正在發生的事情的細粒度可見性。
(2)自動化服務發現,執行詳細的應用程序監控,并實時提供面向行動的建議。
3.緩解網絡挑戰的最佳實踐
自定義設置支持:
容器網絡接口(CNI)——隨著業務通信的復雜性增加,安全威脅的脆弱性也隨之增加。將網絡接口插入容器網絡命名空間的容器網絡接口(CNI)插件。
通過創建公共和受保護的入口部署“約定優于配置”。
部署與應用程序的基礎設施層集成的服務網格。從而使網絡上服務之間的通信安全可靠。
4.云計算成本管理實踐
(1)使用現場實例(AWS)/現場虛擬機(Azure)/搶占虛擬機(GCP)進行成本優化:對于非關鍵任務的任務,可以在現場實例上運行。直觀的平臺通過確保在這些實例被撤銷時數據不會被刪除來支持這一點。
(2)停機調度:對于所有正在無目的運行的環境都可以關閉,從而節省基礎設施成本。
(3)使用副本集,保證在任何時間點都有指定相同數量的pod可用。
六、結語
通過優先考慮Kubernetes治理,企業正在實現必要的保護,以成功地保護其最寶貴的資產。此外,它還幫助這些資產實現可擴展性,從而使它們更加安全和健壯。
原文鏈接:https://dzone.com/articles/establishing-kubernetes-governance-strategy