Criar um cluster de usuário usando clientes da API Anthos On-Prem

Nesta página, descrevemos como criar um cluster de usuário usando o console do Google Cloud ou a Google Cloud CLI (CLI gcloud). Esses dois clientes padrão do Google Cloud usam a API Anthos On-Prem para criar o cluster.

O que é a API Anthos On-Prem?

A API Anthos On-Prem é uma API hospedada no Google Cloud que permite gerenciar o ciclo de vida dos clusters de usuário locais usando aplicativos padrão do Google Cloud. A API Anthos On-Prem é executada na infraestrutura do Google Cloud. O console e a CLI gcloud são clientes da API e usam a API para criar clusters no data center.

Para gerenciar o ciclo de vida dos clusters, a API Anthos On-Prem precisa armazenar metadados sobre o estado do cluster na região do Google Cloud especificada ao criar o cluster. Esses metadados permitem que a API gerencie o ciclo de vida do cluster de usuário e não incluem dados específicos da carga de trabalho.

Se preferir, é possível criar um cluster de usuário criando um arquivo de configuração de cluster de usuário e usando gkectl, conforme descrito em Como criar um cluster de usuário usando a gkectl.

Se você quiser usar o console do Google Cloud ou a CLI gcloud para gerenciar o ciclo de vida dos clusters que foram criados usando gkectl, consulte Configurar um cluster de usuário a ser gerenciado pela API Anthos On-Prem.

Antes de começar

Nesta seção, descrevemos os requisitos para criar um cluster de usuário usando clientes da API Anthos On-Prem.

Conceder permissões do IAM

A criação de clusters de usuário no console do Google Cloud é controlada pelo Identity and Access Management (IAM). Se você não for proprietário de um projeto, precisa ter, mínimo, os papéis a seguir, além dos necessários para ver clusters e recursos de contêiner no console do Google Cloud:

  • roles/gkeonprem.admin Para ver detalhes sobre as permissões incluídas nesse papel, consulte Papéis do GKE On-Prem na documentação do IAM.

Após a criação do cluster, se você não for um proprietário do projeto e quiser usar o gateway do Connect para conectar-se ao cluster de usuário pela linha de comando, a os seguintes papéis são obrigatórios:

  • roles/gkehub.gatewayAdmin: este papel permite acessar a API Connect Gateway. Se você precisar apenas de acesso somente leitura ao cluster, roles/gkehub.gatewayReader será suficiente.

  • roles/gkehub.viewer: esse papel permite recuperar credenciais de cluster.

Para ver detalhes sobre as permissões incluídas nesses papéis, consulte Papéis do GKE Hub na documentação do IAM.

Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Registrar o cluster de administrador

É preciso ter um cluster de administrador e registrá-lo em uma frota antes de criar clusters de usuário usando clientes da API Anthos On-Prem.

Ativar os registros de auditoria de atividade do administrador no cluster de administrador

A geração de registros de atividade do administrador para os registros de auditoria do Cloud precisa estar ativada no cluster de administrador.

Ativar a geração de registros e o monitoramento no nível do sistema para o cluster de administrador

O Cloud Logging e o Cloud Monitoring precisam estar ativados no cluster de administrador.

APIs do Google obrigatórias

Verifique se todas as APIs do Google necessárias estão ativadas no projeto host da frota.

Se você quiser usar a CLI gcloud para criar o cluster, ative a API Anthos On-Prem:

gcloud services enable --project FLEET_HOST_PROJECT_ID \
    gkeonprem.googleapis.com

Acesso à linha de comando

Após a criação do cluster, se você quiser usar o gateway do Connect para se conectar ao cluster de usuário pela linha de comando, faça o seguinte:

Verifique se você tem as seguintes ferramentas de linha de comando instaladas:

  • A versão mais recente da CLI gcloud.
  • kubectl para executar comandos em clusters do Kubernetes. Se precisar instalar kubectl, siga estas instruções

Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.

Criar um cluster de usuário

É possível usar o console do Google Cloud ou a Google Cloud CLI (CLI gcloud) para criar um cluster de usuário gerenciado pela API Anthos On-Prem. Se você está começando a conhecer a instalação de clusters do Anthos no VMware, o console pode ser mais fácil de usar do que a CLI gcloud.

Depois de se familiarizar com as informações necessárias para criar os clusters, a CLI gcloud pode se tornar mais conveniente, porque é possível salvar o comando com argumentos em um arquivo de texto. Se você estiver usando uma ferramenta de CI/CD, como o Cloud Build, poderá usar os comandos gcloud para criar um cluster e o pool de nós, bem como especificar as flags --impersonate-service-account e para automatizar a criação.

Console

A maioria dos campos no console do Google Cloud corresponde aos campos no arquivo de configuração do cluster de usuário.

  1. No console do Google Cloud, acesse a página "Clusters do Anthos".

    Acesse a página de clusters do Anthos

  2. Selecione o projeto do Cloud em que você quer criar o cluster. O projeto selecionado também é usado como projeto host da frota. Precisa ser o mesmo projeto em que o cluster de administrador está registrado. Depois que o cluster de usuário é criado, ele é registrado automaticamente na frota do projeto selecionado.

  3. Clique em Criar cluster.

  4. Na caixa de diálogo, clique em No local.

  5. Ao lado de VMware vSphere, clique em Configurar.

As seções a seguir orientam você na configuração do cluster de usuários.

CLI da gcloud

Use o seguinte comando para criar um cluster de usuário:

