Preparación de la red de AWS

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:

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.

  1. Desde su directorio anthos-aws , use anthos-gke para cambiar el contexto a su servicio de administración.

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

  2. 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}')
    
  3. Verifique el contenido de las variables con echo . El resultado es similar a vpc-12345678abcdef0 .

    echo $VPC_ID
    
  4. 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
    
  5. 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 con echo :

    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 con echo :

    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
    
  6. 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 .