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:
- Completa i prerequisiti.
- Installa un servizio di gestione.
- Crea un cluster utente.
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.
Dalla directory
anthos-aws
, utilizzaanthos-gke
per passare 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 memorizzalo come variabile.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
Controlla i contenuti 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 l'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 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 conecho
: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 conecho
: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
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
.