gcloud alpha container vmware clusters create

Após criar o cluster, você precisa criar pelo menos um pool de nós usando o seguinte comando:

gcloud alpha container vmware node-pools create

A maioria das flags para criar o cluster e o pool de nós corresponde aos campos no arquivo de configuração do cluster de usuário. Para ajudar você a começar, teste o comando completo na seção exemplos abaixo. Para informações sobre as sinalizações, consulte as seções que seguem os exemplos. Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Antes de começar

  1. Faça login com sua Conta do Google:

    gcloud auth login
    
  2. Atualize os componentes:

    gcloud components update
    

Examples

Nesta seção, fornecemos dois exemplos de comandos que criam clusters usando o balanceador de carga do MetalLB. Os exemplos não incluem as flags para configurar os nós do plano de controle, que são definidos como os valores padrão de vCPUs (4), memória (8.192) e número de nós (1). Depois que o cluster estiver em execução, adicione um pool de nós antes de implantar cargas de trabalho.

DHCP

Role a tela para cima, se necessário, para preencher o marcador ADMIN_CLUSTER_NAME para a flag --admin-cluster-membership.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --enable-dhcp \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP

IPs estáticos

Role a tela para cima, se necessário, para preencher o marcador ADMIN_CLUSTER_NAME para a flag --admin-cluster-membership.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...' \
  --dns-servers=DNS_SERVER,... \
  --dns-search-domains=DNS_SEARCH_DOMAIN,... \
  --ntp-servers=NTP_SERVER,... \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP

Veja nas seções a seguir mais informações sobre as flags para criar um cluster. Para sua conveniência, as informações sobre as sinalizações são agrupadas pelas configurações correspondentes no console. Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Depois de criar o cluster, consulte o comando do pool de nós para criar um pool de nós para o cluster recém-criado.

Noções básicas sobre clusters

Insira informações básicas sobre o cluster.

Console

  1. Insira um nome para o cluster de usuário.
  2. Em Cluster de administração, selecione o cluster de administrador na lista. Se você não tiver especificado um nome para o cluster de administrador quando o criou, o nome será gerado no formato gke-admin-[HASH]. Se você não reconhece o nome do cluster de administrador, execute o seguinte comando na estação de trabalho do administrador:

    KUBECONFIG=ADMIN_CLUSTER_KUBECONFIG
    kubectl get OnPremAdminCluster -n kube-system -o=jsonpath='{.items[0].metadata.name}'
    

    Se o cluster de administrador que você quer usar não for exibido, consulte a seção de solução de problemas O cluster de administrador não é exibido naNoções básicas sobre clusters Lista suspensa de dados.

  3. No campo Local da API GCP, selecione a região do Google Cloud na lista. Essa configuração especifica a região em que a API Anthos On-Prem é executada e a região em que os itens a seguir são armazenados:

    • Os metadados do cluster de usuário de que a API Anthos On-Prem precisa para gerenciar o ciclo de vida do cluster
    • Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
    • O registro de auditoria do administrador criado pelos registros de auditoria do Cloud

    O nome, o projeto e o local do cluster identificam exclusivamente o Google Cloud.

  4. Os clusters do Anthos na versão VMware para seu cluster de usuário.

  5. Como criador do cluster, você recebe privilégios de administrador. Se quiser, insira o endereço de e-mail de outro usuário que administrará o cluster no campo Usuário administrador do cluster na seção Autorização.

    Quando o cluster é criado, a API GKE On-Prem aplica as políticas de controle de acesso baseado em papel (RBAC) do Kubernetes ao cluster para conceder a você e a outros usuários administradores o papel clusterrole/cluster-admin do Kubernetes, que fornece acesso total a todos os recursos do cluster em todos os namespaces.

  6. Clique em Continuar para acessar a seção Rede.

CLI da gcloud

Nesta seção, você verá as flags com informações básicas sobre o cluster.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --project=FLEET_HOST_PROJECT_ID \
  --admin-cluster-membership=projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \
  --location=REGION \
  --version=VERSION \
  --admin-users=YOUR_EMAIL_ADDRESS \
  --admin-users=ANOTHER_EMAIL_ADDRESS \
  --NETWORKING_FLAGS \
  --LOAD_BALANCER_FLAGS \
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Substitua:

  • USER_CLUSTER_NAME: um nome de sua escolha pelo cluster de usuário. O nome não pode ser alterado após a criação do cluster. O nome precisa:
    • conter no máximo 40 caracteres
    • conter apenas caracteres alfanuméricos minúsculos ou um hífen (-)
    • começam com um caractere alfabético
    • terminar com um caractere alfanumérico.
  • FLEET_HOST_PROJECT_ID: o ID do projeto em que você quer criar o cluster. O projeto selecionado também é usado como projeto host da frota. Precisa ser o mesmo projeto em que o cluster de administrador está registrado. Depois que o cluster de usuário é criado, ele é registrado automaticamente na frota do projeto selecionado. O projeto host da frota não pode ser alterado após a criação do cluster.
  • ADMIN_CLUSTER_NAME: o nome do cluster de administrador que gerencia o cluster de usuário. O nome do cluster de administrador é o último segmento do nome totalmente especificado que identifica o cluster no Google Cloud: projects/FLEET_HOST_PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME
  • REGION: a região do Google Cloud em que a API Anthos On-Prem é executada. Especifique us-west1 ou outra região compatível. Após a criação do cluster, não é possível alterar a região. Essa configuração especifica a região em que os itens a seguir estão armazenados:
    • Os metadados do cluster de usuário de que a API Anthos On-Prem precisa para gerenciar o ciclo de vida do cluster
    • Os dados do Cloud Logging e do Cloud Monitoring dos componentes do sistema
    • O registro de auditoria do administrador criado pelos registros de auditoria do Cloud

    O nome, o projeto e o local do cluster identificam exclusivamente o cluster no Google Cloud.

  • VERSION: os clusters do Anthos na versão VMware para o cluster de usuário.
  • YOUR_EMAIL_ADDRESS e ANOTHER_EMAIL_ADDRESS: se você não incluir a flag --admin-users como a criadora do cluster, por padrão, você receberá privilégios de administrador do cluster. No entanto, se você incluir --admin-users para designar outro usuário como administrador, o padrão será substituído e será necessário incluir seu endereço de e-mail e o endereço de e-mail do outro administrador. Por exemplo, para adicionar dois administradores:
            --admin-users=sara@example.com \
            --admin-users=amal@example.com

    Quando o cluster é criado, a API Anthos On-Prem aplica as políticas de controle de acesso baseado em papel (RBAC) do Kubernetes ao cluster para conceder a você e a outros usuários administradores o papel clusterrole/cluster-admin do Kubernetes, que fornece acesso total a todos os recursos do cluster em todos os namespaces.

Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Rede

