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à:
- Completa i prerequisiti.
- Installa un servizio di gestione.
- Crea un cluster di utenti.
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.
Dalla directory
anthos-aws
, utilizzaanthos-gke
per cambiare contesto e passare al servizio di gestione.cd anthos-aws anthos-gke aws management get-credentials
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}')
Controlla i contenuti delle variabili con
echo
. L'output ricordavpc-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.
- 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 conecho
: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 conecho
: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
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
.