Esta página mostra como criar um cluster de administrador para o Google Distributed Cloud. O cluster de administrador faz a gestão dos clusters de utilizadores que executam as suas cargas de trabalho. Se quiser usar domínios de topologia, consulte o artigo Crie um cluster de administrador para utilização com domínios de topologia.
Esta página destina-se a administradores, arquitetos e operadores que configuram, monitorizam e gerem a infraestrutura técnica. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud
Para mais detalhes sobre o cluster de administrador, consulte a vista geral da instalação.
Na versão 1.33 e superior, todos os novos clusters são criados como clusters avançados. Certifique-se de que revê as diferenças quando executa clusters avançados.
Antes de começar
Certifique-se de que configurou e consegue iniciar sessão na sua estação de trabalho de administrador, conforme descrito no artigo Crie uma estação de trabalho de administrador.
Certifique-se de que os ficheiros de chaves JSON das contas de serviço estão na sua estação de trabalho de administrador.
Reveja o documento de planeamento de endereços IP. Certifique-se de que tem endereços IP suficientes disponíveis para os três nós do plano de controlo e um VIP do plano de controlo. Se planeia criar quaisquer clusters de utilizadores de kubeception, tem de ter endereços IP suficientes disponíveis para os nós do plano de controlo desses clusters de utilizadores.
Reveja a vista geral do balanceamento de carga e volte a analisar a sua decisão sobre o tipo de balanceador de carga que quer usar. Para equilibradores de carga manuais, tem de configurar o equilibrador de carga antes de criar o cluster de administrador.
Se estiver a usar
gkectl
para criar o cluster de administrador, decida se quer usar um registo público ou privado para os componentes do Google Distributed Cloud. Para informações sobre a utilização de um registo Docker privado, consulteprivateRegistry
. Nem o Terraform nem a Google Cloud consola suportam a utilização de um registo Docker privado para componentes do sistema.Decida que tipo de sistema operativo quer executar nos nós do cluster de administrador.
Se a sua organização exigir que o tráfego de saída passe por um servidor proxy, certifique-se de que adiciona à lista de autorizações as APIs necessárias e o endereço do Artifact Registry.
Na versão 1.29 e superior, as verificações prévias do lado do servidor estão ativadas por predefinição. As verificações prévias do lado do servidor requerem regras de firewall adicionais. Em Regras de firewall para clusters de administrador, pesquise "Verificações prévias" e certifique-se de que todas as regras de firewall necessárias estão configuradas. As verificações prévias do lado do servidor são executadas no cluster de arranque, em vez de serem executadas localmente na estação de trabalho do administrador.
Crie um cluster de administrador com a ferramenta da sua escolha
Esta secção fornece passos para criar um cluster de administrador através do gkectl
Terraform e da Google Cloud consola. Para obter informações que ajudam a escolher uma ferramenta e limitações com algumas ferramentas, consulte o artigo Escolha uma ferramenta para gerir o ciclo de vida do cluster.
gkectl
Vista geral do procedimento
Seguem-se os principais passos envolvidos na criação de um cluster de administração:
- Preencha os ficheiros de configuração.
- Especifique os detalhes do novo cluster de administrador concluindo e validando um ficheiro de configuração do cluster de administrador, um ficheiro de configuração de credenciais e, possivelmente, um ficheiro de bloco de IPs.
- Importe imagens do SO para o vSphere e envie imagens de contentores para o registo privado, se aplicável.
- Corrida
gkectl prepare
.
- Crie um cluster de administrador.
- Use
gkectl
para criar um novo cluster de administrador, conforme especificado nos ficheiros de configuração concluídos. Quando o Google Distributed Cloud cria um cluster de administrador, implementa um cluster Kubernetes in Docker (kind) para alojar temporariamente os controladores Kubernetes necessários para criar o cluster de administrador. Este cluster transitório é denominado cluster de arranque. Os clusters de utilizadores são criados e atualizados pelo respetivo administrador de gestão sem usar um cluster de arranque.
- Verifique se o cluster de administração está em execução.
- Use
kubectl
para ver os nós do cluster.
No final deste procedimento, terá um cluster de administrador em execução que pode usar para criar e gerir clusters de utilizadores.
Se usar os VPC Service Controls, pode ver erros quando executar alguns comandos gkectl
, como "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Para evitar estes erros, adicione o parâmetro --skip-validation-gcp
aos seus comandos.
Preencha o ficheiro de configuração
Certifique-se de que a estação de trabalho do administrador tem a versão necessária do
gkectl
. Normalmente, usa a mesma versão dogkectl
que vai ser usada quando criar o cluster. Especifica a versão do cluster no campogkeOnPremVersion
no ficheiro de configuração do cluster. As seguintes regras de versão são aplicadas durante a criação do cluster:A versão secundária
gkectl
não pode ser inferior à versão secundária do cluster. Por exemplo, não é permitido criar um cluster 1.30 com a versão 1.29 dogkectl
. As versões de patch não são importantes. Por exemplo, pode usar a versão 1.29.0-gke.1456 para criar um cluster com uma versão de patch superior, como 1.29.1000-gke.94.gkectl
A versão secundária
gkectl
não pode ser mais de duas versões secundárias superior à versão do cluster. Por exemplo, se estiver a criar um cluster 1.28, a versãogkectl
pode ser 1.29 ou 1.30. No entanto, não pode usar a versão 1.31 dogkectl
porque é três versões secundárias superior à versão do cluster.
Se necessário, consulte Transferir
gkectl
para obter uma versão suportada dogkectl
.
Se usou o gkeadm
para criar a sua estação de trabalho de administrador, este gerou um ficheiro de configuração
denominado admin-cluster.yaml
.
Se não usou gkeadm
para criar a estação de trabalho de administrador, gere o ficheiro
admin-cluster.yaml
executando este comando na estação de trabalho de administrador:
gkectl create-config admin
Este ficheiro de configuração destina-se à criação do cluster de administrador.
Familiarize-se com o ficheiro de configuração analisando o documento ficheiro de configuração do cluster de administrador. Recomendamos que mantenha este documento aberto num separador ou numa janela separada, porque vai consultá-lo à medida que conclui os passos seguintes.
name
Se quiser especificar um nome para o cluster de administrador, preencha o campo name
.
bundlePath
O pacote é um ficheiro comprimido que contém componentes de cluster. Está incluído na estação de trabalho de administrador. Este campo já está preenchido.
vCenter
Os campos nesta secção já estão preenchidos com os valores que introduziu quando criou a sua estação de trabalho de administrador.
enableAdvancedCluster
Na versão 1.31, se quiser ativar a funcionalidade de cluster avançada, defina
enableAdvancedCluster
como true
.
Tenha em atenção as seguintes diferenças entre as versões:
Na versão 1.31, a funcionalidade de cluster avançada está em pré-visualização:
Só pode ativar o cluster avançado no momento da criação do cluster para novos clusters 1.31.
Depois de ativar o cluster avançado, não pode atualizar o cluster para a versão 1.32. Ative o cluster avançado apenas num ambiente de teste.
Na versão 1.32, a funcionalidade de cluster avançada está em DG.
Por predefinição, os clusters de administrador são criados como clusters avançados. Tem de definir explicitamente
enableAdvancedCluster
comofalse
se quiser criar um cluster não avançado.Para clusters com a funcionalidade de clusters avançados ativada, as atualizações de clusters são suportadas.
Na versão 1.33 e superior, todos os clusters são criados como clusters avançados. Se definir
enableAdvancedCluster
comofalse
, a criação do cluster falha.
network
Preencha a secção
network.controlPlaneIPBlock
e a secção
network.hostConfig
. Definir também
adminMaster.replicas
como 3
.
Os campos network.podCIDR e network.serviceCIDR têm valores pré-preenchidos que pode deixar inalterados, a menos que entrem em conflito com endereços já usados na sua rede. O Kubernetes usa estes intervalos para atribuir endereços IP a pods e serviços no seu cluster.
Preencha os restantes campos na secção de rede do ficheiro de configuração conforme necessário.
loadBalancer
Reserve um IP virtual para o servidor da API Kubernetes do cluster de administrador. Indique
o seu VIP como o valor de
loadBalancer.vips.controlPlaneVIP
Para mais informações, consulte o artigo VIPs na sub-rede do cluster de administrador.
Decida que tipo de equilíbrio de carga quer usar. As opções são as seguintes:
Balanceamento de carga integrado do MetalLB. Definir
loadBalancer.kind
para"MetalLB"
.Balanceamento de carga manual. Defina
loadBalancer.kind
como"ManualLB"
e remova a secçãomanualLB
.
Para mais informações sobre as opções de equilíbrio de carga, consulte o artigo Vista geral do equilíbrio de carga.
antiAffinityGroups
Defina antiAffinityGroups.enabled
como true
ou false
de acordo com a sua preferência.
Use este campo para especificar se quer que o Google Distributed Cloud crie regras de anti-afinidade do Distributed Resource Scheduler (DRS) da VMware para os nós do cluster de administrador, o que faz com que sejam distribuídos por, pelo menos, três anfitriões físicos no seu centro de dados.
adminMaster
Se quiser especificar a CPU e a memória para os nós do plano de controlo do cluster de administrador, preencha os campos cpus
e memoryMB
na secção adminMaster
.
Os clusters de administrador têm de ter três nós do plano de controlo. Defina o campo replicas
na secção adminMaster
como 3
.
proxy
Se a rede que vai ter os nós do cluster de administrador estiver atrás de um servidor proxy, preencha a secção proxy
.
privateRegistry
Decida onde quer manter as imagens de contentores para os componentes do Google Distributed Cloud. As opções são as seguintes:
Artifact Registry
O seu próprio registo Docker privado.
Se quiser usar o seu próprio registo privado, preencha a secção
privateRegistry
.
componentAccessServiceAccountKeyPath
O Google Distributed Cloud usa a sua conta de serviço de acesso aos componentes para transferir componentes do cluster do Artifact Registry. Este campo contém o caminho de um ficheiro de chave JSON para a sua conta de serviço de acesso a componentes.
Este campo já está preenchido.
gkeConnect
Registe o cluster de administrador
numa Google Cloud frota preenchendo a secção
gkeConnect
. Se incluir as secções stackdriver
e cloudAuditLogging
no ficheiro de configuração, o ID em gkeConnect.projectID
tem de ser igual ao ID definido em stackdriver.projectID
e cloudAuditLogging.projectID
. Se os IDs dos projetos não forem iguais, a criação do cluster falha.
Na versão 1.28 e posteriores, pode especificar opcionalmente uma região onde os serviços Fleet e Connect são executados em gkeConnect.location
. Se não incluir este campo,
o cluster usa as instâncias globais destes serviços.
Se incluir gkeConnect.location
, a região especificada tem de ser igual à região configurada em cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
e gkeOnPremAPI.location
. Se as regiões não forem iguais, a criação do cluster falha.
gkeOnPremAPI
Se a API GKE On-Prem estiver ativada no seu
Google Cloud projeto, todos os clusters no projeto são
inscritos na API GKE On-Prem
automaticamente na região configurada em stackdriver.clusterLocation
.
A região gkeOnPremAPI.location
tem de ser igual à região especificada em
cloudAuditLogging.clusterLocation
, gkeConnect.location
e
stackdriver.clusterLocation
. Se as regiões não forem as mesmas, a criação do cluster falha.
Se quiser inscrever todos os clusters no projeto na API GKE On-Prem, certifique-se de que executa os passos em Antes de começar para ativar e usar a API GKE On-Prem no projeto.
Se não quiser inscrever o cluster na API GKE On-Prem, inclua esta secção e defina
gkeOnPremAPI.enabled
comofalse
. Se não quiser inscrever nenhum cluster no projeto, desativegkeonprem.googleapis.com
(o nome do serviço para a API GKE On-Prem) no projeto. Para ver instruções, consulte o artigo Desativar serviços.
stackdriver
Se quiser ativar o
Cloud Logging e o Cloud Monitoring
para o seu cluster, preencha a secção
stackdriver
.
Esta secção é obrigatória por predefinição. Ou seja, se não preencher esta secção, tem de incluir a flag --skip-validation-stackdriver
quando executar gkectl create admin
.
Tenha em atenção os seguintes requisitos:
Se ativar o cluster avançado, tem de especificar o mesmo caminho em
cloudAuditLogging.serviceAccountKeyPath
estackdriver.serviceAccountKeyPath
.O ID em
stackdriver.projectID
tem de ser igual ao ID emgkeConnect.projectID
ecloudAuditLogging.projectID
.A Google Cloud região definida em
stackdriver.clusterLocation
tem de ser igual à região definida emcloudAuditLogging.clusterLocation
egkeConnect.location
. Além disso, segkeOnPremAPI.enabled
fortrue
, tem de definir a mesma região emgkeOnPremAPI.location
.
Se os IDs dos projetos e as regiões não forem os mesmos, a criação do cluster falha.
cloudAuditLogging
Se quiser integrar os registos de auditoria do servidor da API Kubernetes do seu cluster com os registos de auditoria na nuvem, preencha a secção cloudAuditLogging
.
Tenha em atenção os seguintes requisitos:
Se ativar o cluster avançado, tem de especificar o mesmo caminho em
cloudAuditLogging.serviceAccountKeyPath
estackdriver.serviceAccountKeyPath
.O ID em
cloudAuditLogging.projectID
tem de ser igual ao ID emgkeConnect.projectID
estackdriver.projectID
.A Google Cloud região definida em
cloudAuditLogging.clusterLocation
tem de ser igual à região definida emstackdriver.clusterLocation
egkeConnect.location
(se o campo estiver incluído no seu ficheiro de configuração). Além disso, segkeOnPremAPI.enabled
fortrue
, tem de definir a mesma região emgkeOnPremAPI.location
.
Se os IDs dos projetos e as regiões não forem os mesmos, a criação do cluster falha.
clusterBackup
Se quiser ativar a
cópia de segurança do cluster de administração,
defina
clusterBackup.datastore
para o
repositório de dados do vSphere
onde quer guardar as cópias de segurança do cluster.
Se ativar o cluster avançado, remova esta secção. A criação de uma cópia de segurança do cluster de administrador num arquivo de dados do vSphere não é suportada.
autoRepair
Se quiser
ativar a reparação automática de nós
para o seu cluster de administrador, defina
autoRepair.enabled
como true
.
secretsEncryption
Se quiser ativar a
encriptação de segredos sempre ativa,
preencha a secção
secretsEncryption
.
Se ativar o cluster avançado, defina secretsEncryption.enabled
como false
.
A encriptação de segredos sempre ativa não é suportada.
osImageType
Decida que tipo de imagem do SO quer usar para os nós do cluster de administrador e preencha a secção osImageType
em conformidade.
Se ativar o cluster avançado, defina osImageType
como ubuntu_cgroupv2
ou ubuntu_containerd
.
Exemplo de ficheiros de configuração preenchidos
Segue-se um exemplo de um ficheiro de configuração do cluster de administrador preenchido. A configuração ativa algumas das funcionalidades disponíveis, mas não todas.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz" vCenter: address: "vc01.example" datacenter: "vc-01" cluster: "vc01-workloads-1" resourcePool: "vc-01-pool-1" datastore: "vc01-datastore-1" caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem"" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "MetalLB" antiAffinityGroups: enabled: true adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 componentAccessServiceAccountKeyPath: "sa-key.json" gkeConnect: projectID: "my-project-123" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" disableVsphereResourceMetrics: false clusterBackup: datastore: "vc-01-datastore-bu" autoRepair: enabled: true osImageType: "ubuntu_containerd"
Valide o ficheiro de configuração
Depois de preencher o ficheiro de configuração do cluster de administrador, execute
gkectl check-config
para verificar se o ficheiro é válido:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
Substitua ADMIN_CLUSTER_CONFIG pelo caminho do ficheiro de configuração do cluster de administrador.
Se o comando devolver mensagens de falha, corrija os problemas e valide o ficheiro novamente.
Se quiser ignorar as validações mais demoradas, transmita a flag --fast
.
Para ignorar validações individuais, use as flags --skip-validation-xxx
. Para saber mais acerca do comando check-config
, consulte o artigo Executar verificações pré-publicação.
Obtenha imagens do SO
Execute gkectl prepare
para inicializar o seu ambiente vSphere:
gkectl prepare --config ADMIN_CLUSTER_CONFIG
O comando gkectl prepare
executa as seguintes tarefas preparatórias:
Importa imagens do SO para o vSphere e marca-as como modelos de VMs.
Se estiver a usar um registo Docker privado, envia as imagens de contentores para o seu registo.
Opcionalmente, valida as atestações de compilação das imagens de contentores, verificando assim que as imagens foram criadas e assinadas pela Google e estão prontas para implementação.
Crie o cluster de administrador
Crie o cluster de administrador:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Se usar os VPC Service Controls, pode ver erros quando executar alguns comandos gkectl
, como "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Para evitar estes erros, adicione o parâmetro --skip-validation-gcp
aos seus comandos.
Retome a criação do cluster de administrador após uma falha
Se a criação do cluster de administrador falhar ou for cancelada, pode executar novamente o comando create
:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Localize o ficheiro kubeconfig do cluster de administrador
O comando gkectl create admin
cria um ficheiro kubeconfig denominado
kubeconfig
no diretório atual. Vai precisar deste ficheiro kubeconfig mais tarde para interagir com o cluster de administrador.
O ficheiro kubeconfig contém o nome do cluster de administrador. Para ver o nome do cluster, pode executar o seguinte comando:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
O resultado mostra o nome do cluster. Por exemplo:
NAME gke-admin-tqk8x
Se quiser, pode alterar o nome e a localização do ficheiro kubeconfig.
Faça a gestão do ficheiro checkpoint.yaml
Esta secção aplica-se apenas a clusters de administrador sem HA. O ficheiro checkpoint.yaml
não é usado na criação de clusters de administrador de HA.
Quando executou o comando gkectl create admin
para criar o cluster de administrador, este criou um ficheiro de ponto de verificação na mesma pasta de armazenamento de dados que o disco de dados do cluster de administrador. Por predefinição, este ficheiro tem o nome
DATA_DISK_NAME‑checkpoint.yaml
. Se o comprimento de
DATA_DISK_NAME for igual ou superior a 245 carateres, devido
ao limite do vSphere no comprimento do nome do ficheiro, o nome é
DATA_DISK_NAME.yaml
.
Este ficheiro contém o estado e as credenciais do cluster de administrador e é usado para futuras atualizações. Não elimine este ficheiro, a menos que esteja a seguir o processo de eliminação de um cluster de administrador.
Se ativou a encriptação de VMs na sua instância do vCenter Server, tem de ter o privilégio Cryptographic operations.Direct Access antes de criar ou atualizar o cluster de administrador. Caso contrário, o ponto de verificação não é carregado. Se não conseguir obter este privilégio, pode desativar o carregamento do ficheiro de ponto de verificação através do sinalizador oculto --disable-checkpoint
quando executar um comando relevante.
O ficheiro checkpoint.yaml
é atualizado automaticamente quando executa o comando gkectl upgrade admin
ou quando executa um comando gkectl update
que afeta o cluster de administrador.
Verifique se o cluster de administrador está em execução
Verifique se o cluster de administração está em execução:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Substitua ADMIN_CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster de administrador.
O resultado mostra os nós do cluster de administração. Por exemplo:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
Faça uma cópia de segurança dos ficheiros
Recomendamos que faça uma cópia de segurança do ficheiro kubeconfig do cluster de administrador. Ou seja, copie o ficheiro kubeconfig da estação de trabalho do administrador para outra localização. Em seguida, se perder o acesso à estação de trabalho de administrador ou se o ficheiro kubeconfig na estação de trabalho de administrador for eliminado acidentalmente, continua a ter acesso ao cluster de administrador.
Também recomendamos que faça uma cópia de segurança da chave SSH privada do cluster de administrador. Em seguida, se perder o acesso ao cluster de administrador, pode continuar a usar o SSH para se ligar aos nós do cluster de administrador. Isto permite-lhe resolver problemas e investigar problemas de conetividade com o cluster de administrador.
Extraia a chave SSH do cluster de administrador para um ficheiro com o nome
admin-cluster-ssh-key
:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
Agora, pode fazer uma cópia de segurança do admin-cluster-ssh-key
noutra localização à sua escolha.
Políticas de RBAC
Quando preenche a secção gkeConnect
no ficheiro de configuração do cluster de administrador, o cluster é registado na sua frota durante a criação ou a atualização. Para ativar a funcionalidade de gestão de frotas, Google Cloud implementa oagente Connect e cria uma conta de serviço Google que representa o projeto no qual o cluster está registado.
O agente Connect estabelece uma ligação com a conta de serviço para processar
pedidos ao servidor da API Kubernetes do cluster. Isto permite o acesso às funcionalidades de gestão de clusters e cargas de trabalho no Google Cloud, incluindo o acesso à Google Cloud consola, que lhe permite interagir com o seu cluster.
O servidor da API Kubernetes do cluster de administrador tem de poder autorizar pedidos do agente Connect. Para garantir isto, as seguintes políticas de controlo de acesso baseado em funções (CABF) estão configuradas na conta de serviço:
Uma política de roubo de identidade que autoriza o agente Connect a enviar pedidos para o servidor da API Kubernetes em nome da conta de serviço.
Uma política de autorizações que especifica as operações permitidas noutros recursos do Kubernetes.
A conta de serviço e as políticas de RBAC são necessárias para poder gerir o ciclo de vida dos clusters de utilizadores na consola do Google Cloud .
Terraform
Vista geral do procedimento
Antes de criar o cluster de administrador, tem de executar o comando gkectl register bootstrap
na estação de trabalho de administrador. Este comando
implementa um cluster do Kubernetes in Docker
(kind) na estação de trabalho do administrador. Este cluster de bootstrap aloja os controladores do Kubernetes necessários para criar o cluster de administrador. Quando cria o cluster de administrador, os controladores no cluster de arranque aprovisionam nós, executam verificações prévias e registam o cluster de administrador na frota. O cluster de arranque é eliminado automaticamente após a criação bem-sucedida do cluster de administrador.
Seguem-se os passos de nível elevado para criar um cluster de administrador com o Terraform:
- Preencha o ficheiro de configuração.
- Use o recurso google_gkeonprem_vmware_admin_cluster e o exemplo que se segue para criar o ficheiro de configuração
main.tf
.
- Crie um cluster de
bootstrap
. - Execute o comando
gkectl register bootstrap
para criar o cluster de arranque. Quando o comando terminar de criar o cluster de arranque, o resultado indica que deve concluir a configuração do cluster de administrador. O processo continua a ser executado até que o cluster de administrador seja criado.
- Crie um cluster de
- Crie um cluster de administrador.
- Noutra janela do terminal ou noutro computador com acesso à API GKE On-Prem, execute os comandos
terraform
para criar um novo cluster de administrador, conforme especificado no ficheiro de configuraçãomain.tf
concluído.
Preencha o ficheiro de configuração
O exemplo seguinte mostra a criação de um cluster de administrador de alta disponibilidade (HA) com três nós do plano de controlo com o MetalLB. Na versão 1.28 e superior, os novos clusters de administrador têm de ter elevada disponibilidade. Devido a este requisito, tem de definir control_plane_node.replicas
como 3.
Para mais informações e outros exemplos, consulte a
google_gkeonprem_vmware_admin_cluster
documentação de referência. Para obter informações
sobre a utilização de um registo privado para imagens do sistema, consulte o artigo
Configure um registo de contentores privado.
Preencha as variáveis dos marcadores de posição no exemplo seguinte e, de seguida, copie e cole-as em main.tf
. Se usou o gkeadm
para criar a estação de trabalho de administrador, abra o ficheiro de configuração da estação de trabalho de administrador para poder copiar os valores da secção vCenter
para as variáveis de marcadores de posição correspondentes.
resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" { provider = google-beta name = "ADMIN_CLUSTER_NAME" project = "PROJECT_ID" location = "REGION" description = "DESCRIPTION" bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME" on_prem_version = "VERSION" image_type = "IMAGE_TYPE" vcenter { address = "VCENTER_ADDRESS" datacenter = "DATA_CENTER" cluster = "VCENTER_CLUSTER" resource_pool = "RESOURCE_POOL" datastore = "DATASTORE" ca_cert_data = "CA_CERT_DATA" } network_config { service_address_cidr_blocks = ["10.96.232.0/24"] pod_address_cidr_blocks = ["192.168.0.0/16"] vcenter_network = "NETWORK" dhcp_ip_config { enabled = true } host_config { dns_servers = ["DNS_SERVERS"] ntp_servers = ["NTP_SERVERS"] } ha_control_plane_config { control_plane_ip_block { gateway = "GATEWAY" netmask = "NETMASK" ips { hostname = "CONTROL_PLANE_HOST_1" ip = "CONTROL_PLANE_NODE_IP_1" } ips { hostname = "CONTROL_PLANE_HOST_2" ip = "CONTROL_PLANE_NODE_IP_2" } ips { hostname = "CONTROL_PLANE_HOST_3" ip = "CONTROL_PLANE_NODE_IP_3" } } } } control_plane_node { cpus = NUM_CPUS memory = MEMORY replicas = 3 } load_balancer { vip_config { control_plane_vip = "CONTROL_PLANE_VIP" } metal_lb_config { enabled = true } } }
Substitua o seguinte:
ADMIN_CLUSTER_NAME
: o nome do cluster de administrador. O nome tem um comprimento máximo de 20 carateres.PROJECT_ID
: o Google Cloud ID do projeto.REGION
: a Google Cloud região na qual a API GKE On-Prem (gkeonprem.googleapis.com
), o serviço Fleet (gkehub.googleapis.com
) e o serviço Connect (gkeconnect.googleapis.com
) são executados. Especifiqueus-west1
ou outra região suportada.O campo
location
corresponde à flag--location
no comandogkectl register bootstrap
.DESCRIPTION
: uma descrição do cluster de administrador.VERSION
: a versão do Google Distributed Cloud para o cluster. A criação de um cluster com o Terraform só é suportada nas versões 1.28 e superiores. A versão que especificar aqui tem de corresponder à versão do pacote que especificar na flag--bundle-path
no comandogkectl register bootstrap
. Para ver uma lista de versões, consulte o artigo Versões do Google Distributed Cloud.IMAGE_TYPE
: o tipo de imagem do SO a executar nos nós do cluster de administração. Especifique um dos seguintes: "ubuntu_containerd
", "cos
", "ubuntu_cgv2
" ou "cos_cgv2
".VCENTER_ADDRESS
: o endereço do vCenter Server.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.credentials.address
.O campo
vcenter.address
corresponde à flag--vcenter-address
no comandogkectl register bootstrap
.
DATA_CENTER
: o nome do seu centro de dados do vCenter.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.datacenter
.O campo
vcenter.datacenter
corresponde à flag--vcenter-datacenter
no comandogkectl register bootstrap
.
VCENTER_CLUSTER
: o nome do seu cluster do vCenter.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.cluster
.O campo
vcenter.cluster
corresponde à flag--vcenter-cluster
no comandogkectl register bootstrap
.
RESOURCE_POOL
: o nome ou o caminho do seu conjunto de recursos do vCenter.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.resourcePool
.O campo
vcenter.resource_pool
corresponde à flag--vcenter-resource-pool
no comandogkectl register bootstrap
.
DATASTORE
: o nome do seu repositório de dados do vCenter. O valor que especificar tem de ser um nome e não um caminho. Se precisar de introduzir um caminho, adicione o seguinte campo:folder = "FOLDER"
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.datastore
.O campo
vcenter.datastore
corresponde à flag--vcenter-datastore
no comandogkectl register bootstrap
.
Se quiser usar uma política de armazenamento de VMs para os nós do cluster, remova o campo
vcenter.datastore
e adicionevcenter.storage_policy_name
em alternativa. Além disso, adicione a flag--vcenter-storage-policy
ao comandogkectl register bootstrap
. Tem de especificar um valor paravcenter.datastore
ouvcenter.storage_policy_name
, mas não ambos.FOLDER
: o nome da pasta do vCenter onde as VMs do cluster vão estar localizadas. Se não estiver a usar uma pasta, remova este campo.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.folder
.O campo
vcenter.folder
corresponde à flag--vcenter-folder
no comandogkectl register bootstrap
.
CA_CERT_DATA
: introduza o certificado da AC do vCenter no formato PEM. Para obter os dados do certificado da AC:Execute o seguinte comando:
cat CA_CERT_PATH_LOCAL | tr '\n' '\\n'
Substitua
CA_CERT_PATH_LOCAL
pelo caminho para o certificado da AC raiz do seu vCenter Server. Se usou ogkeadm
para criar a estação de trabalho de administrador, pode usar o valor do campocaCertPath
no ficheiro de configuração da estação de trabalho de administrador, que é o caminho no seu computador local.gkeadm
copiou o ficheiro do certificado da CA para a estação de trabalho do administrador. Tem de especificar o caminho da estação de trabalho de administração na flag--vcenter-ca-cert-path
no comandogkectl register bootstrap
.Copie o certificado gerado pelo comando anterior e cole-o num editor de texto. Substitua todas as instâncias do caráter de barra invertida (\) por um caráter de nova linha (\n).
Copie o certificado modificado e cole-o na variável de marcador de posição
CA_CERT_DATA
.
NETWORK
: introduza o nome da sua rede vCenter.Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.network
.O campo
network_config.vcenter_network
corresponde à flag--vcenter-network
no comandogkectl register bootstrap
.
GATEWAY
: o endereço IP do gateway predefinido para a sub-rede que tem os nós do cluster do plano de controlo.NETMASK
: a máscara de rede para a sub-rede que tem os nós do cluster do plano de controlo.DNS_SERVERS
: o endereço IP do servidor DNS.NTP_SERVERS
: o endereço IP do servidor de tempo (NTP).Introduza os endereços IP e, opcionalmente, o nome do anfitrião dos três nós do plano de controlo na secção
control_plane_ip_block.ips
. Se não introduzir um nome de anfitrião, remova os camposhostname
da configuração.NUM_CPUS
: o número de vCPUs para cada nó do plano de controlo no cluster de administrador. Tem de ter, no mínimo, 4.MEMORY
: número de mebibytes de memória para cada nó do plano de controlo no cluster de administrador. Tem de ter um mínimo de 8192, mas recomendamos 16 384.CONTROL_PLANE_VIP
: o endereço IP que escolheu para configurar no balanceador de carga para o servidor da API Kubernetes do cluster de administrador.
Valide o ficheiro de configuração e o plano
No diretório onde se encontra main.tf
, execute os seguintes comandos:
Inicialize o Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o Google Cloud fornecedor. Corrija eventuais erros em
maint.tf
, se necessário.Crie o plano do Terraform:
terraform plan -out tfplan
Reveja a configuração e faça alterações, se necessário.
Antes de aplicar o plano, tem de criar primeiro o cluster de arranque, conforme descrito na secção seguinte.
Crie o cluster de arranque
Quando executa o comando gkectl register bootstrap
, é-lhe pedido o nome de utilizador e a palavra-passe da conta do vCenter. Certifique-se de que tem as credenciais disponíveis. Se usou gkeadm
para criar a estação de trabalho de administrador, o nome de utilizador e a palavra-passe encontram-se no ficheiro credential.yaml
.
Inicie sessão na sua estação de trabalho de administrador através de SSH.
Autentique com a CLI do Google Cloud:
gcloud auth login
Execute o seguinte comando para criar o cluster de arranque. Muitos dos valores de indicação são iguais aos dos campos
main.tf
. No entanto, tenha em atenção que o comando aceita valores adicionais que tem de especificar nas variáveis de marcadores de posição fornecidas.gkectl register bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --vcenter-address=VCENTER_ADDRESS \ --vcenter-datacenter=DATA_CENTER \ --vcenter-cluster=VCENTER_CLUSTER \ --vcenter-resource-pool=RESOURCE_POOL \ --vcenter-datastore=DATASTORE \ --vcenter-network=NETWORK \ --vcenter-ca-cert-path=CA_CERT_PATH \ --bundle-path=BUNDLE_PATH \ --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Substitua o seguinte pelos caminhos da estação de trabalho do administrador:
CA_CERT_PATH
: o caminho para o certificado da CA raiz do seu vCenter Server.BUNDLE_PATH
: o caminho para o ficheiro do pacote. Se usou o comandogkeadm
para criar a estação de trabalho de administração, o ficheiro do pacote encontra-se em/var/lib/gke/bundles/
. O nome do ficheiro depende da versão do Google Distributed Cloud. Por exemplo,gke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço de acesso aos componentes.CONNECT_REGISTER_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço connect-register.LOG_MON_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.CLOUD_AUDIT_SA_PATH
: o caminho para a conta de serviço de registo de auditoria. Se não criou uma conta de serviço de registo de auditoria, especifique o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.
Modifique o comando conforme necessário para as seguintes flags:
- Se especificou uma pasta em
main.tf
, adicione a seguinte flag:--vcenter-folder=FOLDER
- Se especificou uma política de armazenamento de VMs em
main.tf
, remova--vcenter-datastore
e adicione a seguinte flag:--vcenter-storage-policy-name=STORAGE_POLICY_NAME
- Se a rede que vai ter a sua estação de trabalho de administração estiver protegida por um servidor proxy, adicione as seguintes flags:
--proxy-url=PROXY_URL
e--no-proxy=NO_PROXY
. Substitua PROXY_URL pelo URL do servidor proxy e NO_PROXY pelo valor dos domínios e endereços IP excluídos do proxy, separados por vírgulas.
Se adicionar um sinalizador, certifique-se de que adiciona o caráter de barra invertida de continuação da linha de comando (\).
Quando lhe for pedido, introduza (ou copie e cole) o nome de utilizador do vCenter. O nome de utilizador não é repetido no ecrã.
Quando lhe for pedido, introduza (ou copie e cole) a palavra-passe do vCenter. A palavra-passe não é repetida no ecrã.
O comando executa várias validações. Depois de gkectl
criar com êxito o cluster de arranque, vê um resultado semelhante ao seguinte, que é truncado para facilitar a leitura:
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
O processo continua a ser executado até o cluster de administrador ser criado.
Se sair do comando gkectl register bootstrap
antes de o cluster de administrador ser criado, a criação do cluster de administrador falha e tem de eliminar o cluster de arranque com o seguinte comando:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Crie o cluster de administrador
Aplique o plano do Terraform para criar o cluster de administrador:
terraform apply "tfplan"
A criação do cluster de administrador demora cerca de 15 minutos ou mais. Pode ver o cluster na Google Cloud consola na página Clusters do GKE.
Consola
Vista geral do procedimento
Antes de criar o cluster de administrador, tem de executar o comando gkectl register bootstrap
na estação de trabalho de administrador. Este comando
implementa um cluster do Kubernetes in Docker
(kind) na estação de trabalho do administrador. Este cluster de bootstrap aloja os controladores do Kubernetes necessários para criar o cluster de administrador. Quando cria o cluster de administrador, os controladores no cluster de arranque aprovisionam nós, executam verificações prévias e registam o cluster de administrador na frota. O cluster de arranque é eliminado automaticamente após a criação bem-sucedida do cluster de administrador.
Seguem-se os passos de nível elevado para criar um cluster de administrador através da consola:
Na consola, introduz informações que o
gkectl register bootstrap
requer. A consola apresenta o comandogkectl register bootstrap
com as informações que introduziu. O comando apresentado também inclui sinalizadores para caminhos que tem de especificar antes de executar o comando.Na estação de trabalho de administração, execute
gkectl register bootstrap
para criar o cluster de arranque. Quando o comando terminar de criar o cluster de arranque, o resultado indica que deve concluir a configuração do cluster de administrador. O processo continua a ser executado até que o cluster de administrador seja criado.Regressa à consola para terminar de introduzir as informações necessárias para criar o cluster. Durante a criação do cluster, o comando
gkectl register bootstrap
produz informações de progresso e escreve registos na sua estação de trabalho de administrador. Quando o cluster de administrador é criado, o cluster de arranque é eliminado automaticamente.
Comece a configurar o cluster
Na consola, aceda à página Crie um cluster no VMware.
Selecione o Google Cloud projeto no qual quer criar o cluster.
Quando criar o cluster de arranque numa secção seguinte, o ID do projeto selecionado é apresentado no comando
gkectl register bootstrap
na flag--project-id
.Certifique-se de que a opção Criar um cluster de administrador está selecionada.
Clique em Seguinte: instalar ambiente de arranque.
Instale o ambiente de arranque
Nesta secção, introduza as informações que o comando gkectl register bootstrap
requer. À medida que introduz valores nos campos da IU, a consola copia os valores para as flags correspondentes do comando gkectl register bootstrap
que é apresentado na secção Ambiente de arranque a partir da estação de trabalho de administração na parte inferior da página.
Noções básicas do ambiente de arranque
Introduza um nome para o cluster de administrador. A consola usa o nome do cluster como o valor da flag
--target-cluster-name
no comandogkectl register bootstrap
apresentado na parte inferior da página. O nome tem um comprimento máximo de 20 carateres.No campo Google Cloud Localização da API, selecione uma Google Cloud região na lista. Esta definição especifica a região onde as seguintes APIs e serviços são executados:
- API GKE On-Prem (
gkeonprem.googleapis.com
) - Serviço de frota (
gkehub.googleapis.com
) - Serviço Connect (
gkeconnect.googleapis.com
)
Esta definição também controla a região na qual os seguintes elementos são armazenados:
- Os metadados do cluster de que a API GKE On-Prem precisa para gerir o ciclo de vida do cluster
- Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
- O registo de auditoria do administrador criado pelos registos de auditoria da nuvem
O campo Google Cloud API Location corresponde à flag
--location
no comandogkectl register bootstrap
.- API GKE On-Prem (
No campo Versão do cluster de administrador, introduza a versão a usar para criar o cluster. A versão que selecionar aqui tem de corresponder à versão do pacote que especificar na flag
--bundle-path
no comandogkectl register bootstrap
.
Configuração do vCenter
Se usou gkeadm
para criar a sua estação de trabalho de administrador, abra o ficheiro de configuração da estação de trabalho de administrador para poder copiar valores da secção vCenter
para os campos na consola. Tenha em atenção que o ficheiro de configuração do cluster de administrador gerado também contém estas informações.
A maioria dos campos nesta secção é imutável. Consulte a secção vCenter
na referência do ficheiro de configuração do cluster de administrador se precisar de saber se um campo é mutável ou imutável.
No campo Endereço, introduza o endereço do vCenter Server.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.credentials.address
.O campo Address corresponde à flag
--vcenter-address
no comandogkectl register bootstrap
.
No campo Datacenter, introduza o nome do seu centro de dados do vCenter.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.datacenter
.O campo Datacenter corresponde à flag
--vcenter-datacenter
no comandogkectl register bootstrap
.
No campo Nome do cluster, introduza o nome do seu cluster do vCenter.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.cluster
.O campo Nome do cluster corresponde à flag
--vcenter-cluster
no comandogkectl register bootstrap
.
No campo Conjunto de recursos, introduza o nome ou o caminho do seu conjunto de recursos do vCenter.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.resourcePool
.O campo Conjunto de recursos corresponde à flag
--vcenter-resource-pool
no comandogkectl register bootstrap
.
Configure uma opção de armazenamento introduzindo uma das seguintes opções:
Campo Datastore: introduza o nome do seu armazenamento de dados do vCenter. O valor que especificar tem de ser um nome e não um caminho. Se precisar de introduzir um caminho, introduza-o no campo Pasta.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.datastore
.O campo Datastore corresponde à flag
--vcenter-datastore
no comandogkectl register bootstrap
.
Campo Nome da política de armazenamento: introduza o nome da política de armazenamento de VMs para os nós do cluster. Para mais informações, consulte o artigo Configure uma política de armazenamento.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.storagePolicyName
.O campo Nome da política de armazenamento corresponde à flag
--vcenter-storage-policy
no comandogkectl register bootstrap
.
Tem de introduzir um valor no campo Datastore ou no campo Storage Policy Name, mas não em ambos.
Opcionalmente, no campo Pasta, introduza o nome da pasta do vCenter onde as VMs do cluster vão estar localizadas.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.folder
.O campo Pasta corresponde à flag
--vcenter-folder
no comandogkectl register bootstrap
.
No campo Rede, introduza o nome da sua rede do vCenter.
Ficheiro de configuração da estação de trabalho de administração: use o valor do campo
vCenter.network
.O campo Network corresponde à marca
--vcenter-network
no comandogkectl register bootstrap
.
No campo Caminho do certificado da AC, introduza o caminho para o certificado da AC de raiz do seu vCenter Server.
Se usou o
gkeadm
para criar a estação de trabalho de administração, ogkeadm
copiou o ficheiro de certificado da AC que tinha localmente para a estação de trabalho de administração.O campo Caminho do certificado da CA corresponde a
--vcenter-ca-cert-path
no comandogkectl register bootstrap
.
Obtenha o certificado da AC
Depois de criar o cluster de arranque, tem de fornecer o certificado de AC do vCenter no formato PEM no campo Dados do certificado de AC na página Noções básicas do cluster. Execute o seguinte comando para apresentar o certificado:
cat CA_CERT_PATH
Substitua CA_CERT_PATH
pelo caminho para o certificado da CA raiz do vCenter Server. Se executar este comando localmente, use o caminho em vCenter.caCertPath
no ficheiro de configuração da estação de trabalho de administrador.
Copie todo o certificado para um editor de texto para que possa colá-lo no campo Dados do certificado da AC na página Noções básicas do cluster após a criação do cluster de arranque.
Inicialize o ambiente a partir da estação de trabalho do administrador
Quando executa o comando gkectl register bootstrap
, é-lhe pedido o nome de utilizador e a palavra-passe da conta do vCenter. Certifique-se de que tem as credenciais disponíveis. Se usou gkeadm
para criar a estação de trabalho de administrador, o nome de utilizador e a palavra-passe encontram-se no ficheiro credential.yaml
.
Desloque a página até à secção Inicialize o ambiente a partir da estação de trabalho do administrador para apresentar o comando
gkectl register bootstrap
.Deixe esta página aberta enquanto acede à estação de trabalho de administração para criar o cluster de arranque.
Copie e cole o comando
gkectl register bootstrap
num editor de texto para poder especificar valores para as seguintes flags:./gkectl register bootstrap \ ... --bundle-path=BUNDLE_PATH \ ... --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Substitua o seguinte pelos caminhos da estação de trabalho do administrador:
BUNDLE_PATH
: o caminho para o ficheiro do pacote. Se usou o comandogkeadm
para criar a estação de trabalho de administração, o ficheiro do pacote encontra-se em/var/lib/gke/bundles/
. O nome do ficheiro depende da versão do Google Distributed Cloud. Por exemplo,gke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço de acesso aos componentes.CONNECT_REGISTER_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço connect-register.LOG_MON_SA_PATH
: o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.CLOUD_AUDIT_SA_PATH
: o caminho para a conta de serviço de registo de auditoria. Se não criou uma conta de serviço de registo de auditoria, especifique o caminho para o ficheiro de chave da conta de serviço de registo e monitorização.
Além disso, se usou o
gkeadm
para criar a sua estação de trabalho de administrador, ogkectl
foi transferido para o diretório/usr/bin/
. Neste caso, remova./
do início do comando, uma vez quegkectl
não se encontra no diretório de trabalho atual.Use SSH para se ligar à sua estação de trabalho de administração.
Copie o comando e cole-o numa janela de terminal na sua estação de trabalho de administrador.
Quando lhe for pedido, introduza (ou copie e cole) o nome de utilizador do vCenter. O nome de utilizador não é repetido no ecrã.
Quando lhe for pedido, introduza (ou copie e cole) a palavra-passe do vCenter. A palavra-passe não é repetida no ecrã.
O comando executa várias validações. Depois de gkectl
criar com êxito o cluster de arranque, vê um resultado semelhante ao seguinte, que é truncado para facilitar a leitura:
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
O processo continua a ser executado até o cluster de administrador ser criado.
Se sair do comando gkectl register bootstrap
antes de o cluster de administrador ser criado, a criação do cluster de administrador falha e tem de eliminar o cluster de arranque com o seguinte comando:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Conclua a configuração do cluster de administrador
Regresse à consola e siga os passos abaixo:
Na página Instalar ambiente de arranque, clique em Verificar ligação.
Se for bem-sucedida, a consola apresenta a mensagem
Ligação estabelecida.A ligação ao cluster de arranque tem de ser estabelecida antes de continuar. Se a ligação não for estabelecida, verifique os argumentos que especificou no comando
gkectl register bootstrap
:Certifique-se de que o valor de
--target-cluster-name
corresponde ao nome do cluster de administrador apresentado na secção Noções básicas do ambiente de arranque.Certifique-se de que o valor de
--project-id
corresponde ao ID do projeto que selecionou na consola.
Se precisar de alterar o nome do cluster de arranque, o ID do projeto ou outros valores de flags, faça o seguinte:
- Introduza
Ctrl-C
para sair degkectl register bootstrap
. Elimine o cluster de arranque:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Execute novamente o comando
gkectl register bootstrap
.
Clique em Seguinte: noções básicas do cluster para começar a configurar o cluster de administrador.
Noções básicas sobre clusters
No campo Dados do certificado da AC, copie e cole todo o certificado da AC do vCenter no formato PEM, conforme descrito anteriormente na secção Obtenha o certificado da AC.
Na secção Autorização, introduza os endereços de email dos utilizadores aos quais quer conceder a função
clusterrole/view
do Kubernetes só de leitura. Tenha em atenção que o seu endereço de email é adicionado automaticamente. As políticas de controlo de acesso baseado em funções (RBAC) aplicadas permitem que os utilizadores executem comandos só de leitura através do gateway de ligação.Clique em Plano de controlo seguinte.
Plano de controlo
Reveja as predefinições na secção Plano de controlo e altere-as conforme necessário.
Na secção IPs de nós do plano de controlo, introduza os endereços IP nos seguintes campos:
Gateway: o endereço IP do gateway predefinido para a sub-rede que tem os nós do cluster.
Máscara de rede: a máscara de rede para a sub-rede que tem os nós do cluster.
Endereços IP: introduza o endereço IP e, opcionalmente, o nome do anfitrião para os três nós do plano de controlo.
Clique em Seguinte: rede.
Trabalhar em rede
Nesta secção, especifica as informações de rede necessárias para criar o cluster de administrador.
Na secção CIDRs de serviços e agrupamentos, aceite os valores predefinidos para os intervalos de endereços IP de serviços e agrupamentos do Kubernetes ou introduza intervalos de endereços CIDR diferentes.
CIDR do serviço: o intervalo mais pequeno possível é
/24
. Maior intervalo possível:/12
.CIDR do agrupamento: o intervalo mais pequeno possível é
/18
. Maior intervalo possível: /8`.
Na secção Host config, especifique os servidores NTP, os servidores DNS e, opcionalmente, os domínios de pesquisa DNS usados pelas VMs que são os nós do cluster. Depois de criar o cluster, não pode modificar estes valores.
Clique em Seguinte: equilibrador de carga.
Balanceador de carga
Nesta secção, seleciona o tipo de balanceador de carga a usar. Para mais informações, consulte a Vista geral do equilíbrio de carga.
Na lista Tipo de balanceador de carga, selecione um balanceador de carga:
Incluído no MetalLB: o balanceador de carga do MetalLB está incluído e requer menos configuração do que o balanceamento de carga manual. Os componentes do MetalLB são executados nos nós do cluster, pelo que não tem de criar VMs separadas para o equilibrador de carga.
Manual: pode usar qualquer equilibrador de carga à sua escolha, desde que o configure antes de criar o cluster. Com qualquer equilibrador de carga que configurar manualmente, tem de configurar mapeamentos entre IPs virtuais (VIPs), endereços de nós e valores de nodePort.
No campo VIP do plano de controlo, introduza o VIP a usar para o tráfego enviado para o servidor da API Kubernetes.
Clique em Validar e criar.
A consola apresenta mensagens de estado à medida que valida as definições e cria o cluster no seu centro de dados.
Se existir um problema com a configuração, a consola apresenta uma mensagem de erro que deve ser suficientemente clara para corrigir o problema de configuração e tentar novamente criar o cluster.
Os detalhes sobre o processo de criação de clusters são apresentados na estação de trabalho do administrador. Se as verificações pré-voo forem aprovadas, vê algo semelhante ao seguinte:
[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK [2023-03-22 23:15:47+0000] Writing kubeconfig file [2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig [2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster. [2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK [2023-03-22 23:20:17+0000] Please run [2023-03-22 23:20:17+0000] kubectl --kubeconfig gkectl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes [2023-03-22 23:20:17+0000] to get cluster nodes status. [2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK [2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK [2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK [2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster [2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK [2023-03-22 23:27:41+0000] Flushing logs... OK [2023-03-22 23:27:41+0000] Deleting membership... OK [2023-03-22 23:27:42+0000] Deleting bootstrap cluster.
Ligue-se ao cluster de administrador
O comando gkectl register bootstrap
cria um ficheiro kubeconfig
para o cluster de administrador na sua estação de trabalho de administrador. O diretório onde o ficheiro kubeconfig
está localizado e o nome do ficheiro baseiam-se no nome do cluster de administrador da seguinte forma:
gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Tem de restringir o acesso a este kubeconfig
porque contém credenciais de autenticação para o cluster.
Além disso, pode executar comandos kubectl
só de leitura através do gateway de ligação.
Execute o seguinte comando num computador com a CLI gcloud para obter uma entrada
kubeconfig
que possa aceder ao cluster através do gateway de ligação.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=PROJECT_ID
O resultado é semelhante ao seguinte:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
Agora, pode executar comandos
kubectl
só de leitura através do gateway de ligação:kubectl get pods -A
Se precisar de privilégios administrativos completos para o cluster de administrador, consulte o artigo Configure o gateway de ligação.
Resolução de problemas
Consulte o artigo Resolução de problemas de criação e atualização de clusters.
O que se segue?
Crie um cluster de utilizadores