Chuyển đến nội dung chính

第 24 課:驗證入學政策 — GA K8S 1.30

K8s 1.30 的 ValidatingAdmissionPolicy GA — 使用 CEL(通用表達式語言)編寫策略,無需部署 Webhook 伺服器。與 OPA/Gatekeeper 進行比較。模式:阻止最新標籤、強制標籤、驗證資源限制。

🔒 DevSecOps — 第 24 課 第 24 課:驗證入學政策 — GA K8S 1.30

KUBERNETES:從基礎到進階

模組 6:安全性

xdev.asia

🎯 課程目標____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 邏輯