Preparazione della rete AWS

Per configurare un bilanciatore del carico rivolto all'esterno con GKE su AWS, devi taggare il VPC e la subnet pubblica con l'ID cluster. Se hai già taggato il VPC e la subnet, vai a Abilitazione dell'ingresso.

Prima di iniziare

Prima di iniziare a utilizzare GKE su AWS, assicurati di aver eseguito le seguenti operazioni:

GKE su AWS richiede tag sulle subnet che contengono endpoint del bilanciatore del carico. GKE su AWS tagga automaticamente tutte le subnet specificate nel campo spec.Networking.ServiceLoadBalancerSubnetIDs della risorsa AWSCluster.

Se vuoi aggiungere altre subnet al tuo cluster utente o se devi riapplicare i tag alle subnet esistenti, segui questi passaggi.

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al servizio di gestione.

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

  2. Recupera l'ID del VPC AWS del tuo cluster con kubectl e memorizzalo come variabile.

     export VPC_ID=$(\
     env HTTPS_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. Controlla i contenuti delle variabili con echo. L'output è simile a vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. Salva l'ID cluster in una variabile di ambiente.

    export CLUSTER_ID=$(\
    env HTTPS_PROXY=http://localhost:8118 \
    kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
    

    Puoi controllare la variabile con echo:

    echo $CLUSTER_ID
    

    La risposta include l'ID cluster.

    gke-12345678
    
  5. Se hai installato GKE su AWS in un VPC dedicato, puoi utilizzare lo strumento a riga di comando aws per recuperare l'ID subnet.

    Seleziona una delle seguenti opzioni:

    • Pubblico, se vuoi esporre i servizi nella tua subnet pubblica.
    • Privato, se vuoi esporre i servizi sulla tua subnet privata.
    • Più subnet, se vuoi esporre i servizi su più subnet.

    Pubblico

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

    L'output è un oggetto che contiene l'ID subnet. È simile a subnet-1234abcdefg. Puoi controllare la variabile con echo:

    echo $SUBNET_ID
    

    La risposta include l'ID subnet.

    subnet-012345678abcdef
    

    Privato

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

    L'output è un oggetto che contiene l'ID subnet. È simile a subnet-1234abcdefg. Puoi controllare la variabile con echo:

    echo $SUBNET_ID
    

    La risposta include l'ID subnet.

    subnet-012345678abcdef
    

    Più subnet

    Se utilizzi più subnet per i tuoi AWSNodePools (ad esempio, se utilizzi più zone di disponibilità), devi taggare i tuoi ID subnet singolarmente.

    Recupera l'elenco degli ID subnet con aws ec2 describe-subnets.

    Per ottenere un elenco di tutte le subnet pubbliche, esegui questo comando:

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

    Per ottenere un elenco di tutte le subnet private, esegui questo comando:

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

    La risposta include gli ID subnet.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. Tagga la subnet con l'ID cluster. Se hai più subnet, seleziona Più subnet.

    Singola subnet

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

    Più subnet

    Per ogni subnet, esegui questo comando:

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

    Sostituisci subnet-ids con l'elenco degli ID subnet, separati da spazi. Ad esempio, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.