Cluster erstellen
Auf dieser Seite wird erläutert, wie Sie einen Cluster und einen Knotenpool in GKE on Azure in Kubernetes Version 1.28.7-gke.1700 erstellen.
Hinweise
Um die Schritte auf dieser Seite auszuführen, gehen Sie so vor:
Folgen Sie der Anleitung unter Voraussetzungen konfigurieren.
Wählen Sie aus, ob Sie die Steuerungsebene in mehreren Zonen oder einer einzelnen Zone ausführen möchten.
Wählen Sie CIDR-Bereiche (Classless Inter-Domain Routing) aus, die Sie für Ihren Cluster bereitstellen möchten.
Zonale Platzierung der Steuerungsebene
Standardmäßig platziert GKE on Azure separate Replikate der Steuerungsebene im selben Subnetz in drei Zonen der ausgewählten Region. Sie können diese Zonen und Subnetze auswählen.
Wenn Sie die Replikatplatzierung der Standardsteuerungsebene verwenden möchten, fahren Sie mit CIDR-Bereiche für Ihren Cluster auswählen fort.
Azure NAT-Gateway- und Cluster-Steuerungsebenen
Jedes Replikat der Steuerungsebene erfordert außerdem eine Verbindung zum von Google gehosteten Verwaltungsdienst, um in einem normalen Zustand zu arbeiten.
Wenn Sie das Azure NAT-Gateway zur Bereitstellung ausgehender Verbindungen verwenden, müssen Sie berücksichtigen, wie sich ein Zonenausfall auf die Steuerungsebene des Clusters auswirkt. Ein NAT-Gateway-Endpunkt ist auf eine einzelne Zone beschränkt oder ist regional und nicht zonal. Dies stellt einen Single Point of Failure dar.
Wenn Sie Replikate der Steuerungsebene in einer einzelnen Zone platzieren möchten, verwenden Sie ein einzelnes Subnetz und eine einzelne Zone. Wenn Sie das NAT-Gateway für ausgehende Verbindungen verwenden, achten Sie darauf, dass sich der Endpunkt in derselben Zone befindet.
Wenn Sie Replikate in zwei oder drei Zonen platzieren möchten, können Sie beim Erstellen eines Clusters eine Liste von Subnetzen und Zonen übergeben. Wenn Sie zwei Subnetze und Zonen übergeben, platziert GKE on Azure zwei Replikate in der ersten angegebenen Zone. Wenn Sie drei Subnetze und Zonen übergeben, platziert GKE on Azure Replikate in jedem Subnetz. Weitere Informationen finden Sie unter Replikate in einem bestimmten Subnetz platzieren.
Weitere Informationen zum Konfigurieren von Azure-Subnetzen und -Zonen für Hochverfügbarkeit finden Sie in der Azure-Dokumentation unter Zonenisolation mit zonalen Stacks.
Replikate in einem bestimmten Subnetz platzieren
Dieser Abschnitt ist optional.
Wenn Sie steuern möchten, in welchen Zonen Steuerungsebenenreplikate platziert werden, verwenden Sie beim Erstellen des Clusters das Flag --replica-placements
und übergeben eine Liste der Subnetz-IDs und Zonen. Sie können bis zu drei Subnetze und Zonen verwenden, in denen die Replikate der Steuerungsebene platziert werden sollen.
Führen Sie die folgenden Schritt e aus, um die Liste der Subnetze zu formatieren.
Rufen Sie Ihre Azure-Subnetz-IDs mit dem
az
-Befehlszeilentool ab:az network vnet subnet show \ --resource-group=VNET_RESOURCE_GROUP_NAME --vnet-name=VNET_NAME \ --name SUBNET_NAME --query "id" -otsv
Ersetzen Sie Folgendes:
CLUSTER_RESOURCE_GROUP_NAME
: der Name einer vorhandene Ressourcengruppe, in der Sie Ihren Cluster ausführen möchtenVNET_RESOURCE_GROUP_NAME
: der Name der Ressourcengruppe, die Ihr VNet enthältVNET_NAME
: Ihr VNet-NameSUBNET_NAME
: Ihr Subnetzname
Die Ausgabe ist die ID des Subnetzes. Azure-Subnetz-IDs sehen so aus:
/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME
Wiederholen Sie diesen Befehl für jedes Subnetz, in dem Sie ein Replikat der Steuerungsebene erstellen möchten. Kopieren Sie die Subnetz-IDs für den folgenden Schritt in einen Texteditor.
Erstellen Sie eine durch Kommas getrennte Liste von Subnetz-IDs und Azure-Verfügbarkeitszonen, wobei ein Doppelpunkt das Subnetz und die Zone trennt. Wenn Sie beispielsweise Replikate der Steuerungsebene in
subnet1
in Zone 1,subnet2
in Zone 2 undsubnet3
in Zone 3 erstellen möchten, verwenden Sie den folgenden String:/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/subnet1:1,/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/subnet2:2,/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/subnet3:3
Kopieren Sie diesen String und verwenden Sie ihn als Wert für das Flag
--replica-placements
, wenn Sie einen Cluster erstellen.
CIDR-Bereiche für den Cluster auswählen
Wenn Sie einen Cluster in GKE on Azure erstellen, müssen Sie IPv4-Adressbereiche für Pods und Dienste angeben.
Diese IP-Bereiche werden mithilfe der CIDR-Notation (Classless Inter-Domain Routing) angegeben, z. B. 100.64.0.0/16
.
Empfohlene Bereiche
Wir empfehlen die folgenden CIDR-Bereiche für Dienste und Pods:
- Dienste: 100.64.0.0/16
- Pods: 100.96.0.0/11
Diese Bereiche sind groß genug, sodass Sie Ihren Cluster problemlos erweitern können.
Mehr Informationen dazu finden Sie in den nächsten Abschnitten.
Details zur Auswahl von Bereichen
GKE on Azure verwendet ein Overlay-Netzwerk für Pods und Dienste. Daher müssen die IP-Bereiche für diese Netzwerke innerhalb des VNet nicht routbar sein. Alle verwendeten IP-Bereiche müssen garantiert verfügbar sein. Weitere Informationen finden Sie unter Dataplane V2.
Die Pod- und Dienst-IP-Bereiche können sich mit dem VNet-Netzwerk überschneiden, sofern sie entweder keine IP-Bereiche der Steuerungsebene oder des Knotenpools enthalten.
Der Pod- und Dienst-IP-Bereich muss in einen der folgenden privaten IP-Bereiche fallen:
10.0.0.0/8
,172.16.0.0/12
,192.168.0.0/16
— Private IP-Adressen (RFC 1918)100.64.0.0/10
- Gemeinsamer Adressbereich (RFC 6598)192.0.0.0/24
- IETF-Protokollzuweisungen (RFC 6890)192.0.2.0/24
,198.51.100.0/24
,203.0.113.0/24
— Dokumentation (RFC 5737)192.88.99.0/24
- IPv6-zu-IPv4-Relay (verworfen) (RFC 7526)198.18.0.0/15
- Benchmarktests (RFC 2544)
Wir empfehlen IP-Bereiche innerhalb von 100.64.0.0/10
(RFC 6598). Dieser Bereich ist für NAT des Mobilfunkanbieters reserviert, die in Ihrem VNet wahrscheinlich nicht verwendet wird.
Das folgende Beispiel zeigt eine gültige Konfiguration, bei der sich die Pod-, Dienst- und Knotennetzwerke nicht überschneiden. Das VNet verwendet private RFC 1918-IP-Adressen, während die Pod- und Dienstnetzwerke auf privaten RFC 6598-IP-Adressen überlagert sind.
- VNet-Netzwerk:
10.0.0.0/16
,172.16.1.0/24
,172.16.2.0/24
- Pod-Netzwerk:
100.65.0.0/16
- Dienstnetzwerk:
100.66.0.0/16
Die folgende Konfiguration ist auch gültig, obwohl sich die Pod- und Dienstnetzwerke mit dem VNet-Netzwerk überschneiden, da es keine Überschneidung mit den Replikaten der Steuerungsebene gibt.
- VNet-Netzwerk:
10.0.0.0/16
- Pod-Netzwerk:
10.0.1.0/24
- Dienstnetzwerk:
10.0.2.0/24
- Replikatsubnetze der Steuerungsebene:
10.0.3.0/24
,10.0.4.0/24
,10.0.5.0/24
Die folgende Konfiguration ist ungültig, da sich der Pod-IP-Bereich mit dem Netzwerk der Steuerungsebene überschneidet. Diese Überschneidung kann die Kommunikation von Arbeitslasten mit dem Replikat der Steuerungsebene im VNet-Netzwerk verhindern:
- VNet-Netzwerk:
10.0.0.0/16
- Pod-Netzwerk:
10.0.1.0/24
- Dienstnetzwerk:
10.1.0.0/24
- Replikatsubnetze der Steuerungsebene:
10.0.1.0/24
,10.0.2.0/24
,10.0.3.0/24
Details zum Pod-Adressbereich
Kubernetes weist Pod-Objekten Adressen aus dem Pod-Adressbereich zu. Der Pod-Bereich eines Clusters wird für jeden Knoten in kleinere Bereiche unterteilt. Wenn ein Pod auf einem bestimmten Knoten geplant ist, weist Kubernetes eine Pod-IP-Adresse aus dem Bereich des Knotens zu.
Wenn Sie die Größe des Pod-Adressbereichs berechnen möchten, müssen Sie die Anzahl der Knoten, die Sie in Ihrem Cluster wünschen, und die Anzahl der Pods, die Sie auf jedem Knoten ausführen möchten, schätzen.
Die folgende Tabelle enthält Größenempfehlungen für Pod-CIDR-Bereiche, basierend auf der Anzahl der Knoten und Pods, die Sie ausführen möchten.
Tabelle der Pod-Adressbereiche
Pod-Adressbereich | Maximale Pod-IP-Adressen | Maximale Knotenanzahl | Maximale Anzahl von Pods |
---|---|---|---|
/24 Kleinstmöglicher Pod-Adressbereich |
256 Adressen | 1 Knoten | 110 Pods |
/23 | 512 Adressen | 2 Knoten | 220 Pods |
/22 | 1.024 Adressen | 4 Knoten | 440 Pods |
/21 | 2.048 Adressen | 8 Knoten | 880 Pods |
/20 | 4.096 Adressen | 16 Knoten | 1.760 Pods |
/19 | 8.192 Adressen | 32 Knoten | 3.520 Pods |
/18 | 16.384 Adressen | 64 Knoten | 7.040 Pods |
/17 | 32.768 Adressen | 128 Knoten | 14.080 Pods |
/16 | 65.536 Adressen | 256 Knoten | 28.160 Pods |
/15 | 131.072 Adressen | 512 Knoten | 56.320 Pods |
/14 | 262.144 Adressen | 1.024 Knoten | 112.640 Pods |
Details zum Dienstadressbereich
Aus diesem Dienstadressbereich weist Kubernetes den Dienstobjekten, z. B. Load-Balancern, virtuelle IP-Adressen zu.
Wenn Sie die Größe des Dienstadressbereichs berechnen möchten, müssen Sie die Anzahl der gewünschten Dienste in Ihrem Cluster schätzen.
Die folgende Tabelle enthält Größenempfehlungen für Dienst-CIDR-Bereiche basierend auf der Anzahl der Dienste, die Sie ausführen möchten.
Tabelle der Dienstadressbereiche
Dienstadressbereich | Maximale Anzahl an Diensten |
---|---|
/27 Kleinstmöglicher Dienstadressbereich |
32 Dienste |
/26 | 64 Dienste |
/25 | 128 Dienste |
/24 | 256 Dienste |
/23 | 512 Dienste |
/22 | 1.024 Dienste |
/21 | 2.048 Dienste |
/20 | 4.096 Dienste |
/19 | 8.192 Dienste |
/18 | 16.384 Dienste |
/17 | 32.768 Dienste |
/16 Größtmöglicher Dienstadressbereich |
65.536 Dienste |
Bei Azure authentifizieren
GKE on Azure bietet zwei Methoden zur Authentifizierung bei Azure: die Workload Identity-Föderation und das Erstellen eines Clientzertifikats. Die Authentifizierung der Identitätsföderation der Arbeitslast ist die empfohlene Methode, da sie einfacher und sicherer ist.
Identitätsföderation von Arbeitslasten
Eine Föderation von Arbeitslasten ermöglicht es GKE on Azure, sich über ein Google-Dienstkonto bei Azure zu authentifizieren, um anschließend Ressourcen in der Azure AD-Anwendung zu verwalten. Im Vergleich zu AzureClient müssen Sie keine Zertifikate verwalten und keine manuellen Uploads in Azure AD vornehmen.
Führen Sie die folgenden Befehle aus, um Anmeldedaten für föderierte Identitäten in Ihrer Azure AD-Anwendung zu konfigurieren. Sie können jeder Azure AD-Anwendung bis zu 20 Anmeldedaten hinzufügen.
Speichern Sie Ihre Azure-Anwendungs-ID in Umgebungsvariablen:
APPLICATION_ID=$(az ad app list --all \ --query "[?displayName=='APPLICATION_NAME'].appId" --output tsv) PROJECT_ID="$(gcloud config get-value project)" PROJECT_NUMBER=$(gcloud projects describe "$PROJECT_ID" \ --format "value(projectNumber)")
APPLICATION_NAME
: der Name der Azure AD-Anwendung, den Sie beim Erstellen einer Azure Active Directory-Anwendung verwendet haben.
Erstellen Sie eine JSON-Datei mit dem Namen
credential.json
.{ "name": "CREDENTIAL_NAME", "issuer": "https://accounts.google.com", "subject": "service-PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com", "audiences": ["api://AzureADTokenExchange"], "description": "Allow GKE on Azure to authenticate to the Azure AD application using a Google service account." }
CREDENTIAL_NAME
: der Name des AusweisdokumentsPROJECT_NUMBER
: die Nummer des Google Cloud-Projekts, das den Cluster hostet.
Erstellen Sie in der Azure AD-Anwendung Anmeldedaten für eine föderierte Identität:
az ad app federated-credential create --id "${APPLICATION_ID}" --parameters credential.json
Weitere Informationen finden Sie in der Azure-Dokumentation unter Azure AD-Identitätsföderation von Arbeitslasten mit Google Cloud.
Sie können die Anmeldedaten für die föderierte Azure-Identität auch mithilfe von Terraform bereitstellen. Weitere Informationen finden Sie unter azuread_application_federated_identity_credential.
Nachdem Sie die Anmeldedaten konfiguriert haben, erstellen Sie ein SSH-Schlüsselpaar für den Cluster oder wählen Sie eines aus.
SSH-Schlüsselpaar erstellen
Wenn Sie einen Cluster erstellen, müssen Sie ein SSH-Schlüsselpaar angeben. Wenn Sie bereits ein Schlüsselpaar haben, das Sie verwenden können, überspringen Sie diesen Schritt.
Verwenden Sie zum Erstellen eines neuen Schlüsselpaars das
ssh-keygen
-Befehlszeilentool:ssh-keygen -m PEM -t rsa -b 4096 -f KEY_PATH
Ersetzen Sie
KEY_PATH
durch den Pfad zu Ihrem neuen privaten Schlüssel.Speichern Sie den Schlüssel in einer Umgebungsvariablen:
SSH_PUBLIC_KEY=$(cat KEY_PATH.pub)
Führen Sie beispielsweise die folgenden Befehle aus, um unter
~/.ssh/anthos-multicloud-key.pub
ein neues Schlüsselpaar zu erstellen und den öffentlichen Schlüssel in einer Umgebungsvariablen zu speichern:ssh-keygen -m PEM -t rsa -b 4096 -f ~/.ssh/anthos-multicloud-key SSH_PUBLIC_KEY=$(cat ~/.ssh/anthos-multicloud-key.pub)
Nachdem Sie den öffentlichen Schlüssel in einer Umgebungsvariablen gespeichert haben, können Sie einen Cluster erstellen.
Flotten-Hostprojekt auswählen
Flotten sind ein Google Cloud-Konzept zum Organisieren von Clustern in größeren Gruppen. Mit Flotten können Sie mehrere Cluster in mehreren Clouds verwalten und konsistente Richtlinien auf sie anwenden. Die GKE Multi-Cloud API registriert Ihre Cluster beim Erstellen des Clusters automatisch bei einer Flotte.
Wenn Sie einen Cluster erstellen, geben Sie ein Flottemhostprojekt an, über das der Cluster verwaltet wird. Da GKE on Azure den Clusternamen als Namen der Flottenmitgliedschaft verwendet, müssen Sie darauf achten, dass die Clusternamen in Ihrer Flotte eindeutig sind.
Projektübergreifende Registrierung
Wenn Sie ein anderes Flottenhostprojekt als das Google Cloud-Projekt verwenden möchten, in dem sich der Cluster befindet, müssen Sie eine zusätzliche IAM-Richtlinienbindung auf das Dienstkonto des Multi-Cloud-Dienst-Agents anwenden. Dadurch kann das Dienstkonto Flotten mit dem Flottenhostprojekt verwalten.
Führen Sie den folgenden Befehl aus, um den Dienst-Agent Ihrem Projekt hinzuzufügen:
gcloud beta services identity create --service=gkemulticloud.googleapis.com \ --project=CLUSTER_PROJECT_NUMBER
Ersetzen Sie
CLUSTER_PROJECT_NUMBER
durch Ihre Google Cloud-Projektnummer.Weisen Sie diese Bindung mit dem folgenden Befehl zu:
gcloud projects add-iam-policy-binding FLEET_PROJECT_ID \ --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com" \ --role="roles/gkemulticloud.serviceAgent"
Ersetzen Sie Folgendes:
FLEET_PROJECT_ID
: ist das Google Cloud-Projekt Ihres FlottenhostprojektsCLUSTER_PROJECT_NUMBER
: ist Ihre Google Cloud-Projektnummer.
Der Name des Multi-Cloud-Dienst-Agents hat das folgende Format: service-CLUSTER_PROJECT_NUMBER@gcp-sa-gkemulticloud.iam.gserviceaccount.com
.
Sie finden Ihre Dienstkonten in der Google Cloud Console auf der Seite Dienstkonto. Weitere Informationen zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.
Cluster erstellen
Führen Sie den folgenden Befehl aus, um einen Cluster zu erstellen:
Speichern Sie die Azure-Ressourcengruppen-, VNet- und Subnetz-IDs in Umgebungsvariablen:
SUBSCRIPTION_ID=$(az account show --query "id" --output tsv) TENANT_ID=$(az account list \ --query "[?id=='${SUBSCRIPTION_ID}'].{tenantId:tenantId}" --output tsv) CLUSTER_RG_ID=$(az group show --resource-group=CLUSTER_RESOURCE_GROUP_NAME \ --query "id" -otsv) VNET_ID=$(az network vnet show --resource-group=VNET_RESOURCE_GROUP_NAME \ --name=VNET_NAME --query "id" -otsv) SUBNET_ID=$(az network vnet subnet show \ --resource-group=VNET_RESOURCE_GROUP_NAME --vnet-name=VNET_NAME \ --name default --query "id" -otsv)
Ersetzen Sie Folgendes:
CLUSTER_RESOURCE_GROUP_NAME
: der Name einer vorhandene Ressourcengruppe, in der Sie Ihren Cluster ausführen möchtenVNET_RESOURCE_GROUP_NAME
: der Name der Ressourcengruppe, die Ihr VNet enthältVNET_NAME
: der Name Ihres VNet
Erstellen Sie einen Cluster mit der Google Cloud CLI:
Identitätsföderation von Arbeitslasten
gcloud container azure clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --fleet-project FLEET_PROJECT \ --azure-tenant-id "${TENANT_ID}" \ --azure-application-id "${APPLICATION_ID}" \ --azure-region AZURE_REGION \ --pod-address-cidr-blocks POD_CIDR \ --service-address-cidr-blocks SERVICE_CIDR \ --vm-size VM_SIZE \ --cluster-version 1.28.7-gke.1700 \ --ssh-public-key "$SSH_PUBLIC_KEY" \ --resource-group-id "$CLUSTER_RG_ID" \ --vnet-id "$VNET_ID" \ --subnet-id "$SUBNET_ID" # Optional, see following note \ --tags "control-plane=CLUSTER_NAME" \ --admin-users ADMIN_USERS_LIST
Azure-Client
gcloud container azure clusters create CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --fleet-project FLEET_PROJECT \ --client CLIENT_NAME \ --azure-region AZURE_REGION \ --pod-address-cidr-blocks POD_CIDR \ --service-address-cidr-blocks SERVICE_CIDR \ --vm-size VM_SIZE \ --cluster-version 1.28.7-gke.1700 \ --ssh-public-key "$SSH_PUBLIC_KEY" \ --resource-group-id "$CLUSTER_RG_ID" \ --vnet-id "$VNET_ID" \ --subnet-id "$SUBNET_ID" # Optional, see following note \ --tags "control-plane=CLUSTER_NAME" \ --admin-users ADMIN_USERS_LIST
Ersetzen Sie Folgendes:
CLUSTER_NAME
: der Name Ihres ClustersGOOGLE_CLOUD_LOCATION
: der Google Cloud-Standort, der Ihren Cluster verwaltetFLEET_PROJECT
durch das Fleet-Hostprojekt, in dem der Cluster registriert wird. Wenn Sie diesen Cluster von einem anderen Google Cloud-Projekt aus verwalten möchten, finden Sie weitere Informationen unter Projektübergreifende Registrierung.AZURE_REGION
: eine unterstützte Azure-Region, die Ihrer Google Cloud-Region zugeordnet istPOD_CIDR
: Der Pod-Adressbereich Ihres Clusters, z. B.10.0.1.0/18
SERVICE_CIDR
: der Dienstadressbereich Ihres ClustersVM_SIZE
: eine unterstützte Azure-VM-GrößeADMIN_USERS_LIST
(optional): eine durch Kommas getrennte Liste der E-Mail-Adressen der Nutzer, denen Administratorberechtigungen gewährt werden sollen, z. B. "kai@beispiel.de,hao@beispiel.de,kalani@beispiel.de". Die Standardeinstellung ist der Nutzer, der den Cluster erstellt.CLIENT_NAME
: Ihr AzureClient-Name
Prüfen Sie den Clusterstatus:
gcloud container azure clusters describe CLUSTER_NAME --location GOOGLE_CLOUD_LOCATION
Ersetzen Sie Folgendes:
CLUSTER_NAME
GOOGLE_CLOUD_LOCATION
Die Ausgabe enthält Informationen zum Status und zur Konfiguration des Clusters.
Cloud Logging/Cloud Monitoring autorisieren
Damit GKE on Azure Systemlogs und -messwerte erstellen und in Google Cloud hochladen kann, muss es autorisiert werden.
Führen Sie den folgenden Befehl aus, um die Kubernetes-Arbeitslastidentität gke-system/gke-telemetry-agent
zum Schreiben von Logs in Google Cloud Logging und von Messwerten in Google Cloud Monitoring zu autorisieren:
gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
--member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter
Ersetzen Sie GOOGLE_PROJECT_ID
durch die Google Cloud-Projekt-ID des Clusters.
Diese IAM-Bindung gewährt Zugriff auf alle Cluster im Google Cloud-Projekt, um Logs und Messwerte hochzuladen. Sie müssen ihn nur ausführen, nachdem Sie den ersten Cluster für das Projekt erstellt haben.
Das Hinzufügen dieser IAM-Bindung schlägt fehl, sofern nicht mindestens ein Cluster in Ihrem Google Cloud-Projekt erstellt wurde. Dies liegt daran, dass der Workload Identity-Pool, auf den er verweist (GOOGLE_PROJECT_ID.svc.id.goog
), erst bei der Clustererstellung bereitgestellt wird.
Knotenpool erstellen
Bevor Sie einen Knotenpool erstellen können, benötigen Sie Folgendes:
- Berechtigungen zum Verwenden des
az
-Befehlszeilentools zum Abrufen einer Azure-Subnetz-ID. - Zugriff auf den öffentlichen SSH-Schlüssel des Clusters.
Zum Erstellen eines Knotenpools führen Sie folgende Befehle aus:
Speichern Sie die Azure VNet-Subnetz-ID und den öffentlichen SSH-Schlüssel in Umgebungsvariablen:
SUBNET_ID=$(az network vnet subnet show \ --resource-group=VNET_RESOURCE_GROUP_NAME --vnet-name=VNET_NAME \ --name default --query "id" -otsv) SSH_PUBLIC_KEY=$(cat KEY_PATH.pub)
Ersetzen Sie Folgendes:
VNET_RESOURCE_GROUP_NAME
: der Name der Ressourcengruppe, die VNet enthältVNET_NAME
: der Name Ihres VNetKEY_PATH
: der Pfad zu Ihrem Schlüsselpaar
Erstellen Sie mit der Google Cloud CLI einen Knotenpool:
gcloud container azure node-pools create NODE_POOL_NAME \ --cluster CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION \ --node-version 1.28.7-gke.1700 \ --vm-size VM_SIZE \ --max-pods-per-node 110 \ --min-nodes MIN_NODES \ --max-nodes MAX_NODES \ --ssh-public-key "${SSH_PUBLIC_KEY}" \ --subnet-id "${SUBNET_ID}"
Ersetzen Sie Folgendes:
NODE_POOL_NAME
: ein eindeutiger Name für Ihren Knotenpool, z. B.node-pool-1
CLUSTER_NAME
: der Name Ihres GKE on Azure-ClustersGOOGLE_CLOUD_LOCATION
: der Google Cloud-Standort, der Ihren Cluster verwaltetVM_SIZE
: eine unterstützte Azure-VM-GrößeMIN_NODES
: Mindestanzahl von Knoten im Knotenpool. Weitere Informationen finden Sie unter Cluster Autoscaling.MAX_NODES
: die maximale Anzahl von Knoten im Knotenpool
Prüfen Sie den Status des Knotenpools:
gcloud container azure node-pools describe NODE_POOL_NAME \ --cluster CLUSTER_NAME \ --location GOOGLE_CLOUD_LOCATION
Ersetzen Sie Folgendes:
NODE_POOL_NAME
: ein eindeutiger Name für Ihren Knotenpool, z. B.node-pool-1
CLUSTER_NAME
: der Name Ihres GKE on Azure-ClustersGOOGLE_CLOUD_LOCATION
: der Google Cloud-Standort, der Ihren Cluster verwaltet
Die Ausgabe enthält den Status Ihres Knotenpools, auch wenn er
PROVISIONING
oderRUNNING
lautet.
Nächste Schritte
- Clusterzugriff für "kubectl" konfigurieren.
- Erstellen Sie einen Knotenpool.
- Verwenden Sie die Kurzanleitung, um Ihre erste Arbeitslast zu starten.
- Lesen Sie die Referenzdokumentation zu
gcloud container clusters create
. - Ist beim Erstellen eines Clusters ein Problem aufgetreten? Weitere Informationen finden Sie dann unter Fehlerbehebung.