Esta página descreve os Google Cloud recursos que tem de criar e configurar antes de criar clusters.
Antes de começar
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.viewerOpcional: 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:
Inicie sessão na CLI Google Cloud:
gcloud auth login
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 .
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:
Na estação de trabalho de administração, certifique-se de que está no diretório
baremetal
.Se ainda não o fez, inicie sessão na CLI do Google Cloud:
gcloud auth login
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
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"
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:
Certifique-se de que está no diretório
baremetal
.Se ainda não o fez, inicie sessão na CLI do Google Cloud:
gcloud auth login
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
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 formatoSA_NAME@PROJECT_ID.iam.gserviceaccount.com
.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, comosnapshotUpload
. O caminho completo desta função personalizada tem o formatoprojects/PROJECT_ID/roles/ROLE_ID
.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'
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.