Preparazione della rete AWS

Per configurare un bilanciatore del carico rivolto all'esterno con GKE su AWS, devi taggare la VPC e la subnet pubblica con l'ID cluster. Se hai già taggato la 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 per le sottoreti che contengono gli endpoint del bilanciatore del carico. GKE su AWS applica automaticamente i tag a tutte le subnet specificate nel spec.Networking.ServiceLoadBalancerSubnetIDs campo della risorsa AWSCluster.

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

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

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

  2. Recupera l'ID della 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 ricorda 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.
    • Privata, se vuoi esporre i servizi nella 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 della sottorete.

    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 della sottorete.

    subnet-012345678abcdef
    

    Più subnet

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

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

    Per visualizzare un elenco di tutte le subnet pubbliche, esegui il seguente 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 il seguente 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 delle sottoreti.

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

    Singola subnet

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

    Più subnet

    Per ogni sottorete, esegui il seguente 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 sottorete, separati da spazi. Ad esempio, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.