Temps estimé pour compléter l'atelier : 15 minutes
Propriétaire du composant opérationnel : RMProfil de compétences : ingénieur de déploiement
La ressource OrganizationZonalConfig est la source qui contrôle les configurations par zone d'une organisation.
La ressource OrganizationZonalConfig racine est requise pour gérer le cycle de vie du cluster d'administrateur racine pour les mises à niveau. Vous devez créer la ressource avec l'IaC.
Pour créer la ressource racine OrganizationZonalConfig :
Générez la ressource personnalisée
OrganizationZonalConfigracine :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)Remplacez
ROOT_ADMIN_KUBECONFIGpar le chemin d'accès au fichier kubeconfig du cluster d'administrateur racine.Voici un exemple de fichier YAML de ressource personnalisée
OrganizationZonalConfiggénéré :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: 10TiCopiez la ressource personnalisée
OrganizationZonalConfigdans le dépôt IaC.cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/Remplacez les éléments suivants :
YAML_FILE_PATH: chemin d'accès au fichier de la ressource personnaliséeOrganizationZonalConfig.IAC_REPO_PATH: chemin d'accès au dépôt IAC.
Ajoutez le
OrganizationZonalConfigracine en tant que ressource de l'organisation racine.Ouvrez le fichier
global-root-kustomization.yaml:vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yamlAjoutez la racine
OrganizationZonalConfigen tant que ressource à la fin de la liste des ressources existante :apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
Organisez et validez le fichier YAML
OrganizationZonalConfiget les fichierskustomize:git add "IAC_REPO_PATH/iac/infrastructure/global" git commitCréez la demande de fusion :
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAMERemplacez
BRANCH_NAMEpar le nom choisi pour votre branche.Attendez que le code soit examiné et fusionné.
Utilisez la configuration Kubernetes de l'administrateur pour le cluster d'administrateur racine et récupérez la configuration Kubernetes de l'administrateur pour l'API globale :
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfigTransférez le port de l'API globale à l'aide de la configuration Kubernetes de l'administrateur pour le cluster d'administrateur racine :
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &Cette étape exécute la commande de transfert de port en arrière-plan. Si le processus s'arrête de manière inattendue, vous pouvez le redémarrer en exécutant à nouveau la même commande.
Vérifiez que la ressource
OrganizationZonalConfigest disponible dans votre environnement GDC :kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -ALe résultat doit inclure l'entrée suivante, avec d'éventuelles différences dans le nom de la zone :
NAMESPACE NAME AGE gpc-system rootzone1config 38h