Console

Nesta seção, você especificará os endereços IP para os nós, pods e serviços do cluster. Um cluster de usuário precisa ter um endereço IP para cada nó e um endereço IP adicional para um nó temporário, que é necessário durante upgrades de cluster, atualizações e reparo automático. Para mais informações, consulte De quantos endereços IP um cluster de usuário precisa?.

  1. Na seção IPs de nós, selecione o Modo IP do cluster de usuário. Selecione uma destas opções:

    • DHCP: escolha DHCP se quiser que os nós do cluster recebam o endereço IP de um servidor DHCP.

    • Estático: escolha Estático se quiser fornecer endereços IP estáticos para os nós do cluster ou se quiser configurar o balanceamento de carga manual.

  2. Se você tiver selecionado DHCP, pule para a próxima etapa para especificar os CIDRs de serviço e pod. Para o modo de IP estático, forneça as informações a seguir:

    1. Digite o endereço IP do gateway para o cluster de usuário.
    2. Insira a máscara de sub-rede para os nós do cluster de usuário.

    3. Na seção Endereços IP, insira os endereços IP e, opcionalmente, os nomes do host dos nós no cluster de usuários. É possível inserir um endereço IP v4 individual (como 192.0.2.1) ou um bloco CIDR de endereços IPv4 (como 192.0.2.0/24).

      • Se você inserir um bloco CIDR, não insira um nome do host.
      • Se você digitar um endereço IP individual, poderá inserir um nome do host. Se você não inserir um nome do host, os clusters do Anthos no VMware usarão o nome da VM do vSphere como o nome do host.
    4. Clique em + Adicionar endereço IP conforme necessário para inserir mais endereços IP.

  3. Na seção CIDRs de serviços e pods, o console fornece os seguintes intervalos de endereços para os serviços e pods do Kubernetes:

    • CIDR de serviço: 10.96.0.0/20
    • CIDR de pods: 192.168.0.0/16

    Se você preferir inserir seus próprios intervalos de endereços, consulte Endereços IP para pods e serviços para ver práticas recomendadas.

  4. Se você selecionou Modo de IP estático, especifique as seguintes informações na seção Configuração do host:

  5. Digite os endereços IP dos servidores DNS.

  6. Digite os endereços IP dos servidores NTP.

  7. Também é possível digitar domínios de pesquisa DNS.

  8. Clique em Continuar para acessar a seção Balanceador de carga.

CLI da gcloud

Nesta seção, descrevemos as flags de rede. Use essas flags para especificar os endereços IP para os nós, os pods e os serviços do cluster. Um cluster de usuário precisa ter um endereço IP para cada nó e um endereço IP adicional para um nó temporário, que é necessário durante upgrades, atualizações e reparo automático do cluster. Para mais informações, consulte De quantos endereços IP um cluster de usuário precisa?.

DHCP

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --enable-dhcp \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --LOAD_BALANCER_FLAGS \
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Inclua --enable-dhcp se quiser que os nós do cluster recebam o endereço IP de um servidor DHCP fornecido. Não inclua essa flag se quiser fornecer endereços IP estáticos para os nós do cluster ou se quiser configurar o balanceamento de carga manual.

