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:
- Conclua os Pré-requisitos.
- Instale um serviço de gerenciamento.
- Crie um cluster de usuário.
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.
No diretório
anthos-aws
, useanthos-gke
para alternar o contexto para o serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
Consiga o código da VPC da AWS do cluster com
kubectl
e armazene-o como uma variável.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
Verifique o conteúdo das variáveis com
echo
. A saída é semelhante avpc-12345678abcdef0
.echo $VPC_ID
Salve o ID do cluster em uma variável de ambiente.
export CLUSTER_ID=$(\ env HTTPS_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
Se você instalou o GKE na AWS em uma VPC dedicada, use a ferramenta de linha de comando
aws
para recuperar o ID da sub-rede.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 comecho
: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 comecho
: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
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
.