檢視次數:
設定檔適用性:等級 1 - 主節點
為每個控制器使用單獨的服務帳戶憑證。
控制器管理器在 kube-system 命名空間中為每個控制器創建一個服務帳戶,為其生成憑證,並使用該服務帳戶憑證為每個控制器循環構建一個專用的 API 客戶端。將 --use-service-account-credentials 設置為 true 時,控制器管理器中的每個控制循環都將使用單獨的服務帳戶憑證運行。當與 RBAC 結合使用時,這確保了控制循環以執行其預定任務所需的最低必要的權限運行。
注意
注意
預設情況下,--use-service-account-credentials 設定為 false

影響

無論為叢集配置了哪種授權者,它都必須授予服務帳戶足夠的權限以執行其預定任務。使用 RBAC 授權者時,這些角色會自動在 kube-system 命名空間中創建並綁定到相應的服務帳戶,並在啟動時自動調整為默認角色和角色綁定。
如果使用其他授權方法(ABAC、Webhook 等),叢集部署者負責授予服務帳戶適當的權限(所需的權限可以通過檢查 controller-roles.yamlcontroller-role-bindings.yaml 文件中的 RBAC 角色來查看)。

稽核

在控制平面節點上執行以下命令:
ps -ef | grep kube-controller-manager
驗證 --use-service-account-credentials 參數是否設置為 true

補救措施

編輯控制平面節點上的 Controller Manager pod 規範檔案 /etc/kubernetes/manifests/kube-controller-manager.yaml 以設定以下參數。
--use-service-account-credentials=true