Pré-requisitos

Esta página descreve os passos que tem de concluir antes de instalar o GKE na AWS.

Ambiente

Para instalar o GKE na AWS, precisa de um ambiente onde possa instalar e executar várias ferramentas. Os passos seguintes pressupõem que está a usar um shell bash no Linux ou macOS. Se não tiver acesso a um ambiente de shell bash, pode usar o Cloud Shell.

Requisitos da AWS

Para concluir este tópico, precisa de uma conta da AWS com acesso à linha de comandos e duas chaves do AWS Key Management Service (KMS) na mesma região que os seus clusters de utilizadores.

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

Configurar o AWS

Antes de começar

Antes de concluir esta secção:

  • Transfira e instale a CLI da AWS. Confirme a instalação executando aws --version. Se o ficheiro executável não for encontrado, adicione a ferramenta aws ao seu PATH.
  • Configure as suas credenciais de IAM da AWS e região da AWS com aws configure.

Autorizações do utilizador administrador

O GKE na AWS requer que o criador de um serviço de gestão tenha determinadas autorizações. Antes de poder criar um serviço de gestão ou clusters de utilizadores, crie ou obtenha acesso a credenciais do IAM da AWS que cumpram os requisitos.

Criar uma chave do KMS

O GKE no AWS requer duas chaves do AWS KMS. As chaves do KMS encriptam:

  • Dados durante o processo de instalação com encriptação de envelope.
  • Segredos da camada de aplicação nos seus clusters de utilizadores.

Siga os passos abaixo para criar duas chaves do AWS KMS.

Linha de comandos

  1. Crie uma chave do 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 da Amazon (ARN) da chave do campo Arn. Por exemplo, uma chave na us-west-2 região 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-lhe gerir as 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.

Consola

  1. Inicie sessão na consola da AWS.
  2. Navegue para KMS e selecione Chaves geridas pelo cliente na barra lateral.
  3. Clique em Criar chave.
  4. Deixe as opções predefinidas 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

As restrições de segurança definidas pela sua organização podem impedir a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito.

Antes de começar

  • Certifique-se de que tem autorizações de proprietário do projeto numa Conta Google para ativar APIs no Google Cloud projeto onde liga o seu ambiente do GKE no AWS. Use as autorizações de proprietário apenas para criar as contas de serviço do GKE on AWS na secção seguinte.

  • Instale a CLI do Google Cloud.

  • A API Anthos tem de estar ativada para o seu Google Cloud projeto. A ativação desta API permite-lhe usar outras funcionalidades do Google Kubernetes Engine com o seu Google Cloud projeto.

Crie as suas contas de serviço do GKE na AWS

Nesta secção, cria três contas de serviço e chaves do IAM para o GKE na AWS. Estas contas de serviço estão descritas na lista seguinte:

Nome Funções Descrição
management-sa gkehub.admin Autorizações para gerir as associações do Hub
hub-sa gkehub.connect Autorização para configurar a ligação entre os seus clusters de utilizadores e o Hub.
node-sa storage.objectViewer Autorização para aceder ao Container Registry.

Linha de comandos

  1. Autentique com a CLI do Google Cloud.

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

    É-lhe pedido duas vezes que visite cloud.google.com e que se autentique com a sua Conta Google.

  2. Defina o seu Google Cloud projeto como uma variável de ambiente e defina o seuproject-id predefinido com a CLI gcloud.

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

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

  3. Ative 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. Transfira as chaves de 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 gestão.

    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
    

Consola

  1. Abra a Google Cloud página da biblioteca de APIs da consola.
  2. Selecione o seu projeto preferido no menu pendente na parte superior do ecrã.
  3. Encontre e ative as seguintes APIs.

    • Anthos
    • Cloud Resource Manager
    • Cloud Storage
    • Cloud Logging
    • API JSON do Google Cloud Storage
    • GKE Hub
    • API GKE Connect
    • Utilização do serviço
    • Stackdriver
    • Stackdriver Monitoring
  4. Abra a página Contas de serviço.

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

    1. Clique em Criar conta de serviço.
    2. Dê um nome à conta de gestão de SA e clique em Criar. É apresentado o ecrã Conceder acesso a esta conta de serviço ao projeto.
    3. Adicione as funções de administrador do GKE Hub.
    4. Clique em Continuar. É apresentado o ecrã Conceder aos utilizadores acesso a esta conta de serviço.
    5. Clique em Concluído. É apresentado o ecrã Contas de serviço para o projeto.
    6. Encontre a linha que contém o email da sua conta de serviço, management-sa@project_id.iam.gserviceaccount.com.
    7. Clique no menu de ações da conta de serviço e selecione Gerir chaves.
    8. Clique no menu pendente Adicionar chave.
    9. Clique em Criar nova chave.
    10. Selecione JSON como tipo de chave e clique em Criar. O navegador transfere a chave da conta de serviço.
    11. Mude o nome do ficheiro management-key.json.
  6. Em seguida, crie uma conta de serviço e atribua funções à hub-sa conta de serviço.

    1. Clique em Criar conta de serviço.
    2. Dê o nome hub-sa ao centro de contas e clique em Criar. É apresentado o ecrã Conceder acesso a esta conta de serviço ao projeto.
    3. Adicione a função do agente de ligação do GKE Hub.
    4. Clique em Continuar. É apresentado o ecrã Conceder aos utilizadores acesso a esta conta de serviço.
    5. Clique em Concluído. É apresentado o ecrã Contas de serviço para o projeto.
    6. Encontre a linha que contém o email da sua conta de serviço, hub-sa@project_id.iam.gserviceaccount.com.
    7. Clique no menu de ações da conta de serviço e selecione Gerir chaves.
    8. Clique no menu pendente Adicionar chave.
    9. Clique em Criar nova chave.
    10. Selecione JSON como tipo de chave e clique em Criar. O navegador transfere a chave da conta de serviço.
    11. Mude o nome do ficheiro hub-key.json.
  7. Em seguida, crie uma conta de serviço e atribua funções à node-sa conta de serviço.

    1. Clique em Criar conta de serviço.
    2. Dê o nome node-sa ao nó da conta e clique em Criar. É apresentado o ecrã Conceder acesso a esta conta de serviço ao projeto.
    3. Adicione a função Storage Object Viewer.
    4. Clique em Concluído. É apresentado o ecrã Contas de serviço para o projeto.
    5. Encontre a linha que contém o email da sua conta de serviço, node-sa@project_id.iam.gserviceaccount.com.
    6. Clique no menu de ações da conta de serviço e selecione Gerir chaves.
    7. Clique no menu pendente Adicionar chave.
    8. Clique em Criar nova chave.
    9. Selecione JSON como tipo de chave e clique em Criar. O navegador transfere a chave da conta de serviço.
    10. Mude o nome do ficheiro node-key.json.

ferramenta de linhas de comando anthos-gke

anthos-gke é uma ferramenta de linha de comandos para o GKE na AWS. Use o anthos-gke para criar a configuração e instalar um serviço de gestão. A versão mais recente do anthos-gke é aws-1.14.1-gke.0.

A ferramenta de linha de comandos anthos-gke só é compatível com Linux e macOS.

  1. Transfira o ficheiro 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 autorizações de anthos-gke e copie-as para /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Confirme que a versão é aws-1.14.1-gke.0

    anthos-gke version
    

Autorizações para a ferramenta de linhas de comando anthos-gke

Para usar a ferramenta de linha de comandos anthos-gke, o utilizador que executa o comando tem de ter as funções ServiceUsageViewer e StorageAdmin. Para adicionar as funções 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 o seguinte:

  • PROJECT_NAME: o seu Google Cloud projeto
  • USER_NAME: o nome de utilizador que executa a anthos-gkeferramenta de linha de comandos. Se estiver a usar uma conta de serviço, use serviceAccount:SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com

Terraform

A ferramenta anthos-gke gera ficheiros de configuração do Terraform e chama a ferramenta de linha de comandos terraform.

O GKE no AWS requer uma versão do Terraform superior a v0.14.3. Pode verificar a sua versão do Terraform com o seguinte comando:

terraform version

Se não tiver a versão 0.14.3 ou superior, transfira e instale o Terraform antes de criar um serviço de gestão.

Atualizar o Terraform

Para atualizar o Terraform após instalar o GKE no AWS, tem de atualizar o ficheiro binário do Terraform através de cada versão secundária por ordem.

Por exemplo, se quiser atualizar o Terraform da versão 0.12.x para a versão 0.14.x, tem de instalar temporariamente a versão 0.13.x. Após instalar a versão v0.13.x, execute anthos-gke aws management init e anthos-gke aws management apply. O GKE on AWS atualiza a sua configuração. Em seguida, pode atualizar para a versão 0.14.x.

Kubernetes

O GKE no AWS requer a versão 1.17 ou superior.kubectl Pode verificar a versão do kubectl executando o seguinte comando:

kubectl version --client -o yaml | grep gitVersion

Se não tiver a versão 1.17 ou superior, instale uma versão mais recente do kubectl.

O que se segue?