Para configurar un balanceador de carga externo con GKE en AWS, debe etiquetar su VPC y subred pública con el ID de su clúster. Si ya ha etiquetado su VPC y subred, vaya a "Habilitar Ingress" .
Antes de empezar
Antes de comenzar a usar GKE en AWS, asegúrese de haber realizado las siguientes tareas:
- Complete los prerrequisitos .
- Instalar un servicio de gestión .
- Crear un clúster de usuarios .
GKE en AWS requiere etiquetas en las subredes que contienen puntos de conexión del balanceador de carga. GKE en AWS etiqueta automáticamente todas las subredes especificadas en el campo spec.Networking.ServiceLoadBalancerSubnetIDs
del recurso AWSCluster
.
Si desea agregar subredes adicionales a su clúster de usuarios o si necesita volver a aplicar etiquetas a las subredes existentes, realice los siguientes pasos.
Desde su directorio
anthos-aws
, useanthos-gke
para cambiar el contexto a su servicio de administración.cd anthos-aws anthos-gke aws management get-credentials
Obtenga el ID de la VPC de AWS de su clúster con
kubectl
y guárdelo como una variable.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
Verifique el contenido de las variables con
echo
. El resultado es similar avpc-12345678abcdef0
.echo $VPC_ID
Guarde su ID de clúster en una variable de entorno.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
Puedes comprobar la variable con
echo
:echo $CLUSTER_ID
La respuesta incluye su ID de clúster.
gke-12345678
Si instaló GKE en AWS en una VPC dedicada, puede usar la herramienta de línea de comandos
aws
para recuperar el ID de subred.Seleccione entre las siguientes opciones:
- Público, si desea exponer servicios en su subred pública.
- Privado, si desea exponer servicios en su subred privada.
Varias subredes, si desea exponer servicios en varias subredes.
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)
La salida es un objeto que contiene el ID de su subred. Es similar a
subnet-1234abcdefg
. Puede comprobar la variable conecho
:echo $SUBNET_ID
La respuesta incluye su ID de subred.
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)
La salida es un objeto que contiene el ID de su subred. Es similar a
subnet-1234abcdefg
. Puede comprobar la variable conecho
:echo $SUBNET_ID
La respuesta incluye su ID de subred.
subnet-012345678abcdef
Varias subredes
Si utiliza varias subredes para sus AWSNodePools (por ejemplo, si utiliza varias zonas de disponibilidad), debe etiquetar los ID de sus subredes individualmente.
Recupere su lista de ID de subred con
aws ec2 describe-subnets
.Para obtener una lista de todas las subredes públicas, ejecute el siguiente comando:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text
Para obtener una lista de todas las subredes privadas, ejecute el siguiente comando:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text
La respuesta incluye los ID de su subred.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
Etiquete su subred con el ID de su clúster. Si tiene varias subredes, seleccione "Varias subredes".
Subred única
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Varias subredes
Para cada una de sus subredes, ejecute el siguiente comando:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Reemplace subnet-ids con la lista de IDs de subred, separados por espacios. Por ejemplo,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
.