Auf dieser Seite erfahren Sie, wie Sie einen Cluster und einen Knotenpool erstellen, der dedizierte Instanzen oder dedizierte Hosts von AWS verwendet. Dedizierte Hosts und Instanzen sind allein für die Verwendung reserviert und werden nicht für andere AWS-Kunden freigegeben. Die Einstellung für dedizierte Hosts und Instanzen wird als Mandantenfähigkeit bezeichnet.
Hinweise
Wenn Sie dedizierte Instanzen oder Hosts mit GKE on AWS verwenden möchten, müssen Sie eine neue Clusterversion 1.22.8-gke.200 oder höher erstellen. Sie können einen vorhandenen Cluster nicht aktualisieren und keine dedizierten Hosts hinzufügen.
Clusteranforderungen
Bevor Sie einen Cluster erstellen, müssen Sie die Voraussetzungen erfüllen. Insbesondere müssen Sie die folgenden Ressourcen bereitstellen:
- Eine AWS-VPC, in der der Cluster ausgeführt wird.
- Bis zu drei AWS-Subnetze für die drei Replikate der Steuerungsebene. Jedes Subnetz muss sich in einer anderen AWS-Verfügbarkeitszone befinden.
- Die AWS-IAM-Rolle, die GKE on AWS bei der Verwaltung Ihres Clusters übernimmt. Hierfür ist ein bestimmter Satz von IAM-Berechtigungen erforderlich.
- Symmetrische KMK-Schlüssel in KMS für die Verschlüsselung inaktiver Clusterdaten (etcd) und für die Konfiguration.
- Das AWS-IAM-Instanzprofil für jedes Replikat der Steuerungsebene. Hierfür ist ein bestimmter Satz von IAM-Berechtigungen erforderlich.
- Ein EC2-SSH-Schlüsselpaar (optional), wenn Sie SSH-Zugriff auf die EC2-Instanzen benötigen, die jedes Replikat der Steuerungsebene ausführen.
Es liegt in Ihrer Verantwortung, diese Ressourcen zu erstellen und zu verwalten, die von allen Anthos-Clustern gemeinsam genutzt werden können. Alle anderen zugrunde liegenden clusterbezogenen AWS-Ressourcen werden von GKE on AWS verwaltet.
In dieser Anleitung wird die GKE Multi-Cloud API verwendet, um einen Cluster und einen Knotenpool zu erstellen. Bevor Sie die GKE Multi-Cloud API verwenden, sollten Sie mit Google Cloud APIs vertraut sein.
Dedizierte Hosts und dedizierte Instanzen
Wenn Sie einen Cluster oder Knotenpool erstellen, wählen Sie eine der folgenden Optionen aus:
DEFAULT
: Instanzen mit der Standardmandantenfähigkeit Ihrer VPC startenDEDICATED
: Instanzen auf einer dedizierten Instanz startenHOST
: Instanzen auf einem dedizierten Host starten
Entscheiden Sie sich vor der Erstellung eines Clusters oder Knotenpools, welche Option für Sie am besten geeignet ist.
Weitere Informationen finden Sie unter Instanzmandantenfähigkeit mit einer Startkonfiguration konfigurieren, Dedizierte Instanzen und Dedizierte Hosts in der AWS-Dokumentation.
Mandanteneinstellungen in einem Cluster kombinieren
Sie können die Mandanteneinstellungen für jede Steuerungsebene und jeden Knotenpool einzeln konfigurieren. Sie können beispielsweise einen Cluster mit der Steuerungsebene auf freigegebenen Hosts, einem Knotenpool auf dedizierten Hosts und einem weiteren Knotenpool auf freigegebenen Hosts erstellen.
Dedizierte Hosts zuweisen
Bevor Sie einen Cluster mit dedizierten Hosts erstellen, müssen Sie allen Hosts, die Ihr Cluster benötigt, Hosts zuweisen. Die Hosts sollten die folgenden Attribute haben:
- Verwenden Sie dieselben Instanzfamilien, die Ihre Clusterressourcen benötigen
- Wird in denselben Zonen zugewiesen, in denen Sie Cluster erstellt haben
- Automatische Platzierung aktivieren
- Sie haben ein ausreichendes Kontingent zum Starten dedizierter Hosts
Weitere Informationen zum Zuweisen dedizierter Hosts finden Sie unter Erste Schritte mit dedizierten Hosts.
Beschränkungen
In diesem Abschnitt werden die Einschränkungen für die dedizierte Hostunterstützung in GKE on AWS aufgeführt.
Knotenpools
Sie können die Mandanteneinstellung eines Knotenpools nicht aktualisieren. Erstellen Sie einen neuen Knotenpool mit dem gewünschten Mandanten und löschen Sie den vorhandenen Knotenpool, um Arbeitslasten auf Instanzen mit einer anderen Mandanteneinstellung zu verschieben.
Unterstützte Instanzfamilien
GKE on AWS unterstützt dedizierte Hosts aus den folgenden Instanzfamilien.
- t3
- m5
- m5d
- c5
- c5d
- r5
- r5d
- i3en
Andere Instanzfamilien werden nicht unterstützt.
Knotentypen
Nur Linux-Knotenpools werden unterstützt.
Cluster erstellen
Sie erstellen einen Cluster, der dedizierte Hosts mit der Methode: projects.locations.awsClusters.create mit der GKE Multi-Cloud API unterstützt. Führen Sie die folgenden Schritte aus, um einen Cluster zu erstellen:
gcloud
Im folgenden Beispiel wird ein Cluster mit dedizierten Hosts erstellt.Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- CLUSTER_NAME: der von Ihnen ausgewählte Clustername
- GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet, z. B.
us-west1
- AWS_REGION: die AWS-Region, in der der Cluster erstellt werden soll
- API_ROLE_ARN: der ARN der GKE Multi-Cloud API-Rolle
- CONFIG_KMS_KEY_ARN: der Amazon-Ressourcenname (ARN) des AWS KMS-Schlüssels zum Verschlüsseln von Nutzerdaten.
- DB_KMS_KEY_ARN: durch den Amazon-Ressourcennamen (ARN) des AWS KMS-Schlüssels zum Verschlüsseln der Secrets des Clusters
- CONTROL_PLANE_PROFILE: durch das Profil der IAM-Instanz, die dem Cluster zugeordnet ist
- CONTROL_PLANE_SUBNET_1, CONTROL_PLANE_SUBNET_2, CONTROL_PLANE_SUBNET_3 durch die Subnetz-IDs der drei Instanzen der Steuerungsebene des Clusters.
- TENANCY_TYPE: die Einstellung für die Mandantenfähigkeit der Steuerungsebene.
Kann
DEFAULT
,DEDICATED
oderHOST
sein. - CLUSTER_VERSION: eine unterstützte Clusterversion
- FLEET_PROJECT: das Flotten-Hostprojekt, in dem der Cluster registriert wird Wenn Sie diesen Cluster von einem anderen Projekt aus verwalten möchten, lesen Sie die Informationen unter Projektübergreifende Registrierung.
- POD_ADDRESS_CIDR_BLOCKS: den CIDR-Adressbereich für die Pods Ihres Clusters
- SERVICE_ADDRESS_CIDR_BLOCKS: der CIDR-Adressbereich für die Dienste des Clusters
- VPC_ID: durch die ID der AWS-VPC für diesen Cluster
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud alpha container aws clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --aws-region AWS_REGION \ --role-arn API_ROLE_ARN \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --database-encryption-kms-key-arn DB_KMS_KEY_ARN \ --iam-instance-profile CONTROL_PLANE_PROFILE \ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 \ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION \ --fleet-project FLEET_PROJECT \ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS \ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS \ --vpc-id VPC_ID \ --tags="control-plane=CLUSTER_NAME"
Windows (PowerShell)
gcloud alpha container aws clusters create CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --aws-region AWS_REGION ` --role-arn API_ROLE_ARN ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --database-encryption-kms-key-arn DB_KMS_KEY_ARN ` --iam-instance-profile CONTROL_PLANE_PROFILE ` --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ` --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ` --fleet-project FLEET_PROJECT ` --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ` --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ` --vpc-id VPC_ID ` --tags="control-plane=CLUSTER_NAME"
Windows (cmd.exe)
gcloud alpha container aws clusters create CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --aws-region AWS_REGION ^ --role-arn API_ROLE_ARN ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --database-encryption-kms-key-arn DB_KMS_KEY_ARN ^ --iam-instance-profile CONTROL_PLANE_PROFILE ^ --subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 ^ --instance-placement TENANCY_TYPE --cluster-version CLUSTER_VERSION ^ --fleet-project FLEET_PROJECT ^ --pod-address-cidr-blocks POD_ADDRESS_CIDR_BLOCKS ^ --service-address-cidr-blocks SERVICE_ADDRESS_CIDR_BLOCKS ^ --vpc-id VPC_ID ^ --tags="control-plane=CLUSTER_NAME"
REST
Im folgenden Beispiel wird ein Cluster mit dedizierten Hosts erstellt.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- ENDPOINT: Ihr Google Cloud Dienstendpunkt
- PROJECT_ID: Ihr Google Cloud Projekt
- USERNAME: Nutzer, der Vorgänge als Clusteradministrator ausführen kann
- CLUSTER_NAME: der von Ihnen ausgewählte Clustername
- GOOGLE_CLOUD_LOCATION: die unterstützte Google Cloud Region, die Ihren Cluster verwaltet, z. B.
us-west1
- AWS_REGION: die AWS-Region, in der der Cluster erstellt werden soll
- API_ROLE_ARN: der ARN der GKE Multi-Cloud API-Rolle
- CONFIG_KMS_KEY_ARN: der Amazon-Ressourcenname (ARN) des AWS KMS-Schlüssels zum Verschlüsseln von Nutzerdaten.
- DB_KMS_KEY_ARN: durch den Amazon-Ressourcennamen (ARN) des AWS KMS-Schlüssels zum Verschlüsseln der Secrets des Clusters
- CONTROL_PLANE_PROFILE: durch das Profil der IAM-Instanz, die dem Cluster zugeordnet ist
- CONTROL_PLANE_SUBNET_1, CONTROL_PLANE_SUBNET_2, CONTROL_PLANE_SUBNET_3 durch die Subnetz-IDs der drei Instanzen der Steuerungsebene des Clusters.
- TENANCY_TYPE: die Einstellung für die Mandantenfähigkeit der Steuerungsebene.
Kann
DEFAULT
,DEDICATED
oderHOST
sein. - CLUSTER_VERSION: eine unterstützte Clusterversion
- FLEET_PROJECT: das Flotten-Hostprojekt, in dem der Cluster registriert wird Wenn Sie diesen Cluster von einem anderen Projekt aus verwalten möchten, lesen Sie die Informationen unter Projektübergreifende Registrierung.
- POD_ADDRESS_CIDR_BLOCKS: den CIDR-Adressbereich für die Pods Ihres Clusters
- SERVICE_ADDRESS_CIDR_BLOCKS: der CIDR-Adressbereich für die Dienste des Clusters
- VPC_ID: durch die ID der AWS-VPC für diesen Cluster
HTTP-Methode und URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/awsClusters
JSON-Text anfordern:
{ "name": "CLUSTER_NAME", "authorization": { "adminUsers": [ { "username": "USERNAME" } ] }, "awsRegion": "AWS_REGION", "controlPlane": { "awsServicesAuthentication": { "roleArn": "API_ROLE_ARN" }, "configEncryption": { "kmsKeyArn": "CONFIG_KMS_KEY_ARN" }, "databaseEncryption": { "kmsKeyArn": "DB_KMS_KEY_ARN" }, "iamInstanceProfile": "CONTROL_PLANE_PROFILE", "mainVolume": {}, "rootVolume": {}, "sshConfig": {}, "subnetIds": [ "CONTROL_PLANE_SUBNET_1", "CONTROL_PLANE_SUBNET_2", "CONTROL_PLANE_SUBNET_3" ], "tags": { "google:gkemulticloud:cluster": "CLUSTER_NAME" }, "instancePlacement": { "tenancy": "TENANCY_TYPE" }, "version": "CLUSTER_VERSION" }, "fleet": { "project": "FLEET_PROJECT" }, "networking": { "podAddressCidrBlocks": [ "POD_ADDRESS_CIDR_BLOCKS" ], "serviceAddressCidrBlocks": [ "SERVICE_ADDRESS_CIDR_BLOCKS" ], "vpcId": "VPC_ID" } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Weitere Optionen finden Sie in der Referenzdokumentation zu Methode: projects.locations.awsClusters.create.
Knotenpool erstellen
gcloud
Im folgenden Beispiel wird ein Knotenpool mit dedizierten Hosts erstellt. Wenn Sie einen Knotenpool erstellen, haben alle Instanzen innerhalb des Pools die gleiche Einstellung für Instanztyp und Mandanten.Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- GOOGLE_CLOUD_LOCATION: unterstützte Region Google Cloud
- CLUSTER_NAME: der Name des Clusters
- NODE_POOL_NAME: der Name des Knotenpools, der Ihren Cluster verwaltet, z. B.
us-west1
- MIN_NODES: ist die Mindestanzahl von Knoten, die der Knotenpool enthalten kann.
- MAX_NODES: ist die maximale Anzahl an Knoten, die der Knotenpool enthalten darf.
- CONFIG_KMS_KEY_ARN: ist der Amazon-Ressourcenname (ARN) des AWS KMS-Schlüssels, der Nutzerdaten verschlüsselt
- NODEPOOL_PROFILE: ist das IAM-Instanzprofil für Knotenpool-VMs
- ROOT_VOLUME_SIZE: ist die gewünschte Größe für das Root-Volume jedes Knotens in Gb
- TENANCY_TYPE: die Einstellung für die Mandantenfähigkeit der Steuerungsebene.
Kann
DEFAULT
,DEDICATED
oderHOST
sein. - INSTANCE_TYPE: der gewünschte AWS-Maschineninstanztyp für diesen Knotenpool
- NODEPOOL_SUBNET ist die ID des Subnetzes, in dem der Knotenpool ausgeführt wird. Wenn sich dieses Subnetz außerhalb des primären CIDR-Blocks der VPC befindet, sind einige zusätzliche Schritte erforderlich. Weitere Informationen finden Sie unter Sicherheitsgruppen.
- CLUSTER_VERSION: eine unterstützte Clusterversion
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud alpha container aws node-pools create NODE_POOL_NAME \ --cluster CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --min-nodes MIN_NODES \ --max-nodes MAX_NODES \ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \ --iam-instance-profile NODEPOOL_PROFILE \ --root-volume-size ROOT_VOLUME_SIZE \ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE \ --subnet-id NODEPOOL_SUBNET \ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME \ --node-version CLUSTER_VERSION \ --max-pods-per-node 110 \ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (PowerShell)
gcloud alpha container aws node-pools create NODE_POOL_NAME ` --cluster CLUSTER_NAME ` --location GOOGLE_CLOUD_LOCATION ` --min-nodes MIN_NODES ` --max-nodes MAX_NODES ` --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ` --iam-instance-profile NODEPOOL_PROFILE ` --root-volume-size ROOT_VOLUME_SIZE ` --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ` --subnet-id NODEPOOL_SUBNET ` --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ` --node-version CLUSTER_VERSION ` --max-pods-per-node 110 ` --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
Windows (cmd.exe)
gcloud alpha container aws node-pools create NODE_POOL_NAME ^ --cluster CLUSTER_NAME ^ --location GOOGLE_CLOUD_LOCATION ^ --min-nodes MIN_NODES ^ --max-nodes MAX_NODES ^ --config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN ^ --iam-instance-profile NODEPOOL_PROFILE ^ --root-volume-size ROOT_VOLUME_SIZE ^ --instance-placement TENANCY_TYPE --instance-type INSTANCE_TYPE ^ --subnet-id NODEPOOL_SUBNET ^ --ssh-ec2-key-pair SSH_KEY_PAIR_NAME ^ --node-version CLUSTER_VERSION ^ --max-pods-per-node 110 ^ --tags "Name=CLUSTER_NAME-NODE_POOL_NAME"
REST
Im folgenden Beispiel wird ein Knotenpool mit dedizierten Hosts erstellt. Wenn Sie einen Knotenpool erstellen, haben alle Instanzen innerhalb des Pools die gleiche Einstellung für Instanztyp und Mandanten.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- ENDPOINT: Ihr Google Cloud Dienstendpunkt
- PROJECT_ID: Ihr Google Cloud Projekt
- USERNAME: Nutzer, der Vorgänge als Clusteradministrator ausführen kann
- GOOGLE_CLOUD_LOCATION: unterstützte Region Google Cloud
- CLUSTER_NAME: der Name des Clusters
- NODE_POOL_NAME: der Name des Knotenpools, der Ihren Cluster verwaltet, z. B.
us-west1
- MIN_NODES: ist die Mindestanzahl von Knoten, die der Knotenpool enthalten kann.
- MAX_NODES: ist die maximale Anzahl an Knoten, die der Knotenpool enthalten darf.
- CONFIG_KMS_KEY_ARN: ist der Amazon-Ressourcenname (ARN) des AWS KMS-Schlüssels, der Nutzerdaten verschlüsselt
- NODEPOOL_PROFILE: ist das IAM-Instanzprofil für Knotenpool-VMs
- ROOT_VOLUME_SIZE: ist die gewünschte Größe für das Root-Volume jedes Knotens in Gb
- TENANCY_TYPE: die Einstellung für die Mandantenfähigkeit der Steuerungsebene.
Kann
DEFAULT
,DEDICATED
oderHOST
sein. - INSTANCE_TYPE: der gewünschte AWS-Maschineninstanztyp für diesen Knotenpool
- NODEPOOL_SUBNET ist die ID des Subnetzes, in dem der Knotenpool ausgeführt wird. Wenn sich dieses Subnetz außerhalb des primären CIDR-Blocks der VPC befindet, sind einige zusätzliche Schritte erforderlich. Weitere Informationen finden Sie unter Sicherheitsgruppen.
- CLUSTER_VERSION: eine unterstützte Clusterversion
HTTP-Methode und URL:
POST ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/CLUSTER_NAME/awsNodePools
JSON-Text anfordern:
{ "name": "NODE_POOL_NAME", "autoscaling": { "minNodeCount": MIN_NODES, "maxNodeCount": MAX_NODES }, "config": { "configEncryption": { "kmsKeyArn": "CONFIG_KMS_KEY_ARN" }, "iamInstanceProfile": "NODEPOOL_PROFILE", "rootVolume": { "sizeGib": ROOT_VOLUME_SIZE }, "instancePlacement": { "tenancy": "TENANCY_TYPE" }, "instanceType" : "INSTANCE_TYPE" "tags": { "google:gkemulticloud:cluster": "NODE_POOL_NAME" } }, "maxPodsConstraint": { "maxPodsPerNode": "110" }, "subnetId": "NODEPOOL_SUBNET", "version": "CLUSTER_VERSION" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.
Weitere Optionen finden Sie in der Referenzdokumentation zu Methode: projects.locations.awsClusters.awsNodePools.createLINK.
Bereinigen
Führen Sie die folgenden Schritte aus, um einen Cluster mit dedizierten Hosts zu löschen:
- Knotenpools löschen
- Cluster löschen
- Nachdem Sie Ihre Knotenpools und Ihren Cluster gelöscht haben, können Sie Dedizierte Hosts freigeben.
Nächste Schritte
- AWSInstancePlacement API-Referenzdokumentation lesen