Um einen extern ausgerichteten Load-Balancer mit Anthos-Cluster auf AWS einzurichten, müssen Sie Ihre VPC und Ihr öffentliches 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 Anthos-Cluster auf AWS verwenden, führen Sie die folgenden Aufgaben aus:
- Sie haben dafür gesorgt, dass die Voraussetzungen erfüllt sind.
- Der Verwaltungsdienst muss installiert sein.
- Nutzercluster erstellen
Anthos Clusters on AWS erfordert Tags für Subnetze, die Endpunkte des Load-Balancers enthalten. Anthos Clusters on AWS kennzeichnet automatisch alle Subnetze im Feld spec.Networking.ServiceLoadBalancerSubnetIDs
der Ressource AWSCluster
mit Tags.
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 Anthos-Cluster auf 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