Configurar recursos do Google Cloud

Além de atender aos pré-requisitos de instalação, hardware e sistema operacional, é necessário configurar e definir projetos, APIs e contas de serviço do Google Cloud para executar o GKE em bare metal.

O comando bmctl pode ativar automaticamente contas de serviço e APIs no momento da criação do cluster, mas também é possível configurar esses serviços manualmente para um controle mais detalhado das operações.

Antes de começar

Criar um projeto do Google Cloud e uma conta de faturamento.

Durante a instalação, forneça as seguintes credenciais:

  • As chaves SSH particulares necessárias para acessar as máquinas de nó do cluster.
  • Se você não estiver usando root, o nome de login da máquina do nó de cluster.

Verifique se você tem todas as credenciais necessárias antes de tentar instalar o GKE em bare metal.

Como fazer login no gcloud

  1. Faça login no gcloud como um usuário com o login gcloud auth application-default:
  2. gcloud auth application-default login
    
    Você precisa ter um papel de proprietário/editor do projeto para usar os recursos automáticos de ativação da API e de criação de contas de serviço, descritos abaixo. Também é possível adicionar os seguintes papéis de IAM ao usuário:
    • Administrador da conta de serviço
    • Administrador da chave da conta de serviço
    • Administrador de projetos do IAM
    • Leitor do Compute
    • Administrador do Service Usage
    Como alternativa, se você já tiver uma conta de serviço com esses papéis, execute:
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE especifica o caminho para o arquivo de chave JSON da sua conta de serviço.
  3. Receba o ID do projeto do Google Cloud para usar com a criação do cluster:
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

Definir os IDs e papéis padrão do projeto do Google Cloud

É possível definir seu project id padrão além de configurar contas de serviço.

Você precisa ter os papéis owner ou editor no seu projeto para o GKE em bare metal.

Para definir o projeto padrão, emita o comando a seguir e substitua PROJECT_ID pelo ID do projeto do Google Cloud:

gcloud config set project PROJECT_ID

Ativar as APIs

Antes de instalar o GKE em bare metal, é necessário ativar várias APIs no seu projeto associado do Google Cloud. Para ativar as APIs no seu projeto, você precisa receber um dos papéis a seguir no projeto do Google Cloud: roles/owner, roles/editor ou roles/serviceusage.serviceUsageAdmin.

Para mais informações, consulte Conceder um único papel.

Quando você tiver as permissões necessárias do IAM, ative estas APIs:

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • connectgateway.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com

Também é possível usar a ferramenta bmctl para ativar esses serviços.

Configurar contas de serviço manualmente

O comando bmctl do GKE em bare metal pode configurar automaticamente contas de serviço e APIs do Google quando você cria clusters.

No entanto, para ter mais controle sobre seu sistema ou para simplificar a criação de clusters com um conjunto padrão de serviços, contas e projetos, você pode configurá-los manualmente.

Em ambientes de produção, você precisa criar contas de serviço separadas para diferentes finalidades. O GKE em bare metal precisa dos seguintes tipos de contas de serviço do Google Cloud, dependendo da finalidade:

  • Para acessar o Container Registry (gcr.io), não é necessário um papel especial.
  • Para registrar um cluster em uma frota, conceda o papel roles/gkehub.admin do IAM à conta de serviço no projeto do Google Cloud.
  • Para se conectar a frotas, conceda o papel roles/gkehub.connect do IAM à conta de serviço no projeto do Google Cloud.
  • Para enviar registros e métricas ao conjunto de operações do Google Cloud, conceda os seguintes papéis de IAM à conta de serviço no seu projeto do Google Cloud:

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor
    • roles/opsconfigmonitoring.resourceMetadata.writer

O GKE em bare metal conecta seus clusters ao Google Cloud. Essa conexão permite a seguinte funcionalidade:

  • Conecte-se para conectar seu cluster bare metal ao Google Cloud. Assim, é possível acessar o cluster e os recursos de gerenciamento de carga de trabalho. Isso inclui uma interface de usuário unificada, o Console do Cloud, para interagir com o cluster.
  • Logging e Monitoring para ver registros e métricas do cluster no Console do Cloud.
  • Uploads automáticos de snapshots do cluster para buckets do Cloud Storage.

O processo de configuração manual do acesso inclui:

  • Ativação dos serviços do Google necessários no projeto do Cloud;
  • Criar as contas de serviço a seguir com os papéis necessários:
    • Conta de serviço gcr: o GKE em Bare Metal usa essa conta de serviço para fazer o download de imagens de contêiner do Container Registry.
    • Conta de serviço do agente de conexão: a conexão usa essa conta de serviço para manter uma conexão entre seu cluster e o Google Cloud.
    • Conta de serviço de conexão de registro: o Connect usa essa conta para registrar seus clusters com o Google Cloud.
    • Conta de serviço cloud-ops: o Connect usa essa conta de serviço para exportar registros e métricas de clusters para o Logging e o Monitoring.
    • Conta de serviço de agente de armazenamento: bmctl usa essa conta de serviço para armazenar automaticamente snapshots de clusters no Cloud Storage.

  • Download dos arquivos de chave JSON para cada conta de serviço.

Em seguida, adicione referências aos arquivos de chave JSON aos arquivos de configuração apropriados do cluster. Consulte Como criar clusters: visão geral para mais informações.

Configurar uma conta de serviço para extrair imagens de contêiner

Para criar a conta de serviço e o arquivo de chave para extrair imagens de contêiner do GKE em Bare Metal:

  1. Verifique se você está no diretório baremetal.

  2. Crie a conta de serviço anthos-baremetal-gcr com o papel necessário e faça o download do arquivo de chave.

    Estas etapas criam o arquivo de chave anthos-baremetal-gcr.json no diretório baremetal:

    1. Crie a conta de serviço:

      gcloud iam service-accounts create anthos-baremetal-gcr --project=PROJECT_ID
      
    2. Faça o download do arquivo 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
      

Configurar contas de serviço para uso com o Connect

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

  1. Verifique se você está no diretório baremetal.
  2. Ative os serviços necessários do Google no projeto do Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        connectgateway.googleapis.com \
        cloudresourcemanager.googleapis.com \
        anthos.googleapis.com
  4. Crie a conta de serviço anthos-baremetal-connect com o papel necessário e faça o download do arquivo de chave. Estas etapas criam o arquivo de chave anthos-baremetal-connect.json no diretório baremetal:
    1. Crie a conta de serviço
    2. gcloud iam service-accounts create anthos-baremetal-connect --project=PROJECT_ID
    3. Conceda o papel gkehub.connect:
    4. gcloud projects add-iam-policy-binding  PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/gkehub.connect"
    5. Faça o download do arquivo de chave JSON da conta de serviço:
    6. gcloud iam service-accounts keys create connect-agent.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-connect@PROJECT_ID.iam.gserviceaccount.com
      
  5. Crie a conta de serviço anthos-baremetal-register com o papel necessário e faça o download do arquivo de chave. Estas etapas criam o arquivo de chave anthos-baremetal-register.json no diretório baremetal:
    1. Crie a conta de serviço
    2. gcloud iam service-accounts create anthos-baremetal-register \
          --project=PROJECT_ID
    3. Conceda o papel gkehub.admin:
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com" \
          --role=roles/gkehub.admin
    5. Faça o download do arquivo de chave JSON da conta de serviço:
    6. anthos-baremetal-register
      gcloud iam service-accounts keys create connect-register.json \
          --project=PROJECT_ID \
          --iam-account=anthos-baremetal-register@PROJECT_ID.iam.gserviceaccount.com
      

Configurar uma conta de serviço para auditar registros e monitorar projetos

Para criar a conta de serviço e o arquivo de chave de registro e monitoramento, faça o seguinte:

  1. Verifique se você está no diretório baremetal.
  2. Ative os serviços necessários do Google no projeto do Cloud:
  3. gcloud services enable --project PROJECT_ID \
        anthos.googleapis.com \
        anthosaudit.googleapis.com \
        anthosgke.googleapis.com \
        cloudresourcemanager.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        logging.googleapis.com \
        monitoring.googleapis.com \
        opsconfigmonitoring.googleapis.com \
        serviceusage.googleapis.com \
        stackdriver.googleapis.com
    
  4. Crie a conta de serviço anthos-baremetal-cloud-ops com os papéis necessários e faça o download do arquivo de chave. Estas etapas criam o arquivo de chave anthos-baremetal-cloud-ops.json no diretório baremetal:
    1. Criar conta de serviço
    2. gcloud iam service-accounts create anthos-baremetal-cloud-ops \
          --project=PROJECT_ID
      
    3. Conceda o papel logging.logWriter
    4. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/logging.logWriter"
      
    5. Conceda o papel monitoring.metricWriter
    6. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.metricWriter"
      
    7. Conceda o papel roles/stackdriver.resourceMetadata.writer
    8. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/stackdriver.resourceMetadata.writer"
      
    9. Conceda os papéis/papel roles/stackdriver.resourceMetadata
    10. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/opsconfigmonitoring.resourceMetadata.writer"
      
    11. Conceder o papel roles/monitoring.dashboardEditor
    12. gcloud projects add-iam-policy-binding PROJECT_ID \
          --member="serviceAccount:anthos-baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/monitoring.dashboardEditor"
      
    13. Faça o download do arquivo de chave JSON da conta de serviço:
    14. 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
      

Configurar uma conta de serviço que possa acessar um bucket do Cloud Storage

Você usa uma conta de serviço e um arquivo de chave para acessar o Cloud Storage. É possível usar essa conta de serviço para permitir que os snapshots de clusters sejam enviados automaticamente para buckets do Cloud Storage ou para importar imagens de máquina virtual (VM) de buckets do Cloud Storage para uso com o ambiente de execução de VMs no Google Distributed Cloud.

Para criar a conta de serviço e o arquivo de chave, siga estas etapas:

  1. Verifique se você está no diretório baremetal.
  2. Ative os serviços necessários do Google no projeto do Cloud:
  3. gcloud services enable --project=PROJECT_ID \
        storage.googleapis.com
  4. Crie uma conta de serviço que o cluster possa usar para acessar os buckets do Cloud Storage:
  5. gcloud iam service-accounts create anthos-baremetal-storage \
        --project=PROJECT_ID
  6. Conceda um papel storage.admin à conta de serviço para que ela possa fazer upload de dados para um bucket do Cloud Storage ou importar imagens da VM:
  7. gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/storage.admin"
    
  8. Faça o download do arquivo de chave JSON da conta de serviço:
  9. gcloud iam service-accounts keys create anthos-baremetal-storage.json \
        --iam-account=anthos-baremetal-storage@PROJECT_ID.iam.gserviceaccount.com

Para mais informações sobre como criar snapshots de clusters e fazer upload automático deles em um bucket do Cloud Storage, consulte Criar snapshots para ajudar a diagnosticar problemas do cluster.

Para mais informações sobre como importar imagens de VM do Cloud Storage, consulte Criar e usar credenciais para importar imagens do Cloud Storage para o ambiente de execução de VMs na nuvem distribuída do Google.