Configure recursos do Google Cloud

Esta página descreve os Google Cloud recursos que tem de criar e configurar antes de criar clusters.

Antes de começar

  1. Crie um Google Cloud projeto e uma conta de faturação.

  2. Se não for um Google Cloud proprietário do projeto, peça a um proprietário do projeto que lhe conceda as seguintes funções de gestão de identidade e de acesso (IAM):

    Função Finalidade
    roles/compute.viewer Obrigatório: necessário quando bmctl valida o campo clusterOperations.location no ficheiro de configuração do cluster.
    roles/iam.serviceAccountAdmin Obrigatório: necessário para criar as contas de serviço que o Google Distributed Cloud requer.
    roles/iam.securityAdmin Obrigatório: necessário para conceder funções do IAM às contas de serviço que o Google Distributed Cloud requer.
    roles/iam.serviceAccountKeyAdmin Obrigatório: necessário para criar ficheiros de chaves JSON para as contas de serviço que o Google Distributed Cloud requer.
    roles/serviceusage.serviceUsageAdmin Obrigatório: necessário para ativar as APIs Google que o Google Distributed Cloud requer.
    roles/gkeonprem.admin Opcional: necessário se quiser criar clusters com clientes da API GKE On-Prem ou configurar um cluster para ser gerido pela API GKE On-Prem.
    roles/gkehub.viewer
    roles/container.viewer
    Opcional: necessário se quiser aceder às páginas do GKE na Google Cloud consola.

    Para obter informações sobre como conceder as funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Ativar APIs

Várias APIs Google têm de estar ativadas no seu Google Cloud projeto associado. O Google Distributed Cloud usa as APIs quando cria clusters. As APIs também são necessárias para manter uma ligação a Google Cloud. A ligação ao Google Cloud permite que o Google Distributed Cloud use o Cloud Logging e o Cloud Monitoring, bem como funcionalidades de frotas, como o Cloud Service Mesh, o Config Sync, o Policy Controller e o Config Controller.

Se usar a ferramenta bmctl para criar clusters, pode incluir a flag --enable-apis quando executar bmctl create config, e bmctl vai ativar as APIs indicadas no seguinte comando gcloud services enable. Se vai usar um cliente da API GKE On-Prem para criar um cluster de administrador ou um cluster de utilizador, tem de ativar as APIs antes de criar o cluster.

Para ativar as APIs, execute os seguintes comandos:

  1. Inicie sessão na CLI Google Cloud:

    gcloud auth login
    
  2. Ative as seguintes APIs:

    gcloud services enable --project=PROJECT_ID \
        anthos.googleapis.com \
        anthosaudit.googleapis.com \
        anthosgke.googleapis.com \
        cloudresourcemanager.googleapis.com \
        compute.googleapis.com \
        connectgateway.googleapis.com \
        container.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        gkeonprem.googleapis.com \
        iam.googleapis.com \
        kubernetesmetadata.googleapis.com \
        logging.googleapis.com \
        monitoring.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com \
        storage.googleapis.com
    

    Com exceção da gkeonprem.googleapis.com, estas APIs Google são necessárias para o seu projeto. As duas APIs seguintes são necessárias apenas para a versão 1.29 e superior:

    • compute.googleapis.com
    • kubernetesmetadata.googleapis.com

    Se instalar os clusters atrás de um proxy, tem de adicionar muitas destas APIs à lista de ligações permitidas. Para ver uma lista das APIs e dos pontos finais que tem de adicionar à lista de autorizações e a justificação do respetivo acesso, consulte Instale através de um proxy .

  3. Para ver que APIs e serviços estão ativados no seu projeto, execute o seguinte comando:

    gcloud services list --project=PROJECT_ID \
        --enabled
    

Configure contas de serviço

Para usar as APIs Google, o Google Distributed Cloud requer uma conta de serviço configurada com funções do IAM específicas no seu projeto Google Cloud associado. Como prática recomendada, deve criar contas de serviço separadas para diferentes fins, especialmente em ambientes de produção.

Se usar a ferramenta bmctl para criar clusters, pode incluir a flag --create-service-accounts quando executar bmctl create config para que bmctl crie as contas de serviço com as funções do IAM necessárias. Se usar um cliente da API GKE On-Prem para criar um cluster de administrador, por predefinição, o comando bmctl register bootstrap cria as contas de serviço com as funções de IAM necessárias quando executa o comando para criar um cluster de arranque.

As contas de serviço também são necessárias para a criação de clusters de utilizadores, mas as contas de serviço são criadas e configuradas quando cria o cluster de administrador que gere os clusters de utilizadores.

A tabela seguinte descreve as contas de serviço criadas automaticamente:

Conta de serviço Finalidade Funções
anthos-baremetal-gcr O Google Distributed Cloud usa esta conta de serviço para transferir imagens de contentores do Artifact Registry. Nenhum
anthos-baremetal-connect Connect Agent usa esta conta de serviço para manter uma ligação entre o cluster e Google Cloud. Isto permite o acesso ao cluster e às funcionalidades de gestão de cargas de trabalho, incluindo a consola e o gateway de ligação, para interagir com o seu cluster. Google Cloud roles/gkehub.connect
anthos-baremetal-register O agente Connect usa esta conta de serviço para registar os seus clusters numa frota. roles/gkehub.admin
anthos-baremetal-cloud-ops O agente do Stackdriver usa esta conta de serviço para exportar registos e métricas de clusters para o Cloud Logging e o Cloud Monitoring. roles/logging.logWriter
roles/monitoring.metricWriter
roles/stackdriver.resourceMetadata.writer
roles/opsconfigmonitoring.resourceMetadata.writer
roles/monitoring.dashboardEditor
roles/monitoring.viewer
roles/serviceusage.serviceUsageViewer
roles/kubernetesmetadata.publisher

