Per configurare un bilanciatore del carico con accesso 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 Attivare 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 sulle subnet che contengono endpoint del bilanciatore del carico. GKE su AWS tagga automaticamente tutte le subnet specificate nel
spec.Networking.ServiceLoadBalancerSubnetIDs
campo della risorsa AWSCluster.
Se vuoi aggiungere altre subnet al cluster utente o se devi riapplicare i tag alle subnet esistenti, segui questi passaggi.
Dalla directory
anthos-aws, utilizzaanthos-gkeper passare al contesto del servizio di gestione.cd anthos-aws anthos-gke aws management get-credentials
Recupera l'ID del VPC AWS del cluster con
kubectle memorizzalo 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_IDSalva 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_IDLa risposta include l'ID cluster.
gke-12345678Se hai installato GKE su AWS in un VPC dedicato, puoi utilizzare lo strumento a riga di comando
awsper recuperare l'ID subnet.Seleziona una delle seguenti opzioni:
- Pubblico, se vuoi esporre i servizi sulla subnet pubblica.
- Privato, se vuoi esporre i servizi sulla 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_IDLa risposta include l'ID subnet.
subnet-012345678abcdefPrivato
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_IDLa risposta include l'ID subnet.
subnet-012345678abcdefPiù subnet
Se utilizzi più subnet per i tuoi AWSNodePool (ad esempio, se utilizzi più zone di disponibilità), devi taggare gli 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 textPer 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 textLa risposta include gli ID subnet.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdefTagga 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=sharedPiù subnet
Per ogni subnet, esegui questo comando:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=sharedSostituisci subnet-ids con l'elenco degli ID subnet, separati da spazi. Ad esempio,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.