IPs estáticos

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --static-ip-config-ip-blocks='gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...' \
  --dns-servers=DNS_SERVER,... \
  --dns-search-domains=DNS_SEARCH_DOMAIN,... \
  --ntp-servers=NTP_SERVER,... \
  --service-address-cidr-blocks=SERVICE_CIDR_BLOCK \
  --pod-address-cidr-blocks=POD_CIDR_BLOCK \
  --LOAD_BALANCER_FLAGS \
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Substitua:

  • Em --static-ip-config-ip-blocks: especifique o gateway padrão, a máscara de sub-rede e uma lista dos endereços IP estáticos para os nós no cluster de usuário. O valor do flag tem o seguinte formato:

    'gateway=GATEWAY,netmask=NETMASK,ips=IP_ADDRESS_1;IP_ADDRESS_2 HOST_2;...'
    

    O valor tem segmentos que começam com as palavras-chave gateway, netmask e ips. Separe os segmentos com uma vírgula.

    Observe o seguinte:

    • Coloque o valor inteiro entre aspas simples.
    • Não é permitido usar espaços em branco, exceto entre um endereço IP e um nome do host.

    Na lista de endereços IP:

    • É possível especificar um endereço IP individual ou um bloco CIDR de endereços IP.

    • Separe cada endereço IP ou bloco CIDR com um ponto e vírgula.

    • Para um endereço IP individual, você tem a opção de especificar um nome do host após o endereço IP. Separe o endereço IP e o nome do host com um espaço. Se você não inserir um nome do host, os clusters do Anthos no VMware usarão o nome da VM do vSphere como o nome do host.

    • Se você especificar um bloco CIDR, não especifique um valor para o nome do host.

    Exemplo:

    'gateway=172.16.23.254,netmask=255.255.252.0,ips=172.16.20.10;172.16.20.11 host2;172.16.20.12/30'
    
  • DNS_SERVER: uma lista separada por vírgulas dos endereços IP de servidores DNS para as VMs.

  • DNS_SEARCH_DOMAIN: uma lista separada por vírgulas dos domínios de pesquisa DNS que serão usados pelos hosts. Esses domínios são usados como parte de uma lista de pesquisa de domínio.

  • NTP_SERVER: uma lista separada por vírgulas dos endereços IP de servidores de horário para uso das VMs.

Para DHCP e IPs estáticos, substitua o seguinte:

  • SERVICE_CIDR_BLOCK: um intervalo de endereços IP no formato CIDR que serão usados para serviços no cluster. Precisa ser pelo menos um intervalo /24

    Exemplo: --service-address-cidr-blocks=10.96.0.0/20

  • POD_CIDR_BLOCK: um intervalo de endereços IP, no formato CIDR, que será usado para pods no cluster. Precisa ser pelo menos um intervalo /18.

    Exemplo: --pod-address-cidr-blocks=92.168.0.0/16

Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Balanceador de carga

Console

Escolha o balanceador de carga a ser configurado para o cluster. Consulte a visão geral do balanceador de carga para mais informações.

Selecione o Tipo de balanceador de carga na lista.

Empacotado com MetalLB

Configurar balanceamento de carga em pacote com o MetalLB. Só é possível usar o MetalLB no cluster de usuário se o cluster de administrador estiver usando o SeeSaw ou o MetalLB. Essa opção requer configuração mínima. Executado diretamente nos nós do cluster e não requer VMs extras Para mais informações sobre os benefícios do uso do MetalLB e como ele se compara às outras opções de balanceamento de carga, consulte Balanceamento de carga em pacote com MetalLB.

  1. Na seção Pools de endereços, configure pelo menos um pool de endereços da seguinte maneira:

    1. Insira um Nome para o pool de nós.

    2. Insira um intervalo de endereços IP que contenha o VIP de entrada em qualquer notação CIDR (por exemplo, 192.0.2.0/26) ou a notação de intervalo (por exemplo, 192.0.2.64-192.0.2.72). Para especificar um único endereço IP em um pool, use /32 na notação CIDR (por exemplo, 192.0.2.1/32).

    3. Se os endereços IP dos Serviços do tipo LoadBalancer não estiverem no mesmo intervalo de endereços IP que o VIP de entrada, clique em + Adicionar intervalo de endereços IP e digite outro endereço. um intervalo

      Os endereços IP de cada pool não podem se sobrepor e precisam estar na mesma sub-rede que os nós do cluster.

    4. Em Atribuição de endereços IP, selecione uma das seguintes opções:

      • Automático: escolha essa opção se quiser que o controlador do MetalLB atribua automaticamente endereços IP do pool de endereços aos serviços do tipo LoadBalancer.
      • Manual: escolha essa opção se você pretende usar endereços do pool para especificar manualmente os endereços para serviços do tipo LoadBalancer.
    5. Clique em Evitar endereços IP com bugs se quiser que o controlador MetalLB não use endereços do pool que terminam em .0 ou .255. Isso evita o problema de dispositivos com bug de consumo que descartam o tráfego enviado para esses endereços IP especiais.

    6. Quando terminar, clique em Concluído.

  2. Se necessário, clique em Adicionar pool de endereços.

  3. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado ao servidor da API Kubernetes do cluster de usuário. O servidor da API Kubernetes para o cluster de usuário é executado em um nó no cluster de administrador. Esse endereço IP precisa estar no mesmo domínio L2 que os nós do cluster de administrador. Não adicione esse endereço na seção Pools de endereços.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada. É necessário adicionar isso a um pool de endereços na seção Pools de endereços.

  4. Clique em Continuar.

Balanceador de carga F5 Big-IP

Só é possível usar o F5 para o cluster de usuário se o cluster de administrador estiver usando o F5. Instale e configure o F5 BIG-IP ADC antes de integrá-lo aos clusters do Anthos no VMware. Consulte o Guia de instalação do ADC F5 BIG-IP para mais informações. O nome de usuário e a senha F5 são herdados do cluster de administrador.

  1. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado para o servidor da API Kubernetes.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada.

  2. No campo Endereço, digite o endereço do balanceador de carga F5 BIG-IP.

  3. No campo Partição, insira o nome de uma partição BIG-IP que você criou para o cluster de usuário.

  4. No campo Nome do pool de sNAT, insira o nome do pool de SNAT, se aplicável.

  5. Clique em Continuar.

Balanceador de carga manual

