本文已超過一年。較舊的文章可能包含過時的內容。請檢查頁面中的資訊自發布以來是否已變得不正確。

Kubernetes v1.25:Pod 安全性許可控制器進入穩定版

Kubernetes v1.25 的發布標誌著 Kubernetes 開箱即用 Pod 安全控制的一個重要里程碑:Pod 安全准入 (PSA) 已升級為穩定版,而 Pod 安全策略 (PSP) 已被移除。PSP 已在 Kubernetes v1.21 中棄用,並且在 Kubernetes v1.25 及更高版本中不再起作用。

Pod 安全准入控制器取代了 PodSecurityPolicy,透過簡單地將標籤添加到命名空間,即可更輕鬆地強制執行預定義的 Pod 安全標準。Pod 安全標準由 K8s 社群維護,這表示每當引入新的、影響安全性的 Kubernetes 功能時,您都會自動獲得更新的安全策略。

自 Beta 版以來的新功能?

自 Kubernetes v1.23 的 Beta 版以來,Pod 安全准入沒有太大變化。重點一直放在改善使用者體驗,同時繼續保持高品質標準。

改善的違規訊息

我們改進了違規訊息,讓您獲得 更少的重複訊息。例如,當 Baseline 和 Restricted 策略檢查相同的能力時,不再顯示以下訊息

pods "admin-pod" is forbidden: violates PodSecurity "restricted:latest": non-default capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add), unrestricted capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add)

您會收到此訊息

pods "admin-pod" is forbidden: violates PodSecurity "restricted:latest": unrestricted capabilities (container "admin" must not include "SYS_ADMIN" in securityContext.capabilities.add)

改善的命名空間警告

當您修改命名空間上的 enforce Pod 安全標籤時,Pod 安全准入控制器會檢查所有現有的 Pod 是否有違規情況,如果任何 Pod 不合規,則會顯示 警告。這些 警告現在會針對具有相同違規情況的 Pod 進行彙總,使具有許多副本的大型命名空間更易於管理。例如

Warning: frontend-h23gf2: allowPrivilegeEscalation != false
Warning: myjob-g342hj (and 6 other pods): host namespaces, allowPrivilegeEscalation != false Warning: backend-j23h42 (and 1 other pod): non-default capabilities, unrestricted capabilities

此外,當您將非特權標籤應用於已配置為豁免的命名空間時,您現在會收到警告,提醒您注意此事實

Warning: namespace 'kube-system' is exempt from Pod Security, and the policy (enforce=baseline:latest) will be ignored

Pod 安全標準的變更

Pod 安全標準(Pod 安全准入強制執行)已更新,支援新的 Pod OS 欄位。在 v1.25 及更高版本中,如果您使用 Restricted 策略,如果您明確地將 Pod 的 .spec.os.name 欄位設定為 windows,則不再需要以下特定於 Linux 的限制

  • Seccomp - Pod 和容器安全上下文的 seccompProfile.type 欄位
  • 權限提升 - 容器安全上下文的 allowPrivilegeEscalation 欄位
  • 功能 - 在容器的 capabilities 欄位中刪除 ALL 功能的要求

在 Kubernetes v1.23 及更早版本中,kubelet 不會強制執行 Pod OS 欄位。如果您的叢集包含執行 v1.23 或更舊版本 kubelet 的節點,您應該明確地將 Restricted 策略固定到 v1.25 之前的版本。

從 PodSecurityPolicy 遷移到 Pod 安全准入控制器

有關從 PodSecurityPolicy 遷移到 Pod 安全准入控制器的說明,以及有關選擇遷移策略的幫助,請參閱遷移指南。我們還在開發一個名為 pspmigrator 的工具,以自動化部分遷移過程。

我們將在即將到來的 KubeCon 2022 NA 演講 從 Pod 安全策略遷移 中更詳細地討論 PSP 遷移。使用 KubeCon NA 行程表 以了解更多資訊。