Nesta página, descrevemos as etapas que você precisa concluir antes de instalar o GKE na AWS.
Ambiente
Para instalar o GKE na AWS, você precisa de um ambiente em que seja possível instalar e executar diversas ferramentas. As etapas a seguir presumem que você está usando um shell bash no Linux ou no macOS. Se você não tiver acesso a um ambiente de shell normal, poderá usar o Cloud Shell.
Requisitos da AWS
Para concluir este tópico, você precisa de uma conta da AWS com acesso à linha de comando e duas chaves do serviço de gerenciamento de chaves (KMS, sigla em inglês) da AWS na mesma região que o cluster do usuário.
Para mais informações sobre outros recursos obrigatórios da AWS, consulte Requisitos.
Como configurar a AWS
Antes de começar
Antes de concluir esta seção:
- Faça o download e instale a
CLI da AWS.
Confirme a instalação executando
aws --version
. Se o executável não for encontrado, adicione a ferramentaaws
ao seuPATH
. - Configure as credenciais do IAM e a região da AWS com
aws configure
.
Permissões de usuário administrador
O GKE na AWS exige que o criador de um serviço de gerenciamento tenha determinadas permissões. Antes de criar um serviço de gerenciamento ou clusters de usuários, crie ou tenha acesso às credenciais do IAM da AWS que atendam aos requisitos.
Como criar uma chave do KMS
O GKE na AWS requer duas chaves KMS da AWS. As chaves KMS criptografam:
- Dados durante o processo de instalação com criptografia de envelope.
- Secrets da camada de aplicativo nos clusters de usuários.
Siga as etapas abaixo para criar duas chaves KMS da AWS.
Linha de comando
Crie uma chave KMS na sua conta da AWS.
aws kms create-key
A saída inclui os metadados da chave.
Na saída do comando anterior, copie o nome do recurso Amazon (ARN) da chave do campo
Arn
. Por exemplo, uma chave na regiãous-west-2
tem o ARNarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
.Crie um alias para a chave com
aws kms create-alias
. Um alias permite gerenciar as chaves do KMS da AWS por nome.aws kms create-alias \ --alias-name=alias/key-name \ --target-key-id=key-arn
Repita as etapas anteriores para outra chave.
Console
- Faça login no console da AWS.
- Navegue até KMS e selecione Chaves gerenciadas pelo cliente na barra lateral.
- Clique em Criar chave.
- Deixe as opções padrão selecionadas.
- Depois de criada, selecione a chave na lista.
- Copie o ARN da chave.
- Repita as etapas anteriores para outra chave.
Requisitos do Google Cloud
As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito do Google Cloud.
Antes de começar
Verifique se você tem as permissões de proprietário do projeto em uma Conta do Google para ativar as APIs no projeto do Google Cloud em que você conecta seu GKE nos ambientes da AWS. Use permissões de proprietário apenas para criar o GKE em contas de serviço da AWS na seção a seguir.
Instale o Google Cloud CLI.
A API GKE Enterprise precisa estar ativada para seu projeto do Google Cloud. Ativar essa API permite que você use outros recursos do GKE Enterprise com seu projeto do Google Cloud.
Criar o GKE em contas de serviço da AWS
Nesta seção, você cria três contas de serviço e chaves do IAM para o GKE na AWS. Essas contas de serviço são descritas na lista a seguir:
Nome | Papéis | Descrição |
---|---|---|
management-sa
|
gkehub.admin | Permissões para gerenciar assinaturas do Hub |
hub-sa
|
gkehub.connect | Permissão para configurar e conectar-se entre seus clusters e usuários do hub. |
node-sa
|
storage.objectViewer | Permissão para acessar o Container Registry. |
Linha de comando
Fazer a autenticação com a Google Cloud CLI
gcloud auth login &&\ gcloud auth application-default login
Você será solicitado a visitar
cloud.google.com
e autenticar com sua Conta do Google.Defina o projeto do Google Cloud como uma variável de ambiente e defina o project-id padrão com a CLI gcloud.
export PROJECT_ID=project-id gcloud config set project $PROJECT_ID
Substitua o valor de project-id pelo projeto do Google Cloud.
Ativar APIs do Google Cloud
gcloud services enable anthos.googleapis.com gcloud services enable cloudresourcemanager.googleapis.com gcloud services enable gkehub.googleapis.com gcloud services enable gkeconnect.googleapis.com gcloud services enable logging.googleapis.com gcloud services enable monitoring.googleapis.com gcloud services enable serviceusage.googleapis.com gcloud services enable stackdriver.googleapis.com gcloud services enable storage-api.googleapis.com gcloud services enable storage-component.googleapis.com
Crie as contas de serviço com
gcloud
executando os comandos a seguir.gcloud iam service-accounts create management-sa gcloud iam service-accounts create hub-sa gcloud iam service-accounts create node-sa
Faça o download das chaves para cada conta de serviço com
gcloud
executando os seguintes comandos.gcloud iam service-accounts keys create management-key.json \ --iam-account management-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create hub-key.json \ --iam-account hub-sa@$PROJECT_ID.iam.gserviceaccount.com gcloud iam service-accounts keys create node-key.json \ --iam-account node-sa@$PROJECT_ID.iam.gserviceaccount.com
Conceda papéis à conta de serviço de gerenciamento.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.admin
Atribua papéis à conta de serviço do hub.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:hub-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/gkehub.connect
Conceda papéis à conta de serviço do nó.
gcloud projects add-iam-policy-binding \ $PROJECT_ID \ --member serviceAccount:node-sa@$PROJECT_ID.iam.gserviceaccount.com \ --role roles/storage.objectViewer
Console
- Abra a página da biblioteca de APIs do console do Google Cloud.
- Selecione seu projeto preferido na lista suspensa na parte superior da tela.
Encontre e ative as seguintes APIs.
- Anthos
- Cloud Resource Manager
- Cloud Storage
- Cloud Logging
- API Google Cloud Storage JSON
- Hub GKE
- API GKE Connect
- Service Usage
- Stackdriver
- Stackdriver Monitoring
Abra a página Contas de serviço.
Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço
management-sa
.- Clique em Criar conta de serviço.
- Nomeie a conta de gerenciamento e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
- Adicione os papéis de administrador do HUB do GKE.
- Clique em Continuar. A tela Conceder aos usuários acesso a esta conta de serviço será exibida.
- Clique em Concluído. A tela Contas de serviço do projeto será exibida.
- Encontre a linha que contém o e-mail da conta de serviço,
management-sa@project_id.iam.gserviceaccount.com
. - Clique no menu de ação more_vert da conta de serviço e selecione Gerenciar chaves.
- Clique no menu suspenso Adicionar chave.
- Clique em Criar nova chave.
- Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
- Renomeie o arquivo
management-key.json
.
Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço
hub-sa
.- Clique em Criar conta de serviço.
- Atribua um nome ao hub de contas e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
- Adicione o papel de agente de conexão do GKE Hub.
- Clique em Continuar. A tela Conceder aos usuários acesso a esta conta de serviço será exibida.
- Clique em Concluído. A tela Contas de serviço do projeto será exibida.
- Encontre a linha que contém o e-mail da conta de serviço,
hub-sa@project_id.iam.gserviceaccount.com
. - Clique no menu de ação more_vert da conta de serviço e selecione Gerenciar chaves.
- Clique no menu suspenso Adicionar chave.
- Clique em Criar nova chave.
- Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
- Renomeie o arquivo
hub-key.json
.
Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço
node-sa
.- Clique em Criar conta de serviço.
- Nomeie o node-sa da conta e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
- Adicione o papel de Leitor de objetos do Storage.
- Clique em Concluído. A tela Contas de serviço do projeto será exibida.
- Encontre a linha que contém o e-mail da conta de serviço,
node-sa@project_id.iam.gserviceaccount.com
. - Clique no menu de ação more_vert da conta de serviço e selecione Gerenciar chaves.
- Clique no menu suspenso Adicionar chave.
- Clique em Criar nova chave.
- Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
- Renomeie o arquivo
node-key.json
.
Ferramenta de linha de comando do Anthos GKE
anthos-gke
é uma ferramenta de linha de comando para o GKE na AWS. Use
anthos-gke
para criar a configuração e
instalar um serviço de gerenciamento. A versão mais recente do
anthos-gke
é a aws-1.14.1-gke.0.
A ferramenta de linha de comando anthos-gke
é compatível apenas com Linux e macOS.
Faça o download do binário do Cloud Storage.
Linux
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
Atualize as permissões de
anthos-gke
e copie-as para/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Confirme se a versão é
aws-1.14.1-gke.0
anthos-gke version
Permissões para a ferramenta de linha de comando anthos-gke
Para usar a ferramenta de linha de comando anthos-gke
, o usuário que executa o comando precisa
ter os papéis ServiceUsageViewer e StorageAdmin. Para adicionar os papéis ao seu
principal do IAM, execute estes comandos:
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/serviceusage.serviceUsageViewer
gcloud projects add-iam-policy-binding PROJECT_NAME \
--member user:USER_NAME \
--role roles/storage.admin
Substitua:
PROJECT_NAME
: seu projeto do Google Cloud.USER_NAME
: o nome do usuário que executa a ferramenta de linha de comandoanthos-gke
. Se você estiver usando uma conta de serviço, useserviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com
.
Terraform
A ferramenta anthos-gke
gera arquivos de configuração do Terraform e chama a ferramenta de linha de comando terraform
.
O GKE na AWS requer uma versão do Terraform superior à v0.14.3. Use o comando a seguir para verificar a versão do Terraform:
terraform version
Se você não tiver a v0.14.3 ou superior, faça o download e a instalação do Terraform antes de criar um serviço de gerenciamento.
Como fazer upgrade do Terraform
Para fazer o upgrade do Terraform depois de instalar o GKE na AWS, é preciso fazer upgrade do binário do Terraform por cada versão secundária em ordem.
Por exemplo, se você quiser fazer upgrade do Terraform de v0.12.x para v0.14.x,
instale a v0.13.x temporariamente. Depois de instalar a v0.13.x, execute anthos-gke aws
management init
e anthos-gke aws management apply
. O GKE na AWS
atualiza sua configuração. Depois, você pode fazer upgrade para a v0.14.x.
Kubernetes
O GKE na AWS requer a versão kubectl
1.17 ou superior. Para
verificar sua versão do kubectl
, execute:
kubectl version --client -o yaml | grep gitVersion
Se você não tiver a versão 1.17 ou superior,
instale uma versão mais recente do kubectl
.
A seguir
- Instale um serviço de gerenciamento em uma VPC dedicada com um Bastion Host.
- Como integrar a infraestrutura atual a uma VPC.