Esta é a segunda parte de um guia que explica uma pequena instalação de prova de conceito do Google Distributed Cloud. A primeira parte é Configurar infraestrutura mínima, que lhe mostra como planear os seus endereços IP e configurar a infraestrutura vSphere e Google Cloud necessária para a implementação. Este documento baseia-se na configuração e no planeamento que fez na secção anterior e mostra-lhe como criar uma estação de trabalho de administrador, um cluster de administrador e um cluster de utilizador no seu ambiente vSphere, usando modelos simples que pode preencher aqui neste documento. Em seguida, pode implementar uma aplicação.
Tal como na configuração da infraestrutura desta instalação simples, os clusters que configurar através deste documento podem não ser adequados para as suas necessidades e exemplos de utilização de produção reais. Para mais informações, práticas recomendadas e instruções para instalações de produção, consulte os guias de instalação.
Antes de começar
Certifique-se de que configurou os seus ambientes vSphere e Google Cloud conforme descrito no artigo Configure a infraestrutura mínima.
Se quiser usar o Terraform para criar o cluster de utilizadores, precisa do Terraform na sua estação de trabalho de administrador ou noutro computador.
Vista geral do procedimento
Seguem-se os principais passos envolvidos nesta configuração:
Inicie sessão na CLI Google Cloud com uma conta que tenha as autorizações necessárias para criar contas de serviço.
Reúna as informações necessárias para configurar o Google Distributed Cloud, incluindo o nome de utilizador e a palavra-passe do vCenter, e os endereços IP que preparou na secção anterior.
Crie uma estação de trabalho de administrador com os recursos e as ferramentas de que precisa para criar clusters de administrador e de utilizador, incluindo as contas de serviço adicionais de que precisa para concluir a configuração.
Crie um cluster de administrador para gerir e atualizar o cluster de utilizadores.
Crie um cluster de utilizadores para executar as suas cargas de trabalho.
1. Inicie sessão na CLI Google Cloud
A configuração do Google Distributed Cloud requer várias
contas de serviço
com autorizações diferentes. Por isso, tem de ter sessão iniciada na Google Cloud CLI com uma conta que tenha as autorizações necessárias para criar e configurar contas de serviço, uma vez que o gkeadm
usa a sua account
propriedade atual da gcloud CLI quando faz esta configuração.
Inicie sessão na CLI gcloud. Pode usar qualquer Conta Google, mas tem de ter as autorizações necessárias. Se seguiu a parte anterior deste guia, provavelmente já iniciou sessão com uma conta adequada para criar a conta de serviço de acesso aos componentes.
gcloud auth login
Verifique se a propriedade
account
da CLI gcloud está definida corretamente:gcloud config list
O resultado mostra o valor da propriedade
account
do SDK. Por exemplo:[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
Certifique-se de que tem os componentes da CLI gcloud mais recentes instalados:
gcloud components update
Consoante a forma como instalou a CLI gcloud, pode ver a seguinte mensagem: "Não pode realizar esta ação porque o gestor de componentes da CLI Google Cloud está desativado para esta instalação. Pode executar o seguinte comando para alcançar o mesmo resultado para esta instalação:" Siga as instruções para copiar e colar o comando para atualizar os componentes.
2. Recolha informações
Use as informações que preparou em Configure a infraestrutura mínima para editar os marcadores de posição na tabela seguinte:
Detalhes do vSphere | |
---|---|
O nome de utilizador da sua conta do vCenter | USERNAME |
A palavra-passe da sua conta do vCenter | PASSWORD |
O seu endereço do vCenter Server | ADDRESS |
O caminho para o certificado da AC de raiz do seu vCenter Server, na máquina que vai usar para criar a estação de trabalho de administrador | CA_CERT_PATH |
O nome do seu centro de dados do vSphere | DATA_CENTER |
O nome do seu cluster do vSphere | VSPHERE_CLUSTER |
O nome ou o caminho do seu conjunto de recursos do vSphere. Para mais informações, consulte o artigo vcenter.resourcePool. | RESOURCE_POOL |
O nome do seu repositório de dados do vSphere | DATASTORE |
O nome da sua rede vSphere | NETWORK |
Endereços IP | |
Um endereço IP para a sua estação de trabalho de administrador | ADMIN_WS_IP |
Três endereços IP para os nós do plano de controlo do cluster de administrador. |
ADMIN_CONTROL_PLANE_NODE_IP_1 ADMIN_CONTROL_PLANE_NODE_IP_2 ADMIN_CONTROL_PLANE_NODE_IP_3 |
Um endereço IP para o nó do plano de controlo no cluster de utilizadores. |
USER_CONTROL_PLANE_NODE_IP |
Quatro endereços IP para os nós de trabalho do cluster de utilizadores. Isto inclui uma morada para um nó adicional que pode ser usado durante a atualização. |
USER_NODE_IP_1 USER_NODE_IP_2 USER_NODE_IP_3 USER_NODE_IP_4 |
Um endereço IP virtual (VIP) para o servidor da API Kubernetes do cluster de administrador | ADMIN_CONTROL_PLANE_VIP |
Um VIP para o servidor da API Kubernetes do cluster de utilizadores | USER_CONTROL_PLANE_VIP |
Um VIP de entrada para o cluster de utilizadores | USER_INGRESS_VIP |
Dois IPs virtuais para serviços do tipo LoadBalancer no cluster de utilizador. |
SERVICE_VIP_1 SERVICE_VIP_2 |
O endereço IP de um servidor DNS acessível a partir da estação de trabalho do administrador e dos nós do cluster | DNS_SERVER_IP |
O endereço IP de um servidor NTP acessível a partir da estação de trabalho do administrador e dos nós do cluster | NTP_SERVER_IP |
O endereço IP do gateway predefinido para a sub-rede que tem a estação de trabalho do administrador e os nós do cluster | DEFAULT_GATEWAY_IP |
A máscara de rede da sub-rede que tem a sua estação de trabalho de administrador e os nós do cluster
Exemplo: 255.255.255.0 |
NETMASK |
Se a sua rede estiver protegida por um servidor proxy, o URL do servidor proxy. Para mais informações, consulte o proxy. Preencha este campo manualmente no ficheiro de configuração da estação de trabalho de administração, se necessário. | PROXY_URL |
Intervalos CIDR para serviços e pods | |
O cluster de administrador e o cluster de utilizador precisam de um intervalo CIDR para os serviços e um intervalo CIDR para os pods. Use os seguintes valores pré-preenchidos, a menos que precise de os alterar para evitar a sobreposição com outros elementos na sua rede: | |
Um intervalo CIDR para serviços no cluster de administração | 10.96.232.0/24 |
Um intervalo CIDR para pods no cluster de administrador | 192.168.0.0/16 |
Um intervalo CIDR para serviços no cluster de utilizadores | 10.96.0.0/20 |
Um intervalo CIDR para pods no cluster de utilizadores | 192.168.0.0/16 |
Detalhes deGoogle Cloud | |
O ID do projeto do Google Cloud escolhido | PROJECT_ID |
O caminho para o ficheiro de chave JSON da conta de serviço de acesso aos componentes que configurou na secção anterior, na máquina que vai usar para criar a sua estação de trabalho de administrador. | COMPONENT_ACCESS_SA_KEY_PATH |
O endereço de email associado à sua Google Cloud
conta. Por exemplo: alex@example.com . |
GOOGLE_ACCOUNT_EMAIL |
3. Crie uma estação de trabalho de administrador
Antes de poder criar clusters, tem de criar uma estação de trabalho de administrador
e, em seguida, estabelecer ligação à mesma através de SSH. A estação de trabalho de administração é uma MV autónoma com as ferramentas e os recursos de que precisa para criar clusters do Google Distributed Cloud no seu ambiente vSphere. Usa a ferramenta de linha de comandos gkeadm
para criar a estação de trabalho de administrador.
Transfira o gkeadm
Transfira gkeadm
para o seu diretório atual:
gcloud storage cp gs://gke-on-prem-release/gkeadm/1.32.300-gke.85/linux/gkeadm ./ chmod +x gkeadm
Precisa da versão gkeadm
(que também é a versão do Google Distributed Cloud) para criar os ficheiros de configuração do cluster de administrador e de utilizador. Para verificar a versão do
gkeadm
, execute o seguinte:
./gkeadm version
O exemplo de resultado seguinte mostra a versão.
gkeadm 1.33.100 (1.32.300-gke.85)
Embora possa
transferir outra versão do gkeadm
,
este guia pressupõe que está a instalar a versão 1.32.300-gke.85,
e usa essa versão em todos os ficheiros de configuração e comandos.
Crie o ficheiro de credenciais
Crie e guarde um ficheiro com o nome credential.yaml
no diretório atual com o seguinte conteúdo:
apiVersion: v1 kind: CredentialFile items: - name: vCenter username: "USERNAME" password: "PASSWORD"
Crie o ficheiro de configuração da estação de trabalho de administrador
Crie e guarde um ficheiro denominado admin-ws-config.yaml
, novamente no diretório atual, com o seguinte conteúdo:
gcp: componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY_PATH" vCenter: credentials: address: "ADDRESS" fileRef: path: "credential.yaml" entry: "vCenter" datacenter: "DATA_CENTER" datastore: "DATASTORE" cluster: "VSPHERE_CLUSTER" network: "NETWORK" resourcePool: "RESOURCE_POOL" caCertPath: "CA_CERT_PATH" proxyUrl: "" adminWorkstation: name: "minimal-installation-admin-workstation" cpus: 4 memoryMB: 8192 diskGB: 50 dataDiskName: gke-on-prem-admin-workstation-data-disk/minimal-installation-data-disk.vmdk dataDiskMB: 512 network: ipAllocationMode: "static" hostConfig: ip: "ADMIN_WS_IP" gateway: "DEFAULT_GATEWAY_IP" netmask: "NETMASK" dns: - "DNS_SERVER_IP" proxyUrl: "" ntpServer: ntp.ubuntu.com
Crie a sua estação de trabalho de administrador
Crie a estação de trabalho de administrador com o seguinte comando:
./gkeadm create admin-workstation --auto-create-service-accounts
Executando este comando:
- Cria a sua estação de trabalho de administrador
- Cria automaticamente todas as contas de serviço adicionais de que precisa para a instalação
- Cria ficheiros de configuração de modelos para os seus clusters de administrador e de utilizador
O resultado fornece informações detalhadas sobre a criação da estação de trabalho do administrador e disponibiliza um comando que pode usar para estabelecer uma ligação SSH à estação de trabalho do administrador. Por exemplo:
... Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49 ********************************************************************
Na saída anterior, o endereço IP é um exemplo. O endereço IP da sua estação de trabalho de administrador vai ser diferente. Tome nota do endereço IP da sua estação de trabalho de administrador. Vai precisar dele no passo seguinte.
Para ver informações mais detalhadas sobre como criar uma estação de trabalho de administrador, consulte o artigo Crie uma estação de trabalho de administrador.
Ligue-se à sua estação de trabalho de administração
Use o comando apresentado no resultado anterior para estabelecer uma ligação SSH à sua estação de trabalho de administrador. Por exemplo:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.20.49
Se precisar de encontrar este comando novamente, o gkeadm
gera um ficheiro denominado gke-admin-ws-...
no diretório na sua máquina local onde executou o gkeadm create admin-workstation
.
Este contém detalhes sobre a sua estação de trabalho de administração, incluindo o comando SSH.
Na estação de trabalho de administração, introduza exit
para terminar a ligação SSH e voltar à máquina local.
Copie a chave de registo de auditoria para a estação de trabalho do administrador
Na secção anterior, criou um ficheiro de chave JSON para a sua conta de serviço de registo de auditoria.
Copie o ficheiro de chave JSON para o diretório inicial na estação de trabalho do administrador. Por exemplo, na sua máquina local:
scp -i /usr/local/google/home/me/.ssh/gke-admin-workstation audit-logging-key.json ubuntu@172.16.20.49:~
Veja ficheiros na sua estação de trabalho de administração
Mais uma vez, estabeleça uma ligação SSH à sua estação de trabalho de administrador.
Na estação de trabalho do administrador, liste os ficheiros no diretório inicial:
ls -1
O resultado deve incluir:
admin-cluster.yaml
, um ficheiro de configuração de modelo para criar o cluster de administrador.user-cluster.yaml
, um ficheiro de configuração de modelo para criar o seu cluster de utilizadores.- O ficheiro de certificado do vCenter que especificou na configuração da estação de trabalho de administração
- O ficheiro
credential.yaml
que especificou na configuração da estação de trabalho de administração. - O ficheiro de chave JSON para a sua conta de serviço de registo de auditoria.
- Ficheiros de chaves JSON para duas contas de serviço que
gkeadm
foram criadas para si: uma conta de serviço connect-register e uma conta de serviço logging-monitoring, bem como o ficheiro de chaves para a conta de serviço de acesso a componentes que criou anteriormente.
Por exemplo:
admin-cluster.yaml admin-ws-config.yaml audit-logging-key.json sa-key.json connect-register-sa-2203040617.json credential.yaml log-mon-sa-2203040617.json logs vc01-cert.pem user-cluster.yaml
Tem de especificar alguns destes nomes de ficheiros nos ficheiros de configuração para criar clusters. Use os nomes dos ficheiros como valores para os marcadores de posição na tabela seguinte:
Nome do ficheiro da chave da conta de serviço de registo de ligação Exemplo: connect-register-sa-2203040617.json |
CONNECT_REGISTER_SA_KEY |
Nome do ficheiro da chave da conta de serviço de registo e monitorização Exemplo: log-mon-sa-2203040617.json |
LOG_MON_SA_KEY |
Nome do ficheiro da chave da conta de serviço de registo de auditoria Exemplo: audit-logging-key.json |
AUDIT_LOG_SA_KEY |
Nome do ficheiro da chave da conta de serviço de acesso aos componentes Exemplo: sa-key.json |
COMPONENT_ACCESS_SA_KEY |
Nome do ficheiro do certificado do vCenter Exemplo: vc01-cert.pem |
CA_CERT_FILE |
4. Crie um cluster de administrador
Agora que tem uma estação de trabalho de administrador configurada com o vCenter e outros detalhes, pode usá-la para criar um cluster de administrador no seu ambiente vSphere. Certifique-se de que tem uma ligação SSH à sua estação de trabalho de administrador, conforme descrito anteriormente, antes de iniciar este passo. Todos os comandos seguintes são executados na estação de trabalho do administrador.
Crie o ficheiro de configuração do cluster de administrador
Abra admin-cluster.yaml
e substitua o conteúdo pelo seguinte:
apiVersion: v1 kind: AdminCluster name: "minimal-installation-admin-cluster" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.32.300-gke.85-full.tgz" vCenter: address: "ADDRESS" datacenter: "DATA_CENTER" cluster: "VSPHERE_CLUSTER" resourcePool: "RESOURCE_POOL" datastore: "DATASTORE" caCertPath: "CA_CERT_FILE" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "NETWORK" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "ADMIN_CONTROL_PLANE_NODE_IP_1" hostname: "admin-cp-vm-1" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_2" hostname: "admin-cp-vm-2" - ip: "ADMIN_CONTROL_PLANE_NODE_IP_3" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "ADMIN_CONTROL_PLANE_VIP" kind: "MetalLB" adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 antiAffinityGroups: enabled: false componentAccessServiceAccountKeyPath: "COMPONENT_ACCESS_SA_KEY" gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false cloudAuditLogging: projectID: "PROJECT_ID" clusterLocation: us-central1 serviceAccountKeyPath: "AUDIT_LOG_SA_KEY"
Valide o ficheiro de configuração do cluster de administrador
Confirme que o ficheiro de configuração do cluster de administrador é válido e pode ser usado para a criação de clusters:
gkectl check-config --config admin-cluster.yaml
Importe imagens do SO para o vSphere
Execute gkectl prepare
com o ficheiro de configuração concluído para importar imagens do SO do nó para o vSphere:
gkectl prepare --config admin-cluster.yaml --skip-validation-all
A execução deste comando importa as imagens para o vSphere e marca-as como modelos de VMs, incluindo a imagem do cluster de administrador.
Este comando pode demorar alguns minutos a ser devolvido.
Crie o cluster de administrador
Crie o cluster de administrador:
gkectl create admin --config admin-cluster.yaml
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.yaml
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.
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 kubeconfig
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 ...
Ative a autorização RBAC
Para conceder à sua conta de utilizador a função clusterrole/cluster-admin
do Kubernetes no cluster, execute o seguinte comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-admin-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=kubeconfig \ --context=minimal-installation-admin-cluster \ --apply
O resultado deste comando é semelhante ao seguinte, que é truncado para facilitar a leitura:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre outras coisas, a política de RBAC permite-lhe iniciar sessão no cluster na Google Cloud consola com a sua identidade Google para ver mais detalhes do cluster.
Inscrição automática na API GKE On-Prem
Uma vez que a API GKE On-Prem está ativada no seu projeto, o cluster é inscrito automaticamente na API GKE On-Prem. A inscrição do cluster de administrador na API GKE On-Prem permite-lhe usar ferramentas padrão, como aGoogle Cloud consola, a CLI Google Cloud ou o Terraform, para criar, atualizar, atualizar e eliminar clusters de utilizadores que o cluster de administrador gere. A inscrição do cluster também lhe permite executar comandos gcloud
para obter informações sobre o cluster.
5. Crie um cluster de utilizadores
Esta secção fornece passos para criar o cluster de utilizadores através da consola, do gkectl
, do Terraform ou da CLI gcloud.
gkectl
Certifique-se de que tem uma ligação SSH à sua estação de trabalho de administrador, conforme descrito anteriormente, antes de iniciar este procedimento. Todos os seguintes comandos são executados na estação de trabalho do administrador.
Crie o ficheiro de bloco de IP do cluster de utilizadores
Crie um ficheiro com o nome
user-ipblock.yaml
.Copie e cole o seguinte conteúdo em
user-ipblock.yaml
e guarde o ficheiro:blocks: - netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_NODE_IP_1" hostname: "user-vm-1" - ip: "USER_NODE_IP_2" hostname: "user-vm-2" - ip: "USER_NODE_IP_3" hostname: "user-vm-3" - ip: "USER_NODE_IP_4" hostname: "user-vm-4"
Crie o ficheiro de configuração do cluster de utilizadores
Crie um ficheiro com o nome
user-cluster.yaml
no mesmo diretório queuser-ipblock.yaml
.Copie e cole o seguinte conteúdo em
user-cluster.yaml
e guarde o ficheiro:
apiVersion: v1 kind: UserCluster name: "minimal-installation-user-cluster" gkeOnPremVersion: "1.32.300-gke.85" enableControlplaneV2: true network: hostConfig: dnsServers: - "DNS_SERVER_IP" ntpServers: - "NTP_SERVER_IP" ipMode: type: "static" ipBlockFilePath: "user-ipblock.yaml" serviceCIDR: "10.96.0.0/20" podCIDR: "192.168.0.0/16" controlPlaneIPBlock: netmask: "NETMASK" gateway: "DEFAULT_GATEWAY_IP" ips: - ip: "USER_CONTROL_PLANE_NODE_IP" hostname: "cp-vm-1" loadBalancer: vips: controlPlaneVIP: "USER_CONTROL_PLANE_VIP" ingressVIP: "USER_INGRESS_VIP" kind: "MetalLB" metalLB: addressPools: - name: "uc-address-pool" addresses: - "USER_INGRESS_VIP/32" - "SERVICE_VIP_1/32" - "SERVICE_VIP_2/32" enableDataplaneV2: true nodePools: - name: "uc-node-pool" cpus: 4 memoryMB: 8192 replicas: 3 enableLoadBalancer: true antiAffinityGroups: enabled: false gkeConnect: projectID: "PROJECT_ID" registerServiceAccountKeyPath: "CONNECT_REGISTER_SA_KEY" stackdriver: projectID: "PROJECT_ID" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "LOG_MON_SA_KEY" disableVsphereResourceMetrics: false autoRepair: enabled: true
Valide a configuração e crie o cluster
Verifique se o ficheiro de configuração do cluster de utilizadores é válido e pode ser usado para a criação de clusters:
gkectl check-config --kubeconfig kubeconfig --config user-cluster.yaml
Crie o cluster de utilizadores:
gkectl create cluster --kubeconfig kubeconfig --config user-cluster.yaml
A criação de clusters demora aproximadamente 30 minutos.
Localize o ficheiro kubeconfig do cluster de utilizadores
O comando gkectl create cluster
cria um ficheiro kubeconfig denominado
USER_CLUSTER_NAME-kubeconfig
no diretório atual. Vai precisar deste ficheiro kubeconfig mais tarde para interagir com o cluster de utilizadores.
Verifique se o cluster de utilizadores está em execução
Verifique se o cluster de utilizadores está em execução:
kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG
Substitua USER_CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster de utilizadores.
O resultado mostra os nós do cluster de utilizadores. Por exemplo:
cp-vm-1 Ready control-plane,master user-vm-1 Ready user-vm-2 Ready user-vm-3 Ready
Ative a autorização RBAC
Para conceder à sua conta de utilizador a função clusterrole/cluster-admin
do Kubernetes no cluster, execute o seguinte comando:
gcloud container fleet memberships generate-gateway-rbac \ --membership=minimal-installation-user-cluster \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=USER_CLUSTER_KUBECONFIG \ --context=minimal-installation-user-cluster \ --apply
O resultado deste comando é semelhante ao seguinte, que é truncado para facilitar a leitura:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: kubeconfig, context: minimal-installation-admin-cluster Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Entre outras coisas, a política de RBAC permite-lhe iniciar sessão no cluster na Google Cloud consola com a sua identidade Google para ver mais detalhes do cluster.
Inscrição automática na API GKE On-Prem
Uma vez que a API GKE On-Prem está ativada no seu projeto, o cluster é inscrito automaticamente na API GKE On-Prem. Isto permite-lhe usar a consola ou a CLI gcloud para ver os detalhes do cluster e gerir o ciclo de vida do cluster. Por exemplo, pode executar comandos gcloud
para obter informações sobre o seu cluster de utilizadores.
Consola
Na Google Cloud consola, aceda à página Crie um cluster do Google Distributed Cloud.
Selecione o Google Cloud projeto no qual quer criar o cluster. O projeto selecionado também é usado como o projeto anfitrião da frota. Tem de ser o mesmo projeto no qual o cluster de administrador está registado. Depois de criar o cluster de utilizadores, este é registado automaticamente na frota do projeto selecionado.
As secções seguintes explicam como configurar o cluster de utilizadores.
Pré-requisitos
Familiarize-se com as informações na página Pré-requisitos.
Na parte inferior da página, clique em Seguinte.
Noções básicas sobre clusters
Em Nome, introduza um nome para o cluster de utilizadores. Por exemplo,
minimal-installation-user-cluster
.Para o cluster de administrador, selecione minimal-installation-admin-cluster.
No campo Localização da API GCP, selecione us-central1.
Para Versão, selecione 1.32.300-gke.85.
Não precisa de abrir a secção Autorização nem a secção Configuração do vCenter.
Clicar em Seguinte.
Plano de controlo
Em IPs de nós do plano de controlo, para Gateway, introduza DEFAULT_GATEWAY_IP.
Para Máscara de sub-rede, introduza NETMASK.
Em Endereços IP, para Endereço IP 1, introduza USER_CONTROL_PLANE_NODE_IP. Deixe o campo Nome do anfitrião 1 em branco.
Clicar em Seguinte.
Redes
Nesta secção, especifica os endereços IP dos nós, dos pods e dos serviços do cluster. Um cluster de utilizadores tem de ter um endereço IP para cada nó e um endereço IP adicional para um nó temporário necessário durante as atualizações, as atualizações e a reparação automática do cluster. Para mais informações, consulte o artigo De quantos endereços IP precisa um cluster de utilizadores?.
Em IPs de nós de trabalho, para Modo de IP, certifique-se de que Estático está selecionado.
Em Gateway, introduza DEFAULT_GATEWAY_IP.
Para Máscara de sub-rede, introduza NETMASK.
Em Endereços IP, introduza estes endereços:
- USER_NODE_IP_1
- USER_NODE_IP_2
- USER_NODE_IP_3
- USER_NODE_IP_4
Deixe os campos Nome do anfitrião em branco.
Para CIDR de serviço, introduza 10.96.0.0/20. Para CIDR do agrupamento, introduza 192.168.0.0/16.
Para Servidor DNS 1, introduza DNS_SERVER_IP.
Para Servidor NTP 1, introduza NTP_SERVER_IP.
Deixe o campo Domínio de pesquisa DNS em branco.
Clicar em Seguinte.
Balanceador de carga
Para Tipo de balanceador de carga, selecione Incluído no MetalLB.
Em Conjuntos de endereços, use o nome predefinido.
Em Endereços IP, para Intervalo de endereços IP 1, introduza USER_INGRESS_VIP/32.
Clique em Adicionar intervalo de endereços IP. Para o intervalo de endereços IP 1, introduza SERVICE_VIP_1/32
Clique em Adicionar intervalo de endereços IP. Para o intervalo de endereços IP 2, introduza SERVICE_VIP_2/32
Para Atribuição de endereços IP, selecione Automático.
Deixe a opção Evitar endereços IP com erros desmarcada.
Em IPs virtuais, para VIP do plano de controlo, introduza USER_CONTROL_PLANE_VIP. O campo Ingress VIP já está preenchido.
Clique em Continuar.
Funcionalidades
Deixe todas as predefinições no lugar.
Clicar em Seguinte.
Node pools
Deixe todas as predefinições no lugar.
Clique em Validar e concluir para criar o cluster de utilizadores. A criação do cluster de utilizadores demora 15 minutos ou mais. A consola apresenta mensagens de estado à medida que valida as definições e cria o cluster no seu centro de dados.
Se ocorrer um erro ao validar as definições, 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.
Para mais informações sobre possíveis erros e como corrigi-los, consulte o artigo Resolva problemas de clusters inscritos na API GKE On-Prem.
Terraform
Esta secção mostra como criar um cluster de utilizadores e um conjunto de nós com o Terraform. Para mais informações e outros exemplos, consulte o seguinte:
Criar um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
. Neste guia, o ficheiro chama-semain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Valide o recurso do Terraform do cluster de utilizadores:
O exemplo de recurso do Terraform seguinte é preenchido com os valores que introduziu na tabela de planeamento na secção anterior.
resource "google_gkeonprem_vmware_cluster" "cluster-basic" { name = "minimal-installation-user-cluster" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster" description = "User cluster config with MetalLB, static IPs, and Controlplane V2" enable_control_plane_v2 = "true" on_prem_version = "1.32.300-gke.85" control_plane_node { cpus = 4 memory = 8192 replicas = 1 } network_config { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] host_config { dns_servers = ["DNS_SERVER_IP"] ntp_servers = ["NTP_SERVER_IP"] } static_ip_config { ip_blocks { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_NODE_IP_1" hostname = "user-vm-1" } ips { ip = "USER_NODE_IP_2" hostname = "user-vm-2" } ips { ip = "USER_NODE_IP_3" hostname = "user-vm-3" } ips { ip = "USER_NODE_IP_4" hostname = "user-vm-4" } } } control_plane_v2_config { control_plane_ip_block { netmask = "NETMASK" gateway = "DEFAULT_GATEWAY_IP" ips { ip = "USER_CONTROL_PLANE_NODE_IP" hostname = "cp-vm-1" } } } } load_balancer { vip_config { control_plane_vip = "USER_CONTROL_PLANE_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "uc-address-pool" manual_assign = "true" addresses = ["USER_INGRESS_VIP/32", "SERVICE_VIP_1/32", "SERVICE_VIP_2/32"] } } } authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } provider = google-beta } resource "google_gkeonprem_vmware_node_pool" "my-node-pool-1" { name = "uc-node-pool" project = "PROJECT_ID" vmware_cluster = "minimal-installation-user-cluster" location = "us-central1" config { replicas = 3 image_type = "ubuntu_containerd" enable_load_balancer = "true" } depends_on = [ google_gkeonprem_vmware_cluster.cluster-basic ] provider = google-beta }
Copie o recurso do Terraform para
main.tf
e guarde o ficheiro.Inicialize e crie o plano do Terraform:
terraform init
O Terraform instala todas as bibliotecas necessárias, como o Google Cloud fornecedor.
Reveja a configuração e faça alterações, se necessário:
terraform plan
Aplique o plano do Terraform para criar o cluster de utilizadores:
terraform apply
Quando lhe for pedido, introduza
yes
.Demora cerca de 15 minutos (ou mais, consoante a sua rede) a criar o cluster de utilizadores básico e o node pool.
gcloud
Crie o cluster:
gcloud container vmware clusters create minimal-installation-user-cluster \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/minimal-installation-admin-cluster \ --location=us-central1 \ --version=1.32.300-gke.85 \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --service-address-cidr-blocks=10.96.0.0/20 \ --pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-config-address-pools='pool=uc-address-pool,avoid-buggy-ips=False,manual-assign=False,addresses=USER_INGRESS_VIP/32;SERVICE_VIP_1/32;SERVICE_VIP_2/32' \ --control-plane-vip=USER_CONTROL_PLANE_VIP \ --ingress-vip=USER_INGRESS_VIP \ --static-ip-config-ip-blocks='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_NODE_IP_1;USER_NODE_IP_2;USER_NODE_IP_3;USER_NODE_IP_4' \ --dns-servers=DNS_SERVER_IP \ --ntp-servers=NTP_SERVER_IP \ --enable-control-plane-v2 \ --enable-dataplane-v2 \ --control-plane-ip-block='gateway=DEFAULT_GATEWAY_IP,netmask=NETMASK,ips=USER_CONTROL_PLANE_NODE_IP'
O resultado do comando é semelhante ao seguinte:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.
No exemplo de saída, a string operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179
é o OPERATION_ID
da operação de longa duração. Pode
saber o estado da operação com o seguinte comando:
gcloud container vmware operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
Para mais informações, consulte o artigo gcloud container vmware operations.
A criação do cluster de utilizadores demora 15 minutos ou mais. Pode ver o cluster na consola na página Vista geral dos clusters do Google Kubernetes Engine.
Crie um node pool:
gcloud container vmware node-pools create uc-node-pool \ --cluster=minimal-installation-user-cluster \ --project=PROJECT_ID \ --location=us-central1 \ --image-type=ubuntu_containerd \ --boot-disk-size=40 \ --cpus=4 \ --memory=8192 \ --replicas=3 \ --enable-load-balancer
O que se segue?
Concluiu esta instalação mínima do Google Distributed Cloud. Como seguimento opcional, pode ver a instalação em ação implementando uma aplicação.