Para configurar um balanceador de carga externo com o GKE na AWS, você precisa marcar sua VPC e sub-rede pública com o ID do seu cluster. Se você já marcou sua VPC e sub-rede, pule para Habilitando o Ingress .
Antes de começar
Antes de começar a usar o GKE na AWS, certifique-se de ter executado as seguintes tarefas:
- Conclua os pré-requisitos .
- Instalar um serviço de gerenciamento .
- Crie um cluster de usuários .
O GKE na AWS exige tags em sub-redes que contêm 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 sub-redes adicionais ao seu cluster de usuários ou se precisar reaplicar tags às sub-redes existentes, execute as seguintes etapas.
No seu diretório
anthos-aws
, useanthos-gke
para alternar o contexto para seu serviço de gerenciamento.cd anthos-aws anthos-gke aws management get-credentials
Obtenha o ID do AWS VPC do seu 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 é semelhantevpc-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}')
Você pode verificar a variável com
echo
:echo $CLUSTER_ID
A resposta inclui seu ID de cluster.
gke-12345678
Se você instalou o GKE na AWS em uma VPC dedicada, poderá usar a ferramenta de linha de comando
aws
para recuperar o ID da sub-rede.Selecione entre as seguintes opções:
- Público, se você quiser expor serviços na sua sub-rede pública.
- Privado, se você quiser expor serviços na sua 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 sua sub-rede. Ele se assemelha
subnet-1234abcdefg
. Você pode verificar a variável comecho
:echo $SUBNET_ID
A resposta inclui seu ID de sub-rede.
subnet-012345678abcdef
Privado
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 sua sub-rede. Ele se assemelha
subnet-1234abcdefg
. Você pode verificar a variável comecho
:echo $SUBNET_ID
A resposta inclui seu ID de sub-rede.
subnet-012345678abcdef
Várias sub-redes
Se você estiver usando várias sub-redes para seus AWSNodePools (por exemplo, se usar várias zonas de disponibilidade), será necessário marcar suas IDs de sub-rede individualmente.
Recupere sua lista de IDs de sub-rede com
aws ec2 describe-subnets
.Para obter 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 obter uma lista de todas as sub-redes privadas, 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 sua sub-rede com o ID do cluster. Se você tiver várias sub-redes, selecione "Múltiplas 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
.