預計完成時間:15 分鐘
可操作元件擁有者:RM技能設定檔:部署工程師
OrganizationZonalConfig 資源是控制機構各區域設定的來源。
您必須擁有根 OrganizationZonalConfig 資源,才能管理根管理員叢集的生命週期以進行升級。您必須使用 IaC 建立資源。
請按照下列步驟建立根 OrganizationZonalConfig 資源:
產生根層級
OrganizationZonalConfig自訂資源:get_capacity(){ CAPACITY="$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get organizations -n gpc-system root -o json | jq -r ".spec.resourceCapacities.\"$1\" | to_entries | map(\"\(.key)=\(.value)\") | join(\",\")")"; echo $([[ -z ${CAPACITY} ]] || echo "$2=${CAPACITY} "); } VERSION=$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get organization -n gpc-system root -o json | jq .spec.version) ZONE=$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get controlplane cp -n mz-system -ojsonpath='{.spec.zone}') gdcloud organizations zonal-configs create --name=root --zones=${ZONE?} --version=${VERSION?} $(get_capacity adminServers --admin-server) $(get_capacity storage --storage-sku)將
ROOT_ADMIN_KUBECONFIG替換為根管理員叢集 kubeconfig 檔案的路徑。產生的
OrganizationZonalConfig自訂資源 YAML 檔案範例如下:apiVersion: resourcemanager.global.private.gdc.goog/v1alpha1 kind: OrganizationZonalConfig metadata: namespace: gpc-system name: root-zone1-config spec: organizationRef: name: root zone: zone1 version: "1.14.0-gdch.1594" capacities: adminServers: o1-highmem1-40-gdc-metal: 3 storage: object-nearline: 10Ti object-standard: 10Ti將
OrganizationZonalConfig自訂資源複製到 IaC 存放區。cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/更改下列內容:
YAML_FILE_PATH:OrganizationZonalConfig自訂資源檔案的路徑。IAC_REPO_PATH:IAC 存放區路徑。
將根
OrganizationZonalConfig新增為根機構單位的資源。開啟
global-root-kustomization.yaml檔案:vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yaml在現有資源清單結尾新增根
OrganizationZonalConfig做為資源:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
暫存並提交
OrganizationZonalConfigYAML 檔案和kustomize檔案:git add "IAC_REPO_PATH/iac/infrastructure/global" git commit建立合併要求:
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAME將
BRANCH_NAME替換成您選擇的分支名稱。等待程式碼審查和合併。
使用根管理員叢的管理員 Kubernetes 設定,並擷取全域 API 的管理員 Kubernetes 設定:
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfig使用根管理員叢集的管理員 Kubernetes 設定,轉送全域 API 的通訊埠:
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &這個步驟會在背景執行連接埠轉送指令。如果程序意外停止,您可以重新執行相同指令來重新啟動程序。
確認
OrganizationZonalConfig資源可在 GDC 環境中使用:kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -A輸出內容必須包含下列項目,但區域名稱可能有所不同:
NAMESPACE NAME AGE gpc-system rootzone1config 38h