本頁說明如何從 ConfigManagement
API 遷移至 PolicyController
API,以管理 Policy Controller。PolicyController
API 提供相同的 Policy Controller 安裝和管理功能。
2025 年 4 月起,configManagement
API 1.21 以上版本將不再支援安裝或更新 Policy Controller。如果嘗試使用這種方法升級或安裝 Policy Controller,系統會顯示錯誤訊息,且作業會失敗。請按照本頁的操作說明進行遷移,以便繼續使用 Policy Controller。
完整遷移的步驟會因您安裝 Policy Controller 時使用的方法而異。
如果您使用以 gcloud container fleet policycontroller
開頭的 gcloud CLI PolicyController
指令,就表示您已在使用 PolicyController
API。因此你不必採取任何行動。否則,請參閱您用來安裝 Policy Controller 的方法的操作說明:
config management
如果您使用開頭為 gcloud alpha container fleet config-management
的 gcloud CLI 指令,請改用開頭為 gcloud container fleet policycontroller
的 gcloud CLI Policy Controller 指令。如需指令清單,請參閱 gcloud CLI 說明文件。此外,您不必採取任何其他行動。
如果 Google Cloud CLI apply spec
檔案含有 policyController
區塊,請移除該區塊,確保與 Config Sync 相容。
Terraform
如果您使用 Terraform 資源,透過功能名稱 "configmanagement"
設定 Policy Controller,請完成下列步驟,改用功能名稱為 "policycontroller"
的 Terraform 資源:
將現有的 Terraform 檔案複製到新檔案,或更新 Terraform 檔案,然後新增下列內容:
resource "google_gke_hub_feature" "feature" { name = "policycontroller" location = "global" } resource "google_gke_hub_feature_membership" "feature_member" { feature = google_gke_hub_feature.feature.name # "policycontroller" location = "global" membership = MEMBERSHIP_NAME project = PROJECT_ID policycontroller { policy_controller_hub_config { install_spec = "INSTALL_SPEC_ENABLED" } } }
更改下列內容:
MEMBERSHIP
:已安裝 Policy Controller 的註冊叢集成員名稱。PROJECT_ID
:您的專案 ID。
從現有 Terraform 資源中移除
"policy_controller"
區塊。 您可以在"configmanagement"
區塊下方找到該區塊。 如果您只使用資源管理 Policy Controller,可以移除整個configmanagement
區塊。如果您使用資源管理 Config Sync,請務必只移除 Policy Controller 區塊。舉例來說,您的configmanagement
區塊可能類似下列內容:resource "google_gke_hub_feature_membership" "feature_member" { provider = google-beta location = "global" feature = "configmanagement" membership = google_gke_hub_membership.membership.membership_id configmanagement { version = "1.8.0" config_sync { source_format = "unstructured" git { } } # if you're still using the config_sync block, delete only the policy_controller block policy_controller { enabled = true template_library_installed = true referential_rules_enabled = true } } }
完成下列任一步驟,匯入 Policy Controller 會員功能設定:
執行下列指令:
terraform import "google_gke_hub_feature.feature" "projects/PROJECT_ID/locations/global/features/policycontroller" terraform import "google_gke_hub_feature_membership.feature_member" "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME"
在 Terraform 資源中新增匯入區塊:
import { to = google_gke_hub_feature_membership.feature_member id = "projects/PROJECT_ID/locations/global/features/policycontroller/membershipId/MEMBERSHIP_NAME" } import { to = google_gke_hub_feature.feature id = "projects/PROJECT_ID/locations/global/features/policycontroller" }
套用 Policy Controller 設定:
terraform apply
選用:匯入完成後,您可以從 Terraform 資源中移除匯入區塊。或者,您也可以將匯入區塊保留在設定中,做為資源來源的記錄。
Config Connector
如要停止使用 configmanagement.policyController
規格,請完成下列步驟:
使用必要的
policycontroller
欄位建立新的GKEHubFeatureMembership
規格。請確認已將resourceID
欄位設為policyController
。如果現有
GKEHubFeatureMembership
使用spec.configmanagement.policyController
欄位,請從configmanagement
規格中移除所有policycontroller
欄位。
kubectl
如果您使用 kubectl
指令透過 ConfigManagement
物件管理 Policy Controller,請改用以 gcloud container fleet policycontroller
開頭的 gcloud CLI Policy Controller 指令。此外,您不必採取任何其他行動。
如果 ConfigManagement
物件有 policyController
區塊,請移除該區塊,以便與 Config Sync 相容。
如要進一步瞭解 Policy Controller API,請參閱下列資源:
- 使用
gcloud container fleet policycontroller
指令安裝 Policy Controller - 參閱 Config Connector
GKEHubFeature
參考說明文件 - 參閱 Terraform
google_gke_hub_feature
參考說明文件