Como configurar o Anthos no Google Cloud

Nesta página, mostramos como configurar o Anthos no Google Cloud.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  4. Ative a API Anthos.

    Ative a API

  5. Instale e inicialize o SDK do Cloud..
  6. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  7. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como confirmar se o faturamento está ativado para o projeto.

  8. Ative a API Anthos.

    Ative a API

  9. Instale e inicialize o SDK do Cloud..

Talvez você precise ativar outras APIs no projeto do Google Cloud para ativar alguns recursos do Anthos. Veja mais detalhes no guia de instalação relevante.

Requisitos de cluster

O Anthos no Google Cloud é compatível com canais de lançamento e versões estáticas. No entanto, recomendamos o uso de canais de lançamento sempre que possível, porque eles oferecem outros benefícios, como atualizações automáticas nos clusters do GKE.

Se você quiser usar o Anthos Service Mesh, saiba que esse recurso tem requisitos específicos de cluster para instalação. Para detalhes, consulte os requisitos do cluster do Anthos Service Mesh.

Como registrar clusters na frota

É necessário registrar todos os clusters que você quer usar com o Anthos na frota do projeto. Uma frota (anteriormente conhecida como ambiente) fornece uma maneira unificada de visualizar e gerenciar vários clusters e as cargas de trabalho deles como parte do Google Cloud. Saiba mais sobre frotas e a funcionalidade que elas propiciam no Guia de frotas.

Depois de registrar clusters no projeto do Anthos, é possível navegar e gerenciar todos os clusters registrados na página Clusters do Anthos no Console do Cloud. Você tem o direito de ativar e usar os recursos do Anthos nesses clusters, além de poder ativar alguns recursos do Anthos em toda a frota na página Recursos do Anthos. As cobranças do Anthos se aplicam apenas aos seus clusters registrados.

Verifique os pré-requisitos de registro antes de registrar o cluster para garantir que você tenha as permissões relevantes e as APIs ativadas para registrar um cluster. Saiba mais sobre as diferentes opções de registro em Como registrar um cluster.

Console

A maneira mais simples e rápida de registrar um cluster do GKE é registrá-lo na página de clusters do Anthos no Console do Cloud.

Para registrar um cluster:

  1. (Opcional) Se você quiser que o cluster registrado use o recurso Identidade da carga de trabalho da frota, verifique se a Identidade da carga de trabalho do GKE está ativada no cluster. A Identidade da carga de trabalho da frota é ativada automaticamente nos clusters que têm a Identidade da carga de trabalho do GKE quando eles são registrados no Console do Cloud.
  2. No Console do Cloud, acesse a página Clusters do Anthos. Esta página mostra todos os clusters registrados.

    Acessar a página de clusters do Anthos

  3. Clique em Registrar cluster existente.

  4. Clique em Registrar ao lado do cluster não registrado que você quer adicionar à frota.

Terraform

É possível registrar clusters do GKE com o Terraform usando o provedor google-beta. Há uma referência completa para o recurso gke_hub_membership usado para configurar o registro no registro do terraform.

Registrar um cluster do GKE

Para registrar o cluster, use os seguintes blocos na configuração.

  1. Especifique o provedor google-beta como um provedor obrigatório, como no snippet a seguir. A versão precisa ser superior à 3.62.0.

    terraform {
      required_providers {
        google-beta = {
          source = "hashicorp/google-beta"
          version = "3.67.0"
        }
      }
    }
    

    Esse provedor é obrigatório se você quiser usar o gke_hub_membership.

  2. Defina os seguintes valores padrão para o provedor:

    provider "google-beta" {
      credentials = file("SERVICE_ACCOUNT_KEY_PATH")
      project = "PROJECT_ID"
    }
    

    Substitua:

    • SERVICE_ACCOUNT_KEY_PATH: o caminho do arquivo local para o arquivo JSON da chave privada da conta de serviço baixado como parte dos Pré-requisitos. Esta chave de conta de serviço é armazenada como um secret chamado creds-gcp no namespace gke-connect. Essa chave de conta de serviço permite que o Terraform acesse sua conta do Google Cloud.
    • PROJECT_ID: o projeto padrão que você escolhe para provisionar seus recursos do Terraform.
  3. Criar um cluster do GKE (opcional)

    Se você quiser registrar um cluster do GKE existente, pule esta etapa.

    resource "google_container_cluster" "TF_CLUSTER_RESOURCE_NAME" {
      provider = google-beta
      name               = "CLUSTER_NAME"
      location           = "ZONE"
      initial_node_count = 1
    }
    

    Substitua:

    • TF_CLUSTER_RESOURCE_NAME: o nome escolhido para identificar exclusivamente o recurso google_container_cluster do Terraform criado por este bloco.
    • CLUSTER_NAME: o nome que você escolhe para representar exclusivamente o cluster que você criou.
    • ZONE: a zona padrão que você escolhe para provisionar o recurso de cluster do GKE. Por exemplo, us-central1-a.
  4. Registrar uma assinatura no cluster do GKE.

    resource "google_gke_hub_membership" "TF_MEMBERSHIP_RESOURCE_NAME" {
      provider = google-beta
      project_id = "HUB_PROJECT_ID"
      membership_id = "MEMBERSHIP_NAME"
      endpoint {
        gke_cluster {
         resource_link = "//container.googleapis.com/CLUSTER_RESOURCE_NAME"
        }
      }
    }
    

    Substitua:

    • TF_MEMBERSHIP_RESOURCE_NAME: o nome que você escolhe para identificar exclusivamente o recurso google_gke_hub_membership do Terraform criado por esse bloco.
    • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado na frota.
    • CLUSTER_RESOURCE_NAME: o nome do recurso do Google Cloud para o cluster do GKE. Por exemplo, projects/my-project/zones/us-west1-a/clusters/my-cluster. Se o cluster for provisionado com o Terraform, isso será ${google_container_cluster.TF_CLUSTER_RESOURCE_NAME.id}.
    • HUB_PROJECT_ID: se isso não for definido, a assinatura do cluster será criada no projeto padrão especificado anteriormente (PROJECT_ID). Defina este campo se você quiser registrar o cluster do GKE em um projeto diferente.