Configure contas de serviço manualmente

Se preferir, pode criar manualmente as contas de serviço, configurá-las com as funções necessárias e transferir ficheiros de chaves JSON antes de criar clusters. Se estiver a usar o bmctl para criar clusters, adiciona referências aos ficheiros de chaves JSON ao ficheiro de configuração do cluster adequado. Para ver um exemplo, consulte o artigo Editar o ficheiro de configuração. Se estiver a usar uma API GKE On-Prem para criar um cluster de administrador, pode especificar os ficheiros de chaves quando executar bmctl register bootstrap para criar o cluster de arranque.

Para criar as contas de serviço e os ficheiros de chaves:

  1. Na estação de trabalho de administração, certifique-se de que está no diretório baremetal.

  2. Se ainda não o fez, inicie sessão na CLI do Google Cloud:

    gcloud auth login
    
  3. Crie as contas de serviço:

    gcloud iam service-accounts create anthos-baremetal-gcr \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create anthos-baremetal-connect \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create anthos-baremetal-register \
        --project=PROJECT_ID
    
    gcloud iam service-accounts create anthos-baremetal-cloud-ops \
        --project=PROJECT_ID
    
  4. Conceda as funções IAM necessárias nas contas de serviço:

    gcloud projects add-iam-policy-binding  PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/gkehub.connect"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \
        --role=roles/gkehub.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/logging.logWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.metricWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/stackdriver.resourceMetadata.writer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/opsconfigmonitoring.resourceMetadata.writer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.dashboardEditor"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/monitoring.viewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/serviceusage.serviceUsageViewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/kubernetesmetadata.publisher"
    
  5. Transfira os ficheiros de chave JSON da conta de serviço:

    gcloud iam service-accounts keys create anthos-baremetal-gcr.json \
        --project=PROJECT_ID \
        --iam-account=anthos-baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
    
    gcloud iam service-accounts keys create connect-agent.json \
        --project=PROJECT_ID \
        --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
    
    gcloud iam service-accounts keys create connect-register.json \
        --project=PROJECT_ID \
        --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com
    
    gcloud iam service-accounts keys create anthos-baremetal-cloud-ops.json \
        --project=PROJECT_ID \
        --iam-account=anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
    

Configure uma conta de serviço que possa aceder a um contentor do Cloud Storage

Usa uma conta de serviço e um ficheiro de chave para aceder ao Cloud Storage. Pode usar esta conta de serviço para permitir que as capturas de ecrã dos clusters sejam carregadas automaticamente para contentores do Cloud Storage ou para importar imagens de máquinas virtuais (VM) de contentores do Cloud Storage para utilização com o VM Runtime no GDC.

Para criar a conta de serviço e o ficheiro de chave, conclua os seguintes passos:

  1. Certifique-se de que está no diretório baremetal.

  2. Se ainda não o fez, inicie sessão na CLI do Google Cloud:

    gcloud auth login
    
  3. Se ainda não o fez, ative a API Cloud Storage, storage.googleapis.com no seu Google Cloud projeto:

    gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
    
  4. Crie uma conta de serviço que o cluster possa usar para aceder a contentores do Cloud Storage:

    gcloud iam service-accounts create SA_NAME \
        --project=PROJECT_ID
    

    Substitua SA_NAME pelo nome da nova conta de serviço. O nome desta conta de serviço aparece no endereço de email aprovisionado durante a criação, no formato SA_NAME@PROJECT_ID.iam.gserviceaccount.com.

  5. Crie uma função personalizada com as seguintes autorizações:

    • storage.buckets.create
    • storage.buckets.get
    • storage.buckets.list
    • storage.objects.create
    • resourcemanager.projects.get
    gcloud iam roles create ROLE_ID \
        --permissions=storage.buckets.create,storage.buckets.get,storage.buckets.list,storage.objects.create \
        --project=PROJECT_ID
    

    Substitua ROLE_ID pelo nome da nova função personalizada, como snapshotUpload. O caminho completo desta função personalizada tem o formato projects/PROJECT_ID/roles/ROLE_ID.

  6. Adicione uma associação de políticas à conta de serviço:

    gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --member=serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role='projects/PROJECT_ID/roles/ROLE_ID'
    
  7. Transfira o ficheiro de chave JSON da conta de serviço:

    gcloud iam service-accounts keys create OUTPUT_FILE \
        --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

Para mais informações sobre como criar instantâneos de clusters e carregá-los automaticamente para um contentor do Cloud Storage, consulte o artigo Crie instantâneos para ajudar a diagnosticar problemas de clusters.

Para mais informações sobre como importar imagens de VMs do Cloud Storage, consulte o artigo Crie e use credenciais para importar imagens do Cloud Storage para o VM Runtime no GDC.