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à:
- Completa i prerequisiti.
- Installa un servizio di gestione.
- Crea un cluster utente.
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.
Dalla directory
anthos-aws
, utilizzaanthos-gke
per cambiare contesto al servizio di gestione.cd anthos-aws anthos-gke aws management get-credentials
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}')
Controlla il contenuto delle variabili con
echo
. L'output è simile avpc-12345678abcdef0
.echo $VPC_ID
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
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 conecho
: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 conecho
: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
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
.