Como ativar a identidade da carga de trabalho em um cluster do GKE registrado

A ativação da identidade da carga de trabalho usa a mesma configuração que o registro de um cluster, com as seguintes etapas adicionais.

  1. Ative a identidade da carga de trabalho do GKE adicionando o seguinte no bloco de recursos google_container_cluster relevante. Você precisa fazer isso para clusters novos e existentes.

    workload_identity_config {
      identity_namespace = "PROJECT_ID.svc.id.goog"
    }
    

    Substitua:

    • PROJECT_ID: o projeto padrão que você escolhe para provisionar seus recursos do Terraform.
  2. Ative a identidade da carga de trabalho da frota adicionando o seguinte no bloco de recursos google_gke_hub_membership relevante.

    authority {
      issuer = "https://container.googleapis.com/v1/CLUSTER_RESOURCE_NAME"
    }
    

    Substitua:

    • CLUSTER_RESOURCE_NAME: o recurso do Google Cloud para o cluster do GKE. Por exemplo, projects/my-project/zones/us-west1-a/clusters/my-cluster. Se o cluster for provisionado com o Terraform, isso será ${google_container_cluster.TF_CLUSTER_RESOURCE_NAME.id}.

Config Connector

Se você tiver o complemento do Config Connector instalado, poderá usar o Config Connector para registrar clusters do GKE. Verifique se a sua versão do Config Connector é superior à 1.47.0. Veja uma referência completa do recurso GKEHubMembership na Referência do Config Connector.

Registrar um cluster do GKE

Para registrar o cluster, primeiro especifique onde você quer criar seus recursos, seguindo as instruções no guia do Config Connector. Em seguida, crie um arquivo YAML para registrar e (opcionalmente) criar um cluster, da seguinte maneira:

Criar e registrar um cluster do GKE

  1. Crie um cluster do GKE:

    apiVersion: container.cnrm.cloud.google.com/v1beta1
    kind: ContainerCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      location: ZONE
      initialNodeCount: 1
    

    Substitua:

    • CLUSTER_NAME: o nome que você escolheu para representar exclusivamente o cluster que você criou com o Config Connector.
    • ZONE: a zona que você escolheu provisionar o recurso de cluster do GKE. Por exemplo, us-central1-a.
  2. Registrar uma assinatura no cluster do GKE.

    apiVersion: gkehub.cnrm.cloud.google.com/v1beta1
    kind: GKEHubMembership
    metadata:
      name: MEMBERSHIP_NAME
    spec:
      location: global
      endpoint:
        gkeCluster:
          resourceRef:
            name: CLUSTER_NAME
    

    Substitua:

    • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado na frota.
    • CLUSTER_NAME: o nome que você escolheu para representar exclusivamente o cluster que você criou com o Config Connector.

Registrar o cluster em um projeto diferente

Adicione o seguinte ao campo metadata do recurso GKEHubMembership.

   metadata:
     annotations:
       cnrm.cloud.google.com/project-id: HUB_PROJECT_ID

Substitua:

  • HUB_PROJECT_ID: o projeto que você escolheu para registrar o cluster do GKE.

Registrar um cluster atual

Use a configuração a seguir se quiser registrar qualquer cluster existente, independentemente de como ele foi criado. Nesse caso, você precisa especificar o nome completo do recurso do cluster para que o Config Connector possa encontrá-lo. Substitua o campo resourceRef do recurso GKEHubMembership por:

   resourceRef:
     external: //container.googleapis.com/CLUSTER_RESOURCE_NAME

