Pré-requisitos

Esta página descreve 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 onde possa instalar e executar diversas ferramentas. As etapas a seguir pressupõem que você esteja usando um shell bash no Linux ou macOS. Se você não tiver acesso a um ambiente de shell bash, 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 AWS Key Management Service (KMS) na mesma região que seus clusters de usuários.

Para obter mais informações sobre outros recursos necessários da AWS, consulte Requisitos .

Configurando a AWS

Antes de começar

Antes de concluir esta seção:

  • Baixe e instale a AWS CLI . Confirme a instalação executando aws --version . Se o executável não for encontrado, adicione a ferramenta aws ao seu PATH .
  • Configure suas credenciais do AWS 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 obtenha acesso às credenciais do AWS IAM que atendam aos Requisitos .

Criando uma chave 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 .
  • Segredos da camada de aplicação em seus clusters de usuários.

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

Linha de comando

  1. Crie uma chave KMS na sua conta 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 da 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 que você gerencie suas chaves do AWS KMS por nome.

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

Console

  1. Efetue 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ões selecionadas.
  5. Depois de criada, selecione a chave na lista.
  6. Copie o ARN da chave.
  7. Repita os passos anteriores para outra chave.

Google Cloud requisitos

Restrições de segurança definidas pela sua organização podem impedir a conclusão das etapas a seguir. Para obter informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente com restrições. Google Cloud ambiente .

Antes de começar

  • Certifique-se de ter permissões de Proprietário do Projeto em uma conta do Google para habilitar APIs no Google Cloud Projeto no qual você conecta seu ambiente do GKE na AWS. Use as permissões de Proprietário apenas para criar as contas de serviço do GKE na AWS na seção a seguir.

  • Instale o Google Cloud CLI .

  • A API do GKE Enterprise deve ser habilitada para seu Google Cloud projeto. Habilitar esta API permite que você use outros recursos do GKE Enterprise com seu Google Cloud projeto.

Crie suas contas de serviço do GKE na AWS

Nesta seção, você criará três contas de serviço do IAM e chaves para o GKE na AWS. Essas contas de serviço são descritas na lista a seguir:

Nome Funções Descrição
management-sa gkehub.admin Permissões para gerenciar associações do Hub
hub-sa gkehub.conectar Permissão para configurar o Connect entre seus clusters de usuários e o Hub.
node-sa armazenamento.objetoViewer Permissão para acessar o Container Registry.

Linha de comando

  1. Autentique com o Google Cloud CLI.

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

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

  2. Defina o seu Google Cloud project como uma variável de ambiente e defina seu project-id padrão com o gcloud CLI.

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

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

  3. Habilitar Google Cloud APIs.

    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 seguintes comandos.

    gcloud iam service-accounts create management-sa
    gcloud iam service-accounts create hub-sa
    gcloud iam service-accounts create node-sa
    
  5. Baixe as 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 funções à 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. Conceda funções à 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 funções à 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 o Google Cloud página da biblioteca da API do console .
  2. Selecione seu projeto preferido no menu suspenso na parte superior da tela.
  3. Localize e ative as seguintes APIs.

    • Anthos
    • Gerenciador de Recursos de Nuvem
    • Armazenamento em nuvem
    • Registro em nuvem
    • API JSON do Google Cloud Storage
    • GKE Hub
    • API do GKE Connect
    • Uso do serviço
    • Stackdriver
    • Monitoramento do Stackdriver
  4. Abra a página Contas de serviço .

  5. Em seguida, crie uma conta de serviço e atribua funções para a conta de serviço management-sa .

    1. Clique em Criar conta de serviço .
    2. Nomeie a conta management-sa e clique em Criar . A tela Conceder acesso ao projeto a esta conta de serviço será exibida.
    3. Adicione as funções de administrador 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 para o projeto será exibida.
    6. Localize a linha que contém o e-mail da sua conta de serviço, management-sa@ project_id .iam.gserviceaccount.com .
    7. Clique no menu de ação para a 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 seu tipo de chave e clique em Criar . Seu navegador baixará a chave da conta de serviço.
    11. Renomeie o arquivo management-key.json .
  6. Em seguida, crie uma conta de serviço e atribua funções para a conta de serviço hub-sa .

    1. Clique em Criar conta de serviço .
    2. Nomeie a conta como hub-sa e clique em Criar . A tela "Conceder acesso ao projeto a esta conta de serviço" será exibida.
    3. Adicione a função 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 para o projeto será exibida.
    6. Localize a linha que contém o e-mail da sua conta de serviço, hub-sa@ project_id .iam.gserviceaccount.com .
    7. Clique no menu de ação para a 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 seu tipo de chave e clique em Criar . Seu navegador baixará a chave da conta de serviço.
    11. Renomeie o arquivo hub-key.json .
  7. Em seguida, crie uma conta de serviço e atribua funções para a conta de serviço node-sa .

    1. Clique em Criar conta de serviço .
    2. Nomeie a conta como node-sa e clique em Criar . A tela "Conceder acesso ao projeto a esta conta de serviço" será exibida.
    3. Adicione a função Visualizador de Objetos de Armazenamento.
    4. Clique em Concluído . A tela Contas de serviço para o projeto será exibida.
    5. Localize a linha que contém o e-mail da sua conta de serviço, node-sa@ project_id .iam.gserviceaccount.com .
    6. Clique no menu de ação para a 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 seu tipo de chave e clique em Criar . Seu navegador baixará a chave da conta de serviço.
    10. Renomeie o arquivo node-key.json .

ferramenta de linha de comando 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 é aws-1.14.1-gke.0.

A ferramenta de linha de comando anthos-gke suporta apenas Linux e macOS.

  1. Baixe o binário do Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Atualize as permissões do anthos-gke e copie-o 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 deve ter as funções ServiceUsageViewer e StorageAdmin. Para adicionar as funções à sua entidade de segurança 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 o seguinte:

  • PROJECT_NAME : seu Google Cloud projeto
  • USER_NAME : o nome de usuário que executa a ferramenta de linha de comando anthos-gke . Se 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. Você pode verificar sua versão do Terraform com o seguinte comando:

terraform version

Se você não tiver a versão 0.14.3 ou superior, baixe e instale o Terraform antes de criar um serviço de gerenciamento.

Atualizando o Terraform

Para atualizar o Terraform após instalar o GKE na AWS, você deve atualizar seu binário do Terraform por meio de cada versão secundária em ordem.

Por exemplo, se você quiser atualizar o Terraform da versão 0.12.x para a versão 0.14.x, precisará instalar a versão 0.13.x temporariamente. Após instalar a versão 0.13.x, execute anthos-gke aws management init e anthos-gke aws management apply . O GKE na AWS atualiza sua configuração. Você pode então atualizar para a versão 0.14.x.

Kubernetes

O GKE na AWS requer kubectl versão 1.17 ou superior. Você pode verificar sua versão do kubectl executando:

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 .

O que vem a seguir