预计完成时间: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