Substitua:

  • CLUSTER_RESOURCE_NAME: o nome do recurso do Google Cloud para o cluster do GKE. Por exemplo, projects/my-project/zones/us-west1-a/clusters/my-cluster.

Como ativar a identidade da carga de trabalho em um cluster do GKE registrado

A ativação da identidade da carga de trabalho usa a mesma configuração que o registro de um cluster, com as seguintes etapas adicionais.

  1. Ative a identidade da carga de trabalho do GKE adicionando o seguinte no campo spec do recurso ContainerCluster. Você precisa fazer isso para clusters novos e existentes.

    spec:
      workloadIdentityConfig:
        identityNamespace: PROJECT_ID.svc.id.goog
    

    Substitua:

  2. Ative a Identidade da carga de trabalho do Fleet adicionando o seguinte ao campo spec do bloco de recursos GKEHubMembership.

    spec:
      authority:
        issuer: https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
    }
    

    Substitua:

    • PROJECT_ID: o projeto padrão que você escolheu por meio da anotação de namespace para criar o recurso de cluster do GKE.
    • ZONE: a zona que você escolheu provisionar o recurso de cluster do GKE. Por exemplo, us-central1-a.
    • CLUSTER_NAME: o nome que você escolhe para representar exclusivamente o cluster que você criou.

gcloud

Para registrar um cluster com a ferramenta de linha de comando gcloud, é necessário ter a versão 281.0.0 ou superior do SDK do Cloud

Registrar o cluster usando a linha de comando instala o agente do Connect no cluster, que pode usar a Identidade da carga de trabalho ou uma conta de serviço do Google Cloud para autenticação.

Como registrar um cluster do GKE usando a Identidade da carga de trabalho (recomendado)

  1. Verifique se o cluster tem a Identidade da carga de trabalho do GKE ativada seguindo as instruções nos pré-requisitos.

  2. Execute um dos seguintes comandos para registrar o cluster:

    gcloud container hub memberships register MEMBERSHIP_NAME \
     --gke-uri=GKE_URI \
     --enable-workload-identity
    

    ou

    gcloud container hub memberships register MEMBERSHIP_NAME \
     --gke-cluster=GKE_CLUSTER \
     --enable-workload-identity
    

    Substitua:

    • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado na frota.
    • GKE_URI: o URI do cluster do GKE, por exemplo: https://container.googleapis.com/v1/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster. Para conseguir o URI, execute gcloud container clusters list --uri.
    • GKE_CLUSTER: a location/name do cluster do GKE do projeto atual. O local pode ser uma zona ou região, por exemplo: us-central1-a/my-gke-cluster.

Como registrar um cluster do GKE usando a conta de serviço

  1. Verifique se você criou uma conta de serviço para ser usada pelo agente do Connect, conforme descrito nos nossos pré-requisitos.

  2. Execute um dos seguintes comandos:

    gcloud container hub memberships register MEMBERSHIP_NAME \
     --gke-uri=GKE_URI \
     --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
    

    ou

    gcloud container hub memberships register MEMBERSHIP_NAME \
     --gke-cluster=GKE_CLUSTER \
     --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH
    

    Substitua:

    • MEMBERSHIP_NAME: o nome da assinatura que você escolhe para representar de maneira exclusiva o cluster que está sendo registrado na frota.
    • SERVICE_ACCOUNT_KEY_PATH: o caminho do arquivo local para o arquivo JSON da chave privada da conta de serviço baixado como parte dos Pré-requisitos. Esta chave de conta de serviço é armazenada como um secret chamado creds-gcp no namespace gke-connect.
    • GKE_URI: o URI do cluster do GKE, por exemplo: https://container.googleapis.com/v1/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster. Para conseguir o URI, execute gcloud container clusters list --uri.
    • GKE_CLUSTER: a location/name do cluster do GKE do projeto atual. O local pode ser uma zona ou região, por exemplo: us-central1-a/my-gke-cluster.

Usar a ferramenta de linha de comando gcloud fornece algumas opções de registro de cluster mais avançadas que não estão disponíveis no Console do Cloud, incluindo o download e a aplicação do manifesto do agente do Connect por conta própria. Para saber mais sobre essas opções, consulte as opções avançadas de registro na documentação do Connect.

Como ativar recursos do Anthos

Depois de configurar o projeto e os clusters do GKE, use os guias a seguir para ativar outros recursos do Anthos para seus aplicativos. Para ver os conjuntos de documentação completos de todos os componentes do Anthos, incluindo tutoriais, material de referência e muito mais, consulte Componentes do Anthos.

É possível ativar alguns recursos (Anthos Config Management, Multi-Cluster Ingress) para clusters na frota usando a página Recursos do Anthos, embora eles possam demandar configurações adicionais: por exemplo, especificação e autenticação dos repositórios de origem de configuração escolhidos com o Config Sync for Anthos Config Management. Outros recursos precisam ser configurados nos clusters após os guias de instalação.

A seguir