Configure o balanceamento de carga manual. Só é possível usar um balanceador de carga manual para o cluster de usuário se o cluster de administrador usar um balanceador de carga manual. Em clusters do Anthos no VMware, o servidor da API Kubernetes, o proxy de entrada e o serviço de complemento para agregação de registros são expostos por um serviço do Kubernetes do tipo LoadBalancer. Escolha seus próprios valores de nodePort no intervalo 30000 - 32767 para esses Serviços. Para o proxy de entrada, escolha um valor de nodePort para tráfego HTTP e HTTPS. Consulte Como ativar o modo de balanceamento de carga manual para mais informações.

  1. Na seção IPs virtuais, digite o seguinte:

    • Plano de controle VIP: o endereço IP de destino a ser usado para o tráfego enviado para o servidor da API Kubernetes.

    • Ingress VIP: o endereço IP a ser configurado no balanceador de carga para o proxy de entrada.

  2. No campo Porta do nó do plano de controle, insira um valor nodePort para o servidor da API Kubernetes. O servidor da API Kubernetes de um cluster de usuário é executado no cluster de administrador.

  3. No campo Porta do nó HTTP de entrada, insira um valor nodePort para o tráfego HTTP do proxy de entrada.

  4. No campo Porta de nó HTTPS de entrada, insira um valor nodePort para o tráfego HTTPS ao proxy de entrada.

  5. No campo Porta do nó do servidor de conectividade, insira um valor nodePort para o servidor da Konnectivity.

  6. Clique em Continuar.

CLI da gcloud

Escolha o balanceador de carga a ser configurado para o cluster. Consulte a visão geral do balanceador de carga para mais informações.

Empacotado com MetalLB

Configurar balanceamento de carga em pacote com o MetalLB. Só é possível usar o MetalLB no cluster de usuário se o cluster de administrador estiver usando o SeeSaw ou o MetalLB. Essa opção requer configuração mínima. Executado diretamente nos nós do cluster e não requer VMs extras Para mais informações sobre os benefícios do uso do MetalLB e como ele se compara às outras opções de balanceamento de carga, consulte Balanceamento de carga em pacote com MetalLB.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --NETWORKING_FLAGS \
  --metal-lb-config-address-pools='pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Substitua:

  • Em --metal-lb-config-address-pool: especifique a configuração de pools de endereços a serem usados pelo balanceador de carga MetalLB. O valor do flag tem o seguinte formato:

    'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
    

    O valor tem segmentos que começam com as palavras-chave pool, avoid-buggy-ip, manual-assign e addresses. Separe cada segmento com uma vírgula..

    • pool: um nome de sua escolha para o pool.

    • avoid-buggy-ips: se você definir isso como True, o controlador MetalLB não atribuirá endereços IP que terminam em .0 ou .255 aos Serviços. Isso evita o problema de dispositivos de consumo com bug que descartam o tráfego por erro enviado para esses endereços IP especiais. Se não for especificado, False será usado como padrão.

    • manual-ssign: se você não quiser que o controlador do MetalLB atribua automaticamente endereços IP deste pool aos Serviços, defina-o como True. Em seguida, um desenvolvedor pode criar um Serviço do tipo LoadBalancer e especificar manualmente um dos endereços do pool. Se não for especificado, manual-assign será definido como False.

    • Na lista de addresses: cada endereço precisa ser um intervalo em notação CIDR ou hífen. Para especificar um único endereço IP em um pool (como o VIP de entrada), use /32 na notação CIDR (por exemplo, 192.0.2.1/32).

    Observe o seguinte:

    • Coloque o valor inteiro entre aspas simples.
    • Não é permitido usar espaços em branco.
    • Separe cada intervalo de endereços IP com um ponto e vírgula.

    Exemplo:

    'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=10.251.134.80/32;192.168.1.0/26;192.168.1.2-192.168.1.3'
    
  • CONTROL_PLANE_VIP: o endereço IP que você decidiu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de usuário.

    Exemplo: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: o endereço IP que você escolheu configurar no balanceador de carga para o proxy de entrada.

    Exemplo: --ingress-vip=10.251.134.80

O endereço IP do VIP de entrada precisa estar em um dos pools de endereços do MetalLB.

Balanceador de carga F5 Big-IP

Só é possível usar o F5 para o cluster de usuário se o cluster de administrador estiver usando o F5. Instale e configure o F5 BIG-IP ADC antes de integrá-lo aos clusters do Anthos no VMware. Consulte o Guia de instalação do ADC F5 BIG-IP para mais informações. O nome de usuário e a senha F5 são herdados do cluster de administrador.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --NETWORKING_FLAGS \
  --f5-config-address=F5_CONFIG_ADDRESS \
  --f5-config-partition=F5_CONFIG_PARTITION \
  --f5-config-snat-pool=F5_CONFIG_SNAT_POOL \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --ingress-vip=INGRESS_VIP
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Substitua:

  • F5_CONFIG_ADDRESS: o endereço do balanceador de carga F5 BIG-IP.

  • F5_CONFIG_PARTITION: o nome de uma partição BIG-IP que você criou para o cluster de administrador.

  • F5_CONFIG_SNAT_POOL: o nome do pool de SNAT, se aplicável

  • CONTROL_PLANE_VIP: o endereço IP que você decidiu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de usuário.

Exemplo: --control-plane-vip=203.0.113.3

  • INGRESS_VIP: o endereço IP que você escolheu configurar no balanceador de carga para o proxy de entrada.

    Exemplo: --ingress-vip=10.251.132.9

Balanceador de carga manual

