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à codificato il VPC e la subnet, vai ad Abilitazione di Ingress.

Prima di iniziare

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

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

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

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto 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 archivialo come variabile.

     export VPC_ID=$(\
     env HTTPS_PROXY=http://localhost:8118 \
     kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
    
  3. Controlla il contenuto 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 il tuo 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 subnet pubblica.
    • Privato, se vuoi esporre i servizi della tua subnet privata.
    • Più subnet, per 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 contenente il tuo ID subnet. Assomiglia a subnet-1234abcdefg. Puoi controllare la variabile con echo:

    echo $SUBNET_ID
    

    La risposta include il tuo 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 contenente il tuo ID subnet. Assomiglia a subnet-1234abcdefg. Puoi controllare la variabile con echo:

    echo $SUBNET_ID
    

    La risposta include il tuo ID subnet.

    subnet-012345678abcdef
    

    Più subnet

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

    Recupera l'elenco di 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. Applica il tagging alla subnet con l'ID cluster. Se hai più subnet, seleziona Più subnet.

    Subnet singola

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

    Più subnet

    Per ciascuna delle 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.