Pré-requisitos

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 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 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

  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. Por exemplo, uma chave na região us-west-2 tem o ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

  3. 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
    
  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

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

  1. 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.

  2. 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.

  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
    
  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 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. Encontre a linha que contém o e-mail da conta de serviço, management-sa@project_id.iam.gserviceaccount.com.
    7. Clique no menu de ação da conta de serviço e selecione Gerenciar chaves.
    8. Clique no menu suspenso Adicionar chave.
    9. Clique em Criar nova chave.
    10. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    11. 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. Encontre a linha que contém o e-mail da conta de serviço, hub-sa@project_id.iam.gserviceaccount.com.
    7. Clique no menu de ação da conta de serviço e selecione Gerenciar chaves.
    8. Clique no menu suspenso Adicionar chave.
    9. Clique em Criar nova chave.
    10. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    11. 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. Encontre a linha que contém o e-mail da conta de serviço, node-sa@project_id.iam.gserviceaccount.com.
    6. Clique no menu de ação da conta de serviço e selecione Gerenciar chaves.
    7. Clique no menu suspenso Adicionar chave.
    8. Clique em Criar nova chave.
    9. Selecione JSON como o tipo de chave e clique em Criar. O navegador fará o download da chave da conta de serviço.
    10. 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.

  1. 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 .
    
  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.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 comando anthos-gke. Se você estiver usando uma conta de serviço, use serviceAccount: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