Tempo stimato per completare il corso: 15 minuti
Proprietario del componente azionabile: RMProfilo delle competenze: ingegnere del deployment
La risorsa OrganizationZonalConfig è l'origine che controlla le configurazioni per zona di un'organizzazione.
La risorsa OrganizationZonalConfig root è necessaria per gestire il ciclo di vita del cluster di amministrazione root per gli upgrade. Devi creare la risorsa con IaC.
Per creare la risorsa OrganizationZonalConfig principale:
Genera la risorsa personalizzata
OrganizationZonalConfigradice: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)Sostituisci
ROOT_ADMIN_KUBECONFIGcon il percorso del file kubeconfig del cluster di amministrazione principale.Un esempio del file YAML della risorsa personalizzata
OrganizationZonalConfiggenerato è simile al seguente: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 la risorsa personalizzata
OrganizationZonalConfignel repository IaC.cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/Sostituisci quanto segue:
YAML_FILE_PATH: il percorso del file della risorsa personalizzataOrganizationZonalConfig.IAC_REPO_PATH: il percorso del repository IAC.
Aggiungi la radice
OrganizationZonalConfigcome risorsa dell'organizzazione principale.Apri il file
global-root-kustomization.yaml:vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yamlAggiungi la radice
OrganizationZonalConfigcome risorsa alla fine dell'elenco di risorse esistente:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
Esegui lo staging e il commit del file YAML
OrganizationZonalConfige dei filekustomize:git add "IAC_REPO_PATH/iac/infrastructure/global" git commitCrea la richiesta di unione:
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAMESostituisci
BRANCH_NAMEcon il nome scelto per il ramo.Attendi la revisione del codice e l'unione.
Utilizza la configurazione Kubernetes dell'amministratore per il cluster di amministrazione root e recupera la configurazione Kubernetes dell'amministratore per l'API globale:
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfigInoltra la porta per l'API globale utilizzando la configurazione Kubernetes dell'amministratore per il cluster di amministrazione root:
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &Questo passaggio esegue il comando di port forwarding in background. Se la procedura si interrompe in modo imprevisto, puoi riavviarla eseguendo di nuovo lo stesso comando.
Verifica che la risorsa
OrganizationZonalConfigsia disponibile nel tuo ambiente GDC:kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -AL'output deve includere la seguente voce, con possibili differenze nel nome della zona:
NAMESPACE NAME AGE gpc-system rootzone1config 38h