Preparar las redes de AWS

Para configurar un balanceador de cargas externo con GKE on AWS, debes etiquetar la VPC y la subred pública con el ID de tu clúster. Si ya etiquetaste la VPC y la subred, ve a Habilita Ingress.

Antes de comenzar

Antes de comenzar a usar GKE on AWS, completa las siguientes tareas:

GKE on AWS requiere etiquetas en las subredes que contienen extremos del balanceador de cargas. GKE on AWS etiqueta de forma automática todas las subredes especificadas en el campo spec.Networking.ServiceLoadBalancerSubnetIDs del recurso AWSCluster.

Si deseas agregar subredes adicionales a tu clúster de usuario o si necesitas volver a aplicar etiquetas a las subredes existentes, sigue estos pasos.

  1. Desde tu directorio de anthos-aws, usa anthos-gke para cambiar el contexto a tu servicio administrado.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Obtén el ID de la VPC de AWS de tu clúster con kubectl y almacénalo como una variable.

     export VPC_ID=$(\
     env HTTPS_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. Comprueba el contenido de las variables mediante echo. La salida es similar a vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. Guarda el ID de tu 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 verificar la variable con echo:

    echo $CLUSTER_ID
    

    La respuesta incluye el ID de tu clúster.

    gke-12345678
    
  5. Si instalaste GKE en AWS en una VPC dedicada, puedes usar la herramienta de línea de comandos de aws para recuperar el ID de subred.

    Selecciona una de las siguientes opciones:

    • Público, si deseas exponer Services en tu subred pública.
    • Privado, si deseas exponer Services en tu subred privada.
    • Varias subredes, si deseas exponer Services 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)
    

    El resultado es un objeto que contiene el ID de tu subred. Es similar a subnet-1234abcdefg. Puedes verificar la variable con echo:

    echo $SUBNET_ID
    

    La respuesta incluirá el ID de tu subred.

    subnet-012345678abcdef
    

    Privada

     export SUBNET_ID=$(aws ec2 describe-subnets \
     --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \
     --query "Subnets[*].SubnetId" \
     --output text)
    

    El resultado es un objeto que contiene el ID de tu subred. Es similar a subnet-1234abcdefg. Puedes verificar la variable con echo:

    echo $SUBNET_ID
    

    La respuesta incluirá el ID de tu subred.

    subnet-012345678abcdef
    

    Varias subredes

    Si usas varias subredes para tus AWSNodePools (por ejemplo, si usas varias zonas de disponibilidad), debes etiquetar los ID de tus subredes de forma individual.

    Recupera la lista de ID de subredes mediante aws ec2 describe-subnets.

    Para obtener una lista de todas las subredes públicas, ejecuta 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, ejecuta 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 incluirá los ID de las subredes.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. Etiqueta la subred con el ID de tu clúster. Si tienes varias subredes, selecciona 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 tus subredes, ejecuta el siguiente comando:

    aws ec2 create-tags \
    --resources subnet-ids \
    --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
    

    Reemplaza subnet-ids por la lista de ID de subredes, separados por espacios. Por ejemplo, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.