Para configurar um equilibrador de carga virado para o exterior com o GKE na AWS, tem de etiquetar a sua VPC e sub-rede pública com o ID do cluster. Se já tiver etiquetado a sua VPC e sub-rede, avance para a secção Ativar entrada.
Antes de começar
Antes de começar a usar o GKE on AWS, certifique-se de que realizou as seguintes tarefas:
- Cumpra os pré-requisitos.
- Instale um serviço de gestão.
- Crie um cluster de utilizadores.
O GKE no AWS requer etiquetas em sub-redes que contenham pontos finais do equilibrador de carga. O GKE on AWS etiqueta automaticamente todas as sub-redes especificadas no campo spec.Networking.ServiceLoadBalancerSubnetIDs
do recurso AWSCluster
.
Se quiser adicionar sub-redes adicionais ao cluster de utilizadores ou se precisar de voltar a aplicar etiquetas a sub-redes existentes, siga estes passos.
No diretório do
anthos-aws
, useanthos-gke
para mudar o contexto para o seu serviço de gestão.cd anthos-aws anthos-gke aws management get-credentials
Obtenha o ID da VPC da AWS 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
. O resultado é semelhante avpc-12345678abcdef0
.echo $VPC_ID
Guarde o ID do cluster numa variável de ambiente.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
Pode verificar a variável com
echo
:echo $CLUSTER_ID
A resposta inclui o ID do cluster.
gke-12345678
Se instalou o GKE no AWS numa VPC dedicada, pode usar a ferramenta de linha de comandos
aws
para obter o ID da sub-rede.Selecione uma das seguintes opções:
- Público, se quiser expor serviços na sua sub-rede pública.
- Privada, se quiser expor serviços na sua sub-rede privada.
Várias sub-redes, se 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. É semelhante a
subnet-1234abcdefg
. Pode verificar a variável comecho
:echo $SUBNET_ID
A resposta inclui o ID da 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 sub-rede. É semelhante a
subnet-1234abcdefg
. Pode verificar a variável comecho
:echo $SUBNET_ID
A resposta inclui o ID da sub-rede.
subnet-012345678abcdef
Várias sub-redes
Se estiver a usar várias sub-redes para os seus AWSNodePools (por exemplo, se usar várias zonas de disponibilidade), tem de etiquetar os IDs das sub-redes individualmente.
Obtenha a 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 os seus IDs de sub-rede.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
Etiquete a sua sub-rede com o ID do cluster. Se 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-redes, separados por espaços. Por exemplo,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
.