Uma nova versão do GKE na AWS foi lançada em 2 de outubro. Consulte as notas da versão para mais informações.

Pré-requisitos

Nesta página, descrevemos os pré-requisitos que você precisa concluir antes de instalar o GKE na AWS.

Ambiente

As instruções a seguir presumem que você está usando um shell bash no Linux ou 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 GKE na AWS.

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 ferramenta aws ao seu PATH.
  • 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 do AWS Key Management Service (KMS). As chaves KMS criptografam:

  • Dados durante o processo de instalação com criptografia de envelope.
  • Segredos da camada de aplicativos nos clusters do GKE nos AWS.

Siga as etapas abaixo para criar duas chaves KMS da AWS.

Linha de comando

  1. Crie uma chave KMS na sua conta da AWS.

    aws kms create-key
    

    A saída inclui os metadados da chave.

  2. Na saída do comando anterior, copie o nome do recurso Amazon (ARN) da chave do campo Arn.

  3. Crie um alias para a chave com aws kms create-alias. Um alias permite controlar as chaves do AWS KMS.

    aws kms create-alias \
        --alias-name=alias/key-name \
        --target-key-id=key-arn
    
  4. Repita as etapas anteriores para outra chave.

Console

  1. Faça login no console da AWS.
  2. Navegue até KMS e selecione Chaves gerenciadas pelo cliente na barra lateral.
  3. Clique em Criar chave.
  4. Deixe as opções padrão selecionadas.
  5. Depois de criada, selecione a chave na lista.
  6. Copie o ARN da chave.
  7. Repita as etapas anteriores para outra chave.

Requisitos 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 componentes da AWS.

  • Instale o SDK do Cloud.

  • A API Anthos precisa estar ativada para o projeto do Google Cloud. Ativar essa API permite que você use outros recursos do Anthos com o projeto do 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,
serviceusage.serviceUsageViewer
Permissões para gerenciar associações do hub e verificar se as APIs do Google Cloud estão ativadas.
hub-sa gkehub.connect Permissão para configurar o Connect entre o cluster do GKE na AWS e no Hub.
node-sa storage.objectViewer Permissão para acessar o Container Registry.

Linha de comando

  1. Autentique-se com a ferramenta de linha de comando gcloud.

    gcloud auth login &&\
    gcloud auth application-default login
    

    Você será solicitado a visitar cloud.google.com e autenticar com sua Conta do Google.

  2. Defina o projeto do Google Cloud como uma variável de ambiente e defina o project-id padrão com a ferramenta gcloud.

    export PROJECT_ID=project-id
    
    gcloud config set project $PROJECT_ID
    

    Substitua o valor de project-id pelo projeto do Google Cloud.

  3. 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
    
  4. 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
    
  5. 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
    
  6. 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
    gcloud projects add-iam-policy-binding \
        $PROJECT_ID \
        --member serviceAccount:management-sa@$PROJECT_ID.iam.gserviceaccount.com \
        --role roles/serviceusage.serviceUsageViewer
    
  7. 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
    
  8. 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

  1. Abra a página da biblioteca de APIs do Console do Google Cloud.
  2. Selecione seu projeto preferido na lista suspensa na parte superior da tela.
  3. 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
  4. Abra a página Contas de serviço.

  5. Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço management-sa.

    1. Clique em Criar conta de serviço.
    2. Nomeie a conta de gerenciamento e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
    3. Adicione os papéis de visualizador de serviço e administrador do HUB do GKE.
    4. Clique em Continuar. A tela Conceder aos usuários acesso a esta conta de serviço será exibida.
    5. Clique em Concluído. A tela Contas de serviço do projeto será exibida.
    6. Clique no e-mail da conta de serviço, management-sa@project_id.iam.gserviceaccount.com.
    7. Clique em ADICIONAR CHAVE -> Criar nova chave. A caixa de diálogo Criar chave particular para management-sa será exibida.
    8. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    9. Renomeie o arquivo management-key.json.
  6. Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço hub-sa.

    1. Clique em Criar conta de serviço.
    2. Atribua um nome ao hub de contas e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
    3. Adicione o papel de agente de conexão do GKE Hub.
    4. Clique em Continuar. A tela Conceder aos usuários acesso a esta conta de serviço será exibida.
    5. Clique em Concluído. A tela Contas de serviço do projeto será exibida.
    6. Clique no e-mail da conta de serviço, hub-sa@project_id.iam.gserviceaccount.com.
    7. Clique em ADICIONAR CHAVE -> Criar nova chave. A caixa de diálogo Criar chave particular para hub-sa será exibida.
    8. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    9. Renomeie o arquivo hub-key.json.
  7. Em seguida, crie uma conta de serviço e atribua papéis para a conta de serviço node-sa.

    1. Clique em Criar conta de serviço.
    2. Nomeie o node-sa da conta e clique em Criar. A tela Conceda acesso à conta de serviço ao projeto é exibida.
    3. Adicione o papel de Leitor de objetos do Storage.
    4. Clique em Concluído. A tela Contas de serviço do projeto será exibida.
    5. Clique no e-mail da conta de serviço, node-sa@project_id.iam.gserviceaccount.com.
    6. Clique em ADICIONAR CHAVE -> Criar nova chave. A caixa de diálogo Criar chave particular para node-sa será exibida.
    7. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    8. 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 uma configuração que instale um serviço de gerenciamento. A versão mais recente do anthos-gke é aws-1.5.0-gke.6.

  1. Faça o download do binário do Cloud Storage.

    Linux

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/linux/amd64/anthos-gke .
    

    macOS

    gsutil cp gs://gke-multi-cloud-release/aws/aws-1.5.0-gke.6/bin/darwin/amd64/anthos-gke .
    
  2. 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
    
  3. Confirme se a versão é aws-1.5.0-gke.6

    anthos-gke version
    

Terraform

O GKE na AWS requer o Terraform v0.12.28 ou posterior. Faça o download e instale o Terraform antes de começar (link em inglês).

A ferramenta anthos-gke gera arquivos de configuração do Terraform. A configuração é declarativa, controlada por versão e é auditável.

Kubernetes

O GKE na AWS requer a versão kubectl 1.16 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.16 ou superior, instale uma versão mais recente do kubectl (em inglês).

A seguir