本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
Kubernetes 策略現狀
Kubernetes 在產業中的影響力顯著增長;隨著快速成長,我們開始看到各組件在定義和應用政策方面存在差異。
目前,在身份服務、網路服務、儲存服務、多叢集聯邦、RBAC 和許多其他領域都可以找到與政策相關的組件,它們的成熟度不同,並且針對特定問題的動機也不同。在每個組件中,有些政策是可擴展的,而另一些則不是。每個專案用於表達意圖的語言因原始作者和經驗而異。在整個領域推動對政策的一致看法是一項艱鉅的任務。
受監管行業採用 Kubernetes 也將推動確保已部署的叢集符合各種法律要求,例如 PCI、HIPPA 或 GDPR 的需求。這些合規標準中的每一項都對使用者資訊、資料和隔離強制執行一定程度的隱私。
當前 Kubernetes 政策實施的核心問題如下:
- 缺乏跨平台的大局觀
- 不同政策組件之間缺乏協調和通用語言
- 跨平台建立可擴展政策缺乏一致性。
- 在某些領域,政策組件是可擴展的,而在另一些領域,則強制執行嚴格的端到端解決方案。對於可擴展和可插拔架構的偏好尚未達成共識。
- 對於已建立、修改或停用的政策以及代表已應用政策執行的操作,Kubernetes 架構缺乏一致的可稽核性。
成立 Kubernetes Policy WG
我們成立了一個新的 WG 以直接解決這些問題。我們打算提供一個整體架構,描述 Kubernetes 中當前的政策相關實施以及未來的政策相關提案。透過協作方法,我們希望向開發人員和終端使用者呈現 Kubernetes 中政策的通用視圖。
我們不尋求重新定義和取代已透過徹底討論和共識達成的現有實施方案。而是對當前實施方案進行總結性回顧,並解決差距,以解決我們初始設計提案中定義的廣泛端到端場景。
Kubernetes Policy WG 一直專注於設計提案文件,並利用每週會議在 WG 成員之間進行討論。設計提案概述了我們建立 WG 的背景和動機、從中推導出差距/需求分析的具體使用案例、整體架構和容器政策介面提案。
Kubernetes 中的關鍵政策情境
在工作組集思廣益的多個使用案例中,最終突顯了三個主要情境。
第一個是關於法規/監管合規性,這要求 Kubernetes 叢集必須符合。合規性情境以 GDPR 作為法規範例,討論得出的建議政策架構是設置一個負責稽核的資料政策控制器。
第二個情境是關於容量租賃,或傳統 IaaS 概念中的多租戶配額,它處理當一家大型企業想要將資源控制委託給其各個業務線時,應該如何配置 Kubernetes 叢集,以擁有一個政策驅動的機制來強制執行配額系統。多租戶工作組中正在進行的多租戶控制器設計可能是配額政策控制器的理想執行點,而配額政策控制器反過來可能會參考 kube-arbitrator 以獲得啟發。
最後一個情境是關於叢集政策,它指的是一般的安全和資源導向的政策控制。叢集政策將涉及叢集級別和命名空間級別的政策控制以及強制執行,並且 Policy WG 成員正在開發一個名為 Kubernetes 安全配置文件的提案,以為此使用案例提供 PoC。
Kubernetes 政策架構
基於這三個情境,WG 現在正與 sig-arch、sig-auth 和其他相關專案一起制定三個具體提案。除了針對叢集政策使用案例的 Kubernetes 安全配置文件提案外,我們還有部分針對容量租賃使用案例的調度政策提案,以及處理基於服務需求的親和性和路由級別強制執行的拓撲服務政策提案。
當這些具體提案變得更清晰時,WG 將能夠提供高階 Kubernetes 政策架構,作為成立 Policy WG 的動機的一部分。
邁向雲原生政策驅動架構
政策絕對不僅僅限於 Kubernetes,而且適用於更廣泛的雲原生環境。我們在 Kubernetes Policy WG 中的工作將為建構 CNCF 範圍內的政策架構奠定基礎,並整合 Kubernetes 和各種其他雲原生組件,例如開放政策代理 (Open Policy Agent)、Istio、Envoy、SPIFEE/SPIRE 等。Policy WG 已經與 CNCF SAFE WG(正在形成中)團隊合作,並將致力於更多協調,以確保社群驅動的雲原生政策架構設計。