Configure o balanceamento de carga manual. Só é possível usar um balanceador de carga manual para o cluster de usuário se o cluster de administrador usar um balanceador de carga manual. Em clusters do Anthos no VMware, o servidor da API Kubernetes, o proxy de entrada e o serviço de complemento para agregação de registros são expostos por um serviço do Kubernetes do tipo LoadBalancer. Escolha seus próprios valores de nodePort no intervalo 30000 - 32767 para esses Serviços. Para o proxy de entrada, escolha um valor de nodePort para tráfego HTTP e HTTPS. Consulte Como ativar o modo de balanceamento de carga manual para mais informações.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --NETWORKING_FLAGS \
  --control-plane-vip=CONTROL_PLANE_VIP \
  --control-plane-node-port=CONTROL_PLANE_NODE_PORT \
  --ingress-vip=INGRESS_VIP \
  --ingress-http-node-port=INGRESS_HTTP_NODE_PORT \
  --ingress-https-node-port=INGRESS_HTTPS_NODE_PORT \
  --konnectivity-server-node-port=KONNECTIVITY_SERVER_NODE_PORT \
  --CONTROL_PLANE_FLAGS \
  --FEATURES_FLAGS

Substitua:

  • CONTROL_PLANE_VIP: o endereço IP que você decidiu configurar no balanceador de carga para o servidor da API Kubernetes do cluster de usuário.

    Exemplo: --control-plane-vip=203.0.113.3

  • CONTROL_PLANE_NODE_PORT: um valor nodePort para o servidor da API Kubernetes.

  • INGRESS_VIP: o endereço IP que você escolheu configurar no balanceador de carga para o proxy de entrada.

    Exemplo: --ingress-vip=203.0.113.4

  • INGRESS_HTTP_NODE_PORT: um valor de nodePort do tráfego HTTP para o proxy de entrada

  • INGRESS_HTTPS_NODE_PORTP: um valor de nodePort do tráfego HTTPS para o proxy de entrada

  • KONNECTIVITY_SERVER_NODE_PORT: um valor de nodePort do servidor Konnectivity

Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Plano de controle

Console

Revise os valores padrão configurados para os nós no cluster de administrador que executam os componentes do plano de controle do cluster de usuário e ajuste os valores conforme necessário.

  1. No campo vCPUs de nós do plano de controle, insira o número de vCPUs (mínimo de 4) para cada nó de cluster de administrador que serve como plano de controle do cluster de usuário.
  2. No campo Memória do nó do plano de controle, insira o tamanho da memória em MiB (mínimo de 8.192 e precisa ser um múltiplo de 4) para cada nó do cluster de administrador que serve como plano de controle para o cluster de usuário.
  3. Em Nós do plano de controle, selecione o número de nós do plano de controle para o cluster de usuário. Por exemplo, é possível selecionar um nó do plano de controle para um ambiente de desenvolvimento e três nós do plano para alta disponibilidade (HA, na sigla em inglês). O plano de controle do usuário fica em um nó do cluster de administrador. Portanto, certifique-se de ter reservado endereços IP suficientes para cada nó do plano de controle. Para mais informações, consulte De quantos endereços IP um cluster de administrador precisa?.

  4. Clique em Continuar para acessar a seção Recursos.

CLI da gcloud

Nesta seção, descrevemos as flags dos nós no cluster de administrador que servem como nós do plano de controle para o cluster de usuário.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --NETWORKING_FLAGS \
  --LOAD_BALANCER_FLAGS \
  --cpus=vCPUS \
  --memory=MEMORY \
  --replicas=NODES \
  --enable-auto-resize
  --FEATURES_FLAGS

Substitua:

  • vCPUS: o número de vCPUs (mínimo de 4) para cada nó de cluster de administrador que serve como plano de controle do cluster de usuário Se não for especificado, o padrão será quatro vCPUs.

  • MEMORY: o tamanho da memória em mebibytes (MiB) de cada nó do cluster de administrador que serve como plano de controle do cluster de usuário. O valor mínimo é 8.192 e precisa ser um múltiplo de 4. Se não for especificado, o padrão será 8.192.

  • NODES: o número de nós do plano de controle do cluster de usuário. Por exemplo, é possível selecionar um nó do plano de controle para um ambiente de desenvolvimento e três nós do plano para ambientes de alta disponibilidade (HA, na sigla em inglês). O plano de controle do usuário fica em um nó do cluster de administrador. Portanto, certifique-se de ter reservado endereços IP suficientes para cada nó do plano de controle. Para mais informações, consulte De quantos endereços IP um cluster de administrador precisa?. Se não for especificado, o padrão será 1.

  • Opcional: se você quiser ativar o redimensionamento automático dos nós do plano de controle para o cluster de usuário, inclua --enable-auto-resize. Para mais informações, consulte Ativar o redimensionamento de nós para os nós do plano de controle de um cluster de usuário.

Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Recursos

Console

Nesta seção, são exibidos os recursos e as operações ativados no cluster.

Os itens a seguir são ativados automaticamente e não podem ser desativados:

Os itens a seguir são ativados por padrão, mas você pode desativá-los:

  • Ativar o driver CSI do vSphere: também chamado de plug-in do vSphere Container Storage. O driver da Interface de Armazenamento de Contêiner (CSI, na sigla em inglês) é executado em um cluster nativo do Kubernetes implantado no vSphere para provisionar volumes permanentes no armazenamento do vSphere. Para mais informações, consulte Como usar o driver da interface de armazenamento do contêiner do vSphere.
  • Ativar grupos de antiafinidade: as regras de antiafinidade do VMware Distribuird Resource Scheduler (DRS) são criadas automaticamente para os nós do cluster de usuário, fazendo com que eles sejam distribuídos por pelo menos três hosts físicos. no seu data center. Verifique se o ambiente vSphere atende aos requisitos.

