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-gkepara 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
kubectle 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_IDSalve 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_IDA resposta inclui o ID do cluster.
gke-12345678Se você instalou o GKE na AWS em uma VPC dedicada, use a ferramenta de linha de comando
awspara 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_IDA resposta inclui o ID da sub-rede.
subnet-012345678abcdefParticular
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_IDA resposta inclui o ID da sub-rede.
subnet-012345678abcdefVá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 textPara 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 textA resposta inclui seus IDs de sub-rede.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdefMarque 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=sharedVá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=sharedSubstitua subnet-ids pela lista de IDs de sub-rede, separados por espaços. Por exemplo,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.