Wenn Sie einen externen Load-Balancer mit GKE on AWS einrichten möchten, müssen Sie Ihre VPC und das öffentliche Subnetz mit Ihrer Cluster-ID taggen. Wenn Sie Ihre VPC und Ihr Subnetz bereits getaggt haben, fahren Sie mit Eingehenden Traffic aktivieren fort.
Hinweis
Bevor Sie GKE on AWS verwenden, müssen die folgenden Bedingungen erfüllt sein:
- Erfüllen Sie die Voraussetzungen.
- Der Verwaltungsdienst muss installiert sein.
- Nutzercluster erstellen
GKE on AWS erfordert Tags in Subnetzen, die Load-Balancer-Endpunkte enthalten. GKE on AWS taggt automatisch alle im Feld spec.Networking.ServiceLoadBalancerSubnetIDs
der AWSCluster
-Ressource angegebenen Subnetze.
Wenn Sie Ihrem Nutzercluster weitere Subnetze hinzufügen oder Tags auf vorhandene Subnetze anwenden möchten, führen Sie die folgenden Schritte aus:
Verwenden Sie
anthos-gke
im Verzeichnisanthos-aws
, um den Kontext zu Ihrem Verwaltungsdienst zu wechseln.cd anthos-aws anthos-gke aws management get-credentials
Rufen Sie die ID der AWS-VPC des Clusters mit
kubectl
ab und speichern Sie sie als Variable.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')
Prüfen Sie den Inhalt der Variablen mit
echo
. Die Ausgabe ähneltvpc-12345678abcdef0
.echo $VPC_ID
Speichern Sie die Cluster-ID in einer Umgebungsvariablen.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')
Sie können die Variable mit
echo
prüfen:echo $CLUSTER_ID
Die Antwort enthält Ihre Cluster-ID.
gke-12345678
Wenn Sie GKE on AWS in einer dedizierten VPC installiert haben, können Sie mit dem
aws
-Befehlszeilentool die Subnetz-ID abrufen.Folgende Optionen sind verfügbar:
- Öffentlich, wenn Sie Dienste in Ihrem öffentlichen Subnetz verfügbar machen möchten.
- Privat, wenn Sie Dienste in Ihrem privaten Subnetz verfügbar machen möchten.
Mehrere Subnetze, wenn Sie Dienste in mehreren Subnetzen verfügbar machen möchten.
Öffentlich
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text)
Die Ausgabe ist ein Objekt, das Ihre Subnetz-ID enthält. Sie ähnelt
subnet-1234abcdefg
. Sie können die Variable mitecho
prüfen:echo $SUBNET_ID
Die Antwort enthält Ihre Subnetz-ID.
subnet-012345678abcdef
Privat
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text)
Die Ausgabe ist ein Objekt, das Ihre Subnetz-ID enthält. Sie ähnelt
subnet-1234abcdefg
. Sie können die Variable mitecho
prüfen:echo $SUBNET_ID
Die Antwort enthält Ihre Subnetz-ID.
subnet-012345678abcdef
Mehrere Subnetze
Wenn Sie mehrere Subnetze für Ihre AWSNodePools nutzen, z. B. wenn Sie mehrere Verfügbarkeitszonen verwenden, müssen Sie Ihre Subnetz-IDs einzeln taggen.
Rufen Sie die Liste der Subnetz-IDs mit
aws ec2 describe-subnets
ab.Führen Sie den folgenden Befehl aus, um eine Liste aller öffentlichen Subnetze abzurufen:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text
Führen Sie den folgenden Befehl aus, um eine Liste aller privaten Subnetze abzurufen:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text
Die Antwort enthält Ihre Subnetz-IDs.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
Taggen Sie das Subnetz mit Ihrer Cluster-ID. Wenn Sie mehrere Subnetze haben, wählen Sie die Methode für mehrere Subnetze aus.
Einzelnes Subnetz
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Mehrere Subnetze
Führen Sie für jedes Ihrer Subnetze den folgenden Befehl aus:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Ersetzen Sie subnet-ids durch die durch Leerzeichen getrennte Liste der Subnetz-IDs. Beispiel:
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef