Nesta página, descrevemos os recursos do Google Cloud que você precisa criar e configurar antes de criar clusters.
Antes de começar
Se você não for proprietário de um projeto do Google Cloud, peça ao proprietário que conceda a você os seguintes papéis do Identity and Access Management (IAM):
Papel Finalidade roles/compute.viewer Obrigatório: necessário quando bmctl
valida o campo clusterOperations.location no arquivo de configuração do cluster.roles/iam.serviceAccountAdmin Obrigatório: para criar as contas de serviço exigidas pelo Google Distributed Cloud. roles/iam.securityAdmin Obrigatório: para conceder papéis do IAM às contas de serviço exigidas pelo Google Distributed Cloud. roles/iam.serviceAccountKeyAdmin Obrigatório: para criar arquivos de chave JSON para as contas de serviço exigidas pelo Google Distributed Cloud. roles/serviceusage.serviceUsageAdmin Obrigatório: para ativar as APIs do Google exigidas pelo Google Distributed Cloud. roles/gkeonprem.admin Opcional: necessário se você quiser criar clusters usando clientes da API GKE On-Prem ou configurar um cluster para ser gerenciado pela API GKE On-Prem. roles/gkehub.viewer
roles/container.viewerOpcional: necessário para acessar as páginas do GKE Enterprise e do Google Kubernetes Engine no console do Google Cloud. Para saber mais sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Ativar APIs
Várias APIs do Google precisam ser ativadas no projeto do Google Cloud associado. O Google Distributed Cloud usa as APIs ao criar clusters. As APIs também são necessárias para manter uma conexão com o Google Cloud. A conexão com o Google Cloud permite que o Google Distributed Cloud use o Cloud Logging, o Cloud Monitoring e os recursos da frota, como Anthos Service Mesh, Config Sync, Policy Controller e Config Controller.
Se você for usar a ferramenta bmctl
para criar clusters, inclua a sinalização --enable-apis
ao executar bmctl create config
. Assim, bmctl
ativará as APIs listadas no seguinte comando gcloud services enable
. Se
você for usar um cliente da API GKE On-Prem para criar
um cluster de administrador
ou um cluster de usuário,
ative as APIs antes de criar o cluster.
Para ativar as APIs, execute os seguintes comandos:
Faça login na Google Cloud CLI:
gcloud auth login
Ative as APIs a seguir:
gcloud services enable --project=PROJECT_ID \ anthos.googleapis.com \ anthosaudit.googleapis.com \ anthosgke.googleapis.com \ cloudresourcemanager.googleapis.com \ connectgateway.googleapis.com \ container.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ gkeonprem.googleapis.com \ iam.googleapis.com \ logging.googleapis.com \ monitoring.googleapis.com \ opsconfigmonitoring.googleapis.com \ serviceusage.googleapis.com \ stackdriver.googleapis.com \ kubernetesmetadata.googleapis.com \ storage.googleapis.com
Para ver quais APIs e serviços estão ativados no seu projeto, execute o seguinte comando:
gcloud services list --project=PROJECT_ID \ --enabled
Configurar contas de serviço
Para usar as APIs do Google, o Google Distributed Cloud exige uma conta de serviço configurada com papéis específicos do IAM no seu projeto associado do Google Cloud. Como prática recomendada, crie contas de serviço separadas para diferentes finalidades, especialmente em ambientes de produção.
Se você for usar a ferramenta bmctl
para criar clusters, inclua o flag --create-service-accounts
ao executar bmctl create config
para que bmctl
crie as contas de serviço com o papéis do IAM.
Se você estiver usando um cliente da API GKE On-Prem para criar um cluster de administrador, por
padrão, o comando bmctl register bootstrap
vai criar as contas de serviço com
os papéis do IAM necessários quando você executar o comando para
criar um cluster de inicialização.
As contas de serviço, que também são necessárias para a criação de um cluster de usuário, são criadas e configuradas ao criar o cluster de administrador que gerencia os clusters de usuário.
A tabela a seguir descreve as contas de serviço criadas automaticamente:
Conta de serviço | Purpose | Papéis |
---|---|---|
anthos-baremetal-gcr | O Google Distributed Cloud usa essa conta de serviço para fazer o download de imagens de contêiner do Container Registry. | Nenhuma |
anthos-baremetal-connect | O Agente do Connect usa essa conta de serviço para manter uma conexão entre o cluster e o Google Cloud. Isso permite acesso ao cluster e aos recursos de gerenciamento de carga de trabalho, incluindo o console do Google Cloud e o gateway de conexão para interagir com o cluster. | roles/gkehub.connect |
anthos-baremetal-register | O agente do Connect usa essa conta de serviço para registrar seus clusters com uma frota. | roles/gkehub.admin |
anthos-baremetal-cloud-ops | O Agente do Stackdriver usa essa conta de serviço para exportar registros 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 |
Configurar contas de serviço manualmente
Se preferir, crie manualmente as contas de serviço; configure-as com os papéis necessários e faça o download de arquivos de chave JSON antes de criar clusters.
Se você estiver usando bmctl
para criar clusters, adicione referências aos arquivos de chave JSON ao arquivo de configuração do cluster apropriado. Para ver um exemplo, consulte Como editar o arquivo de configuração.
Se você estiver usando uma API GKE On-Prem para criar um cluster de administrador, será possível
especificar os arquivos de chave
ao executar bmctl register bootstrap
para criar o cluster de inicialização.
Para criar as contas de serviço e os arquivos de chaves:
Na estação de trabalho do administrador, verifique se você está no diretório
baremetal
.Faça login na Google Cloud CLI, caso ainda não tenha feito isso:
gcloud auth login
Criar 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
Conceda os papéis do IAM necessários 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"
Faça o download dos arquivos 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
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 os buckets do Cloud Storage ou para importar imagens de máquina virtual (VM) dos buckets do Cloud Storage para uso com o ambiente de execução da VM no GDC.
Para criar a conta de serviço e o arquivo de chave, siga estas etapas:
Verifique se você está no diretório
baremetal
.Faça login na Google Cloud CLI, caso ainda não tenha feito isso:
gcloud auth login
Ative a API do Cloud Storage,
storage.googleapis.com
, no seu projeto do Google Cloud:gcloud services enable --project=PROJECT_ID \ storage.googleapis.com
Crie uma conta de serviço que o cluster possa usar para acessar os buckets do Cloud Storage:
gcloud iam service-accounts create SA_NAME \ --project=PROJECT_ID
Substitua
SA_NAME
pelo nome da nova conta de serviço. Esse nome de conta de serviço aparece no endereço de e-mail provisionado durante a criação, no formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.Crie um papel personalizado com as seguintes permissõ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 do novo papel personalizado, comosnapshotUpload
. O caminho completo desse papel personalizado tem o formatoprojects/PROJECT_ID/roles/ROLE_ID
.Adicione uma vinculação de política à 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'
Faça o download do arquivo 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 snapshots de clusters e fazer upload deles de maneira automática 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 GDC.