Tiempo estimado para completarlo: 15 minutos
Propietario del componente accionable: RMPerfil de habilidades: ingeniero de implementaciones
El recurso OrganizationZonalConfig es la fuente que controla las configuraciones por zona de una organización.
El recurso raíz OrganizationZonalConfig es necesario para gestionar el ciclo de vida del clúster de administrador raíz en las actualizaciones. Debes crear el recurso con IaC.
Sigue estos pasos para crear el recurso raíz OrganizationZonalConfig:
Genera el recurso personalizado raíz
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)Sustituye
ROOT_ADMIN_KUBECONFIGpor la ruta al archivo kubeconfig del clúster de administrador raíz.Un ejemplo del archivo YAML de recursos personalizados
OrganizationZonalConfiggenerado es similar al siguiente: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: 10TiCopia el recurso personalizado
OrganizationZonalConfigen el repositorio de IaC.cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/Haz los cambios siguientes:
YAML_FILE_PATH: la ruta al archivo del recurso personalizadoOrganizationZonalConfig.IAC_REPO_PATH: la ruta del repositorio de IAC.
Añade la raíz
OrganizationZonalConfigcomo recurso de la organización raíz.Abre el archivo
global-root-kustomization.yaml:vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yamlAñade la raíz
OrganizationZonalConfigcomo recurso al final de la lista de recursos:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
Añade y confirma el archivo
OrganizationZonalConfigYAML y los archivoskustomize:git add "IAC_REPO_PATH/iac/infrastructure/global" git commitCrea la solicitud de combinación:
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAMESustituye
BRANCH_NAMEpor el nombre que hayas elegido para tu rama.Espera a que se revise el código y se combine.
Usa la configuración de Kubernetes del administrador para el clúster de administrador raíz y recupera la configuración de Kubernetes del administrador para la API global:
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfigReenvía el puerto de la API global mediante la configuración de administrador de Kubernetes para el clúster de administrador raíz:
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &En este paso se ejecuta el comando de reenvío de puertos en segundo plano. Si el proceso se detiene de forma inesperada, puedes reiniciarlo volviendo a ejecutar el mismo comando.
Verifica que el recurso
OrganizationZonalConfigesté disponible en tu entorno de GDC:kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -AEl resultado debe incluir la siguiente entrada, con posibles diferencias en el nombre de la zona:
NAMESPACE NAME AGE gpc-system rootzone1config 38h