CLI da gcloud

Nesta seção, descrevemos como desativar alguns recursos do vSphere.

gcloud alpha container vmware clusters create USER_CLUSTER_NAME \
  --CLUSTER_BASICS_FLAGS \
  --NETWORKING_FLAGS \
  --LOAD_BALANCER_FLAGS \
  --CONTROL_PLANE_FLAGS \
  --disable-aag-config \
  --disable-vsphere-csi

Especifique o seguinte, se necessário:

  • Opcional: --disable-aag-config: se você não incluir essa flag, as regras de antiafinidade do Distributed Resource Scheduler (DRS) do VMware serão criadas automaticamente para os nós do cluster de usuário, fazendo com que eles sejam distribuídos em pelo menos três hosts físicos no data center. Verifique se o ambiente vSphere atende aos requisitos. Se o cluster não atender aos requisitos, inclua esta flag.

  • Opcional: --disable-vsphere-csi: se você não incluir essa flag, os componentes do vSphere Container Storage Interface (CSI) serão implantados no cluster de usuário. O driver CSI é executado em um cluster nativo do Kubernetes implantado no vSphere para provisionar volumes permanentes no armazenamento do vSphere. Para mais informações, consulte Como usar o driver da interface de armazenamento do contêiner do vSphere. Se você não quiser implantar os componentes da CSI, inclua essa flag.

Para ver uma lista completa das sinalizações e as descrições delas, consulte a referência da CLI gcloud.

Criar o cluster e os pools de nós

O cluster precisa ter pelo menos um pool de nós para nós de trabalho. Um pool de nós é um modelo para os grupos de nós criados nesse cluster.

No console, configure pelo menos um pool de nós (ou aceite os valores padrão) e crie o cluster. É possível adicionar mais pools de nós depois que o cluster é criado. Com a CLI gcloud, primeiro você cria o cluster e depois adiciona um ou mais pools de nós ao cluster recém-criado.

Console

O cluster vai ser criado com pelo menos um pool de nós. Um pool de nós é um modelo para os grupos de nós criados nesse cluster. Para mais informações, consulte Como criar e gerenciar pools de nós.

  1. Na seção Detalhes do pool de nós, preencha o seguinte:

    1. Insira o Nome do pool de nós ou aceite "default-pool" como o nome.
    2. O número de vCPUs de cada nó no pool (mínimo de 4 por worker do cluster de usuário)
    3. Insira o tamanho da memória em mebibytes (MiB) para cada nó no pool (mínimo de 8.192 MiB por nó de trabalho do cluster de usuário, e precisa ser um múltiplo de 4).
    4. No campo Nodes, insira o número de nós no pool (mínimo de três). Se você tiver inserido endereços IP estáticos para os IPs do nó na seção Rede, verifique se você inseriu endereços IP suficientes para acomodar esses nós do cluster de usuário.
    5. Selecione o tipo de imagem do SO: Ubuntu, Ubuntu Containerd ou COS.
    6. Digite Tamanho do disco de inicialização em gibibytes (GiB) (mínimo de 40 GiB).
    7. Se você estiver usando MetalLB como balanceador de carga, ele precisará ser ativado em pelo menos um pool de nós. Deixe a opção Usar este pool de nós para balanceamento de carga MetalLB selecionada ou adicione outro pool de nós para usar no MetalLB.
  2. NaMetadados do pool de nós (opcional) seção, se quiser adicionar o Kubernetes rótulos e taints , faça o seguinte:

    1. Clique em + Adicionar rótulos do Kubernetes. Insira a Chave e o Valor do rótulo. Repita quantas vezes forem necessárias.
    2. Clique em + Adicionar taint. Insira Key, Value e Effect para o taint. Repita quantas vezes forem necessárias.
  3. Clique em Verificar e concluir para criar o cluster de usuário. Leva 15 minutos ou mais para criar o cluster de usuário. O console exibe mensagens de status durante a verificação das configurações e a criação do cluster no data center.

    Se for encontrado um erro ao verificar as configurações, o console exibirá uma mensagem de erro que deve estar clara o suficiente para que você corrija o problema de configuração e tente criar o cluster novamente.

    Para mais informações sobre possíveis erros e como corrigi-los, consulte Resolver problemas na criação de clusters de usuário no console do Google Cloud.

CLI da gcloud

Antes de executar o comando gcloud para criar o cluster, inclua --validate-only para validar a configuração especificada nas flags para o comando gcloud. Quando estiver tudo pronto para criar o cluster, remova essa flags e execute o comando. Leva 15 minutos ou mais para criar o cluster de usuário.

Depois que o cluster for criado, você precisará criar pelo menos um pool de nós antes de implantar cargas de trabalho.

gcloud alpha container vmware node-pools create NODE_POOL_NAME \
--cluster=USER_CLUSTER_NAME  \
--project=FLEET_HOST_PROJECT_ID \
--location=REGION \
--image-type=IMAGE_TYPE  \
--boot-disk-size=BOOT_DISK_SIZE \
--cpus=vCPUS \
--memory=MEMORY \
--replicas=NODES \
--enable-load-balancer

Substitua:

  • NODE_POOL_NAME: um nome de sua escolha para o pool de nós. O nome precisa:

    • conter no máximo 40 caracteres
    • conter apenas caracteres alfanuméricos minúsculos ou um hífen (-)
    • começam com um caractere alfabético
    • terminar com um caractere alfanumérico.
  • USER_CLUSTER_NAME: o nome do cluster de usuário recém-criado

  • FLEET_HOST_PROJECT_ID: o ID do projeto em que o cluster está registrado.

  • REGION: o local do Google Cloud que você especificou ao criar o cluster.

  • IMAGE_TYPE: o tipo de imagem do SO a ser executado nas VMs no pool de nós Defina como ubuntu_containerd ou cos.

  • BOOT_DISK_SIZE: o tamanho do disco de inicialização em gigabytes para cada nó do pool. O mínimo é de 40 GiB.

  • vCPUs: o número de CPUs de cada nó no pool de nós. O mínimo é 4.

  • MEMORY: o tamanho da memória em mebibytes (MiB) de cada nó no pool. O mínimo é 8.192 MiB por nó de trabalho de cluster de usuário, e o valor precisa ser um múltiplo de 4.

  • NODES: o número de nós no pool de nós. O mínimo é 3.

  • Se você estiver usando o MetalLB como balanceador de carga, inclua --enable-load-balancer se quiser que o alto-falante do MetalLB seja executado nos nós do pool. O MetalLB precisa estar ativado em pelo menos um pool de nós. Se você não incluir essa flags, precisará criar outro pool de nós para usar no MetalLB.

Para informações sobre sinalizações opcionais, consulte Adicionar um pool de nós e a referência da CLI gcloud.

conecte-se ao cluster de usuário

Quando você cria um cluster de usuário no console, o cluster é configurado com as políticas de controle de acesso baseado em papel (RBAC, na sigla em inglês) do Kubernetes para que você possa fazer login no cluster usando sua identidade do Google Cloud. Ao criar um cluster de usuário com a CLI gcloud, por padrão, você recebe essas políticas do RBAC se não incluir a flag --admin-users. Se você incluir --admin-users para designar outro usuário como administrador, o padrão será substituído e será necessário incluir seu endereço de e-mail e o endereço de e-mail do outro administrador. Para mais informações sobre as políticas de IAM e RBAC necessárias, consulte Configurar a autenticação de identidade do Google.

Todos os clusters têm um endpoint canônico. O endpoint expõe o servidor da API Kubernetes que kubectl e outros serviços usam para se comunicar com o plano de controle do cluster pela porta TCP 443. Esse endpoint não pode ser acessado na Internet pública. Se você tiver acesso ao endpoint particular do cluster por meio da VPC, poderá se conectar diretamente ao endpoint particular e gerar um arquivo kubeconfig diretamente. Caso contrário, use o gateway do Connect. Nesse caso, kubectl usa o Connect, que encaminha o tráfego para o endpoint particular em seu nome com segurança.

Para acessar o cluster de usuário pela linha de comando, você precisa de um arquivo kubeconfig. Há duas maneiras de gerar um arquivo kubeconfig:

  • Use o gateway do Connect para acessar o cluster em um computador que tenha a CLI do Google Cloud instalada. O gateway do Connect permite gerenciar seus clusters com facilidade e segurança. Para mais informações, consulte Como se conectar a clusters registrados com o gateway do Connect.

  • Para acesso direto a endpoints particulares, crie um arquivo kubeconfig na estação de trabalho do administrador e gerencie o cluster.

Aguarde até que o console indique que o status do cluster de usuário está íntegro.

Conectar gateway

  1. Inicialize a CLI gcloud para uso com o projeto host da frota ou execute os seguintes comandos para fazer login com sua Conta do Google, defina o projeto host da frota como o padrão e atualize os componentes:

    gcloud auth login
    gcloud config set project PROJECT_ID
    gcloud components update
    
  2. Busque as credenciais de cluster usadas para interagir com o gateway do Connect. No comando a seguir, substitua MEMBERSHIP_NAME pelo nome do seu cluster. Nos clusters do Anthos no VMware, o nome da associação é igual ao nome do cluster.

    gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
    

    Esse comando retorna um Conectar-se específico ao gatewaykubeconfig especial que permite a conexão com o cluster por meio do gateway.

    Depois de ter as credenciais necessárias, é possível executar comandos usando kubectl normalmente para qualquer cluster do Kubernetes. Não é necessário especificar o nome do arquivo kubeconfig, por exemplo:

    kubectl get namespaces
    

Estação de trabalho do administrador

Para criar o arquivo kubeconfig do cluster de usuário na estação de trabalho de administrador, execute o comando a seguir para salvar um novo arquivo kubeconfig para o cluster de usuário localmente. Substitua:

  • CLUSTER_NAME: o nome do cluster de usuário recém-criado
  • ADMIN_CLUSTER_KUBECONFIG especifica o caminho até o arquivo kubeconfig do cluster de administrador;
  • USER_CLUSTER_KUBECONFIG: o nome do arquivo kubeconfig do cluster de usuário gerado pelo comando
kubectl get secret admin \
  --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
  -n CLUSTER_NAME \
  -o=jsonpath='{.data.admin\.conf}' | base64 -d > USER_CLUSTER_KUBECONFIG

Depois de salvar o arquivo, comece a acessar o cluster de usuário usando kubectl na estação de trabalho de administrador, por exemplo:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get namespaces

A seguir