🎯 課程目標____HTMLTAG_68__HTMLTAG_69___了解 ValidatingAdmissionPolicy GA K8s 1.30,在沒有 Webhook 伺服器的情況下編寫 CEL 策略,並了解何時仍需要 OPA/Gatekeeper。
1。傳統准入 Webhook 的問題
基於 Webhook 的准入(OPA/Gatekeeper、Kyverno)有缺點:
-
___HTMLTAG_76__HTMLTAG_77___網路開銷:每個 API 請求都需要對 Webhook 服務進行 HTTP 呼叫
___HTMLTAG_80__HTMLTAG_81___可用性依賴:如果 webhook 服務關閉 → API 請求失敗
___HTMLTAG_84__HTMLTAG_85___操作負擔:必須維護 webhook 部署、TLS 憑證
___HTMLTAG_88__HTMLTAG_89___延遲:增加所有 API 呼叫的延遲
2。 ValidatingAdmissionPolicy — 內置,無 Webhook
K8s 1.30 中的_ValidatingAdmissionPolicy GA 允許使用 CEL(通用表達式語言).
直接在 API 伺服器中編寫驗證策略- 在 API 伺服器進程中運作 — 零網路開銷
- 無須部署額外服務
- 沒有單點故障__HTMLTAG_105___
- 比 webhooks 快 ~10x
3。 CEL 基礎知識
CEL 是一種簡單、安全的表達式語言(無循環、無副作用)。
___程式碼區塊_0___4。驗證錄取政策結構
___程式碼區塊_1___5。驗證AdmissionPolicyBinding
___程式碼區塊_2___6。通用政策
6.1 標籤「最新」的區塊影像
___程式碼區塊_3___6.2 所需的資源限制
___程式碼區塊_4___6.3 需要標籤
___程式碼區塊_5___6.4 限制副本
___程式碼區塊_6___6.5 防止權限升級__HTMLTAG_128___ ___程式碼區塊_7___
7。帶參數的策略
___程式碼區塊_8___8。比較:ValidatingAdmissionPolicy 與 OPA/Gatekeeper
___程式碼區塊_9___ ___HTMLTAG_133__HTMLTAG_134___在下列情況下仍需要 OPA/Gatekeeper::需要變異策略(自動注入欄位)、比 CEL 支援更複雜的策略邏輯,或需要變異 Webhooks.摘要
- ValidatingAdmissionPolicy GA K8s 1.30:內置,無需 Webhook
- CEL:策略邏輯的安全性表達語言
- 需要绑定才能激活:ValidatingAdmissionPolicyBinding
- 操作:拒絕、審核、警告
- 使用參數(ConfigMap)重複使用策略
- OPA/Gatekeeper:仍然需要變異和複雜的 rego 邏輯