Ein Verwaltungsdienst erstellt, aktualisiert und löscht Cluster von Anthos GKE on AWS (GKE on AWS). In diesem Thema wird erläutert, wie Sie einen Verwaltungsdienst innerhalb einer dedizierten AWS Virtual Private Cloud (VPC) erstellen. Wenn Sie bereits eine VPC haben, finden Sie entsprechende Informationen unter In vorhandene Infrastruktur einbinden.
Hinweis
Bevor Sie Anthos-Cluster auf AWS verwenden, führen Sie die folgenden Aufgaben aus:
- Schließen Sie die Voraussetzungen ab.
-
Authentifizieren Sie sich mit dem Google Cloud CLI:
gcloud auth login && \ gcloud auth application-default login
Benötigte Werte
Für dieses Thema benötigen Sie Folgendes aus den Voraussetzungen:
- KMS-Schlüssel-ARNs oder Aliasse
- Google Cloud-Dienstkontoschlüssel
- Google Cloud-Projekt
- Installierte und konfigurierte
aws
-,terraform
- undanthos-gke
-Befehlszeilentools - Die AWS-Region und Verfügbarkeitszonen, in denen Anthos-Cluster on AWS Ihren Verwaltungscluster erstellt.
Verwaltungsdienst konfigurieren
Sie konfigurieren den Verwaltungsdienst von Anthos-Cluster on AWS mit einer YAML-Datei. Die Datei entspricht einer benutzerdefinierten Kubernetes-Ressourcenkonfiguration, ist jedoch keine Darstellung einer Ressource.
Öffnen Sie ein Terminal auf dem Computer, auf dem Sie die Befehlszeilentools
aws
,terraform
undanthos-gke
installiert und konfiguriert haben.Erstellen Sie ein leeres Verzeichnis für Ihre Konfiguration von Anthos-Cluster on AWS und wechseln Sie in dieses Verzeichnis. In der Dokumentation von Anthos-Cluster on AWS wird
anthos-aws
als Beispielkonfigurationsverzeichnis verwendet.mkdir anthos-aws cd anthos-aws
Erstellen Sie in einem Texteditor die Datei
anthos-gke.yaml
. Fügen Sie den folgenden Inhalt in die Datei ein.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 region: AWS_REGION authentication: awsIAM: adminIdentityARNs: - ADMIN_AWS_IAM_ARN kmsKeyARN: KMS_KEY_ARN databaseEncryption: kmsKeyARN: DATABASE_KMS_KEY_ARN googleCloud: projectID: GCP_PROJECT_ID serviceAccountKeys: managementService: MANAGEMENT_KEY_PATH connectAgent: HUB_KEY_PATH node: NODE_KEY_PATH dedicatedVPC: vpcCIDRBlock: VPC_CIDR_BLOCK availabilityZones: - ZONE_1 - ZONE_2 - ZONE_3 privateSubnetCIDRBlocks: - PRIVATE_CIDR_BLOCK_1 - PRIVATE_CIDR_BLOCK_2 - PRIVATE_CIDR_BLOCK_3 publicSubnetCIDRBlocks: - PUBLIC_CIDR_BLOCK_1 - PUBLIC_CIDR_BLOCK_2 - PUBLIC_CIDR_BLOCK_3 # Optional bastionHost: allowedSSHCIDRBlocks: - SSH_CIDR_BLOCK proxy: PROXY_JSON_FILE # optional
Ersetzen Sie die folgenden Werte:
AWS_REGION durch die AWS-Region, in der Sie den Cluster ausführen möchten.
ADMIN_AWS_IAM_ARN durch den Amazon-Ressourcennamen des Nutzers mit AWS-IAM-Berechtigungen zum Erstellen eines Verwaltungsdienstes. Führen Sie
aws sts get-caller-identity
aus, um den ARN des Nutzers für dasaws
-Tool zu authentifizieren.KMS_KEY_ARN durch den Amazon-Ressourcennamen des AWS-KMS-Schlüssels oder KMS-Schlüsselalias, der die Daten Ihres Verwaltungsdienstes während der Erstellung schützt. Beispiel:
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
. Wenn Sie den ARN nicht haben, führen Sieaws kms list-keys
aus, um eine Liste der ARNs abzurufen.DATABASE_KMS_KEY_ARN durch den Amazon-Ressourcennamen des AWS KMS-Schlüssels oder Schlüsselalias, der die
etcd
-Datenbanken Ihres Verwaltungsdienstes schützt, zum Beispiel:arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
.GCP_PROJECT_ID durch die ID des Google Cloud-Projekts, das Ihre Anthos-Umgebung hostet.
MANAGEMENT_KEY_PATH durch den Speicherort Ihres Dienstkontoschlüssels für die Google Cloud-Verwaltung.
HUB_KEY_PATH durch den Speicherort Ihres Dienstkontoschlüssels für Google Cloud Connect.
NODE_KEY_PATH mit dem Standort Ihres Dienstkontoschlüssel für den Anthos-Cluster on AWS-Knoten.
VPC_CIDR_BLOCK mit dem gesamten CIDR-Bereich für die von
anthos-gke
erstellte AWS-VPC. Beispiel:10.0.0.0/16
. Weitere Informationen finden Sie unter VPC- und Subnetz-Grundlagen in der AWS-Dokumentation.ZONE_1, ZONE_2 und ZONE_3 durch die AWS-EC2-Verfügbarkeitszonen, in denen Sie Knoten und Steuerungsebenen erstellen möchten. Anthos-Cluster on AWS erstellt Subnetze in diesen Zonen. Wenn Sie
anthos-gke
zum Generieren der Konfiguration für einen Nutzercluster verwenden, erstellt Anthos-Cluster on AWS Steuerungsebenen und Knotenpools in diesen Verfügbarkeitszonen, zum Beispiel:us-east-1a
.
Wenn Sieanthos-gke
verwenden möchten, um Nutzercluster nur in einer Zone zu erstellen, können Sie ZONE_2 und ZONE_3 entfernen.PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2 und PRIVATE_CIDR_BLOCK_3 durch den CIDR-Block für Ihr privates Subnetz. Anthos-Cluster on AWS-Komponenten wie der Verwaltungsdienst werden im privaten Subnetz ausgeführt. Dieses Subnetz muss sich innerhalb des in
vpcCIDRBlock
angegebenen CIDR-Bereichs der VPC befinden. Sie benötigen ein Subnetz für jede Verfügbarkeitszone, zum Beispiel:10.0.1.0/24
.PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2 und PUBLIC_CIDR_BLOCK_3 durch die CIDR-Blöcke für Ihr öffentliches Subnetz. Sie benötigen ein Subnetz für jede Verfügbarkeitszone. Das öffentliche Subnetz stellt Clusterdienste wie Load-Balancer für die Sicherheits- und Adressbereiche bereit, die in den Netzwerk-ACLs und Sicherheitsgruppen von AWS angegeben werden., zum Beispiel:
10.0.100.0/24
.SSH_CIDR_BLOCK durch den CIDR-Block, der eingehende SSH-Verbindungen zu Ihrem Bastion Host ermöglicht, zum Beipsiel:
203.0.113.0/24
. Wenn Sie SSH von jeder IP-Adresse zulassen möchten, verwenden Sie0.0.0.0/0
.Optional: PROXY_JSON_FILE durch den relativen Pfad der Proxy-Konfigurationsdatei. Wenn Sie keinen Proxy verwenden, löschen Sie diese Zeile.
Führen Sie
anthos-gke aws management init
aus, um eineanthos-gke.status.yaml
-Datei mit zusätzlicher Konfiguration zu generieren. Mit dem Befehlinit
wird auch das ObjektAWSManagementService
in der Dateianthos-gke.yaml
validiert.anthos-gke aws management init
Führen Sie
anthos-gke aws management apply
aus, um den Verwaltungsdienst in AWS zu erstellen.anthos-gke aws management apply
Die Verarbeitung des Befehls
anthos-gke aws management apply
kann bis zu zehn Minuten dauern. Nach Ausführen des Befehls wird Ihr Verwaltungsdienst in AWS ausgeführt.
Optionale Felder
Die obige Datei anthos-gke.yaml
zeigt einen typischen Satz von Feldern, die von den meisten Kunden benötigt werden. Die Konfiguration in anthos-gke.yaml
unterstützt auch eine Reihe optionaler Felder. Dazu gehören:
- spec.bootstrapS3Bucket, um einen AWS S3-Bucket für Konfigurationsdaten von Anthos-Cluster auf AWS anzugeben.
- spec.tags zum Taggen clusterbezogener AWS-Ressourcen
- spec.securityGroupIDs, um dem Verwaltungscluster zusätzliche Sicherheitsgruppen-IDs zuzuweisen
- spec.*Volume und die zugehörigen Unterfelder volumeType, iops und kmsKeyARN zum Optimieren von EBS-Volume-Parametern
- spec.terraform.stateGCSBucket, um einen Google Cloud-Dienst-Bucket für Terraform-Konfigurationsdaten anzugeben
Weitere Informationen zu allen in anthos-gke.yaml
unterstützten Feldern finden Sie in der Referenz zum AWS-Verwaltungsdienst.
Verbindung zum Verwaltungsdienst herstellen
Als Nächstes stellen Sie mit anthos-gke
eine Verbindung zu Ihren Anthos-Clustern im AWS-Verwaltungsdienst her und authentifizieren diese.
Wenn Sie einen Verwaltungsdienst mithilfe der Standardeinstellungen erstellen, hat die Steuerungsebene eine private IP-Adresse, auf die von außerhalb der AWS-VPC nicht zugegriffen werden kann. Sie haben drei Möglichkeiten, auf Ihren Verwaltungsdienst zuzugreifen:
- über den AWS Direct Connect-Dienst von Amazon
- über einen Bastion Host, der Verbindungen zwischen dem Internet und Ihren Anthos-Cluster auf AWS-Subnetzen weiterleitet
- über ein VPN
Wenn Sie einen Verwaltungsdienst in einer dedizierten VPC erstellen, erstellt Anthos-Cluster auf AWS automatisch einen Bastion Host in einem öffentlichen Subnetz. Wenn Sie eine Verbindung zu Ihrem Verwaltungsdienst über ein VPN oder AWS Direct Connect herstellen, wird dieser Bastion Host nicht benötigt. Führen Sie andernfalls die folgenden Schritte aus, um eine Verbindung zu Ihrem Verwaltungsdienst über den Bastion Host herzustellen:
Generieren Sie mit dem
terraform
-Tool das Skript, mit dem ein SSH-Tunnel zum Bastion Host geöffnet wird. Wählen Sie Ihre Terraform-Version aus und führen Sie dann die folgenden Befehle aus:Terraform 0.12, 0.13
terraform output bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.sh
Terraform 0.14.3+
terraform output -raw bastion_tunnel > bastion-tunnel.sh chmod 755 bastion-tunnel.sh
Terraform erstellt das Skript
bastion-tunnel.sh
, das auf den SSH-Schlüssel des Bastion Host unter~/.ssh/anthos-gke
verweist.Führen Sie das Skript
bastion-tunnel.sh
aus, um den Tunnel zu öffnen. Der Tunnel sorgt für eine Weiterleitung vonlocalhost:8118
an den Bastion Host.Führen Sie den folgenden Befehl aus, um einen Tunnel zum Bastion Host zu öffnen:
./bastion-tunnel.sh -N -4
In diesem Fenster werden Nachrichten aus dem SSH-Tunnel angezeigt. Wenn die Verbindung geschlossen werden kann, beenden Sie den Vorgang mit Strg + C oder durch Schließen des Fensters.
Öffnen Sie ein neues Terminal und wechseln Sie in das Verzeichnis mit Ihren Anthos-Clustern in der AWS-Konfiguration.
Generieren Sie eine
kubeconfig
für die Authentifizierung. Verwenden Sieanthos-gke
, um Anmeldedaten an Ihre in~/.kube/config
gespeicherte Konfiguration anzuhängen.anthos-gke aws management get-credentials
Prüfen Sie, ob Sie mit
kubectl
eine Verbindung zum Verwaltungsdienst herstellen können.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
Die Ausgabe enthält die URL für den API-Server des Verwaltungsdiensts.
Nächste Schritte
- Nutzercluster erstellen
- Proxy mit Anthos-Clustern in AWS verwenden.
- Ändern Sie die Konfiguration
kubectl
, um eine Verbindung zu Anthos-Clustern auf AWS mit weniger Befehlszeilenoptionen herzustellen.