Uma nova versão do GKE na AWS foi lançada em 27 de agosto. Consulte as notas de lançamento para informações sobre alterações interruptivas.

Como preparar a rede da AWS

Para configurar um balanceador de carga externo com o GKE na AWS, você precisa incluir tags na VPC e na sub-rede pública com o ID do cluster. Se você já incluiu tags na VPC e na sub-rede, pule para Como ativar a entrada.

Antes de começar

Antes de começar a usar o GKE na AWS, verifique se você executou as seguintes tarefas:

O GKE na AWS requer tags em sub-redes que contenham endpoints do balanceador de carga. O GKE na AWS marca automaticamente todas as sub-redes especificadas no campo spec.Networking.ServiceLoadBalancerSubnetIDs do recurso AWSCluster.

Se você quiser adicionar mais sub-redes ao seu cluster de usuário ou precisar reaplicar tags a sub-redes atuais, execute as etapas a seguir.

  1. No diretório anthos-aws, use anthos-gke para alternar o contexto para o serviço de gerenciamento.

        cd anthos-aws
        anthos-gke aws management get-credentials

  2. Consiga o código da VPC da AWS do cluster com kubectl e armazene-o como uma variável.

     export VPC_ID=$(\
     env HTTP_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. Verifique o conteúdo das variáveis com echo. A saída é semelhante a vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. Salve o ID do cluster em uma variável de ambiente.

    export CLUSTER_ID=$(\
    env HTTP_PROXY=http://localhost:8118 \
    kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
    

    É possível verificar a variável com echo:

    echo $CLUSTER_ID
    

    A resposta inclui o ID do cluster.

    gke-12345678
    
  5. Por padrão, o GKE na AWS configura uma VPC com sub-redes privadas e públicas. Para recuperar o ID da sub-rede, use a ferramenta de linha de comando aws.

    Selecione uma destas opções:

    • Público se você quiser expor serviços na sua sub-rede pública.
    • Particular, se você quiser expor serviços na sub-rede privada.
    • Várias sub-redes, se você quiser expor serviços em várias sub-redes.

    Público

     export SUBNET_ID=$(aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \
     --query "Subnets[*].SubnetId" \
     --output text)
    

    A saída é um objeto que contém o ID da sub-rede. Ela se parece com subnet-1234abcdefg. É possível verificar a variável com echo:

    echo $SUBNET_ID
    

    A resposta inclui o ID da sub-rede.

    subnet-012345678abcdef
    

    Particular

     export SUBNET_ID=$(aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \
     --query "Subnets[*].SubnetId" \
     --output text)
    

    A saída é um objeto que contém o ID da sub-rede. Ela se parece com subnet-1234abcdefg. É possível verificar a variável com echo:

    echo $SUBNET_ID
    

    A resposta inclui o ID da sub-rede.

    subnet-012345678abcdef
    

    Várias sub-redes

    Se você estiver usando várias sub-redes para o AWSNodePools (por exemplo, se usar várias zonas de disponibilidade), será necessário incluir uma tag nos IDs de sub-rede individualmente.

    Recupere sua lista de IDs de sub-rede com aws ec2 describe-subnets.

    Para ver uma lista de todas as sub-redes públicas, execute o seguinte comando:

    aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \
     --query "Subnets[*].SubnetId" \
     --output text
    

    Para ver uma lista de todas as sub-redes particulares, execute o seguinte comando:

    aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \
     --query "Subnets[*].SubnetId" \
     --output text
    

    A resposta inclui seus IDs de sub-rede.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. Marque a sub-rede com o ID do cluster. Se você tiver várias sub-redes, selecione "Várias sub-redes".

    Sub-rede única

    aws ec2 create-tags \
    --resources $SUBNET_ID \
    --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
    

    Várias sub-redes

    Para cada uma das suas sub-redes, execute o seguinte comando:

    aws ec2 create-tags \
    --resources subnet-ids \
    --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
    

    Substitua subnet-ids pela lista de IDs de sub-rede, separados por espaços. Por exemplo, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.