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