Tempo estimado até à conclusão: 15 minutos
Operable component owner: RMPerfil de competências: engenheiro de implementação
O recurso OrganizationZonalConfig é a origem que controla as configurações por zona de uma organização.
O recurso OrganizationZonalConfig raiz é necessário para gerir o ciclo de vida do cluster de administrador raiz para atualizações. Tem de criar o recurso com a IaC.
Siga estes passos para criar o recurso OrganizationZonalConfigraiz:
Gere o recurso personalizado
OrganizationZonalConfigraiz: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)Substitua
ROOT_ADMIN_KUBECONFIGpelo caminho para o ficheiro kubeconfig do cluster de administrador raiz.Um exemplo do ficheiro YAML de
OrganizationZonalConfigrecurso personalizado gerado é semelhante ao seguinte exemplo: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: 10TiCopie o recurso personalizado
OrganizationZonalConfigpara o repositório de IaC.cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/Substitua o seguinte:
YAML_FILE_PATH: o caminho para o ficheiro do recurso personalizadoOrganizationZonalConfig.IAC_REPO_PATH: o caminho do repositório de IAC.
Adicione a raiz
OrganizationZonalConfigcomo um recurso da organização raiz.Abra o ficheiro
global-root-kustomization.yaml:vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yamlAdicione o elemento raiz
OrganizationZonalConfigcomo um recurso no final da lista de recursos existente:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
Prepare e confirme o
OrganizationZonalConfigficheiro YAML e oskustomizeficheiros:git add "IAC_REPO_PATH/iac/infrastructure/global" git commitCrie o pedido de união:
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAMESubstitua
BRANCH_NAMEpelo nome escolhido para a ramificação.Aguarde a revisão do código e a união.
Use a configuração do Kubernetes do administrador para o cluster de administrador raiz e obtenha a configuração do Kubernetes do administrador para a API global:
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfigEncaminhe a porta para a API global através da configuração do administrador do Kubernetes para o cluster de administrador principal:
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &Este passo executa o comando de encaminhamento de portas em segundo plano. Se o processo for interrompido inesperadamente, pode reiniciá-lo executando novamente o mesmo comando.
Verifique se o recurso
OrganizationZonalConfigestá disponível no seu ambiente do GDC:kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -AA saída tem de incluir a seguinte entrada, com possíveis diferenças no nome da zona:
NAMESPACE NAME AGE gpc-system rootzone1config 38h