Kunden können Compute Engine-Instanzen in einer bestimmten Zone reservieren, um sicherzustellen, dass bei Bedarf Ressourcen für ihre Arbeitslasten verfügbar sind. Weitere Informationen zum Verwalten von Reservierungen finden Sie unter Zonale Compute Engine-Ressourcen reservieren.
Nachdem Sie Reservierungen erstellt haben, können Sie GKE-Cluster (Google Kubernetes Engine) und Knotenpools erstellen, um die reservierten Instanzen zu nutzen. GKE unterstützt dieselben Nutzungsmodi wie Compute Engine:
- Ressourcen aus beliebigen Reservierungen nutzen
- Ressourcen aus einer bestimmten Reservierung nutzen
- Knoten erstellen, ohne Reservierungen zu nutzen
Vorbereitung
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist. Aktivieren Sie Google Kubernetes Engine API
- Prüfen Sie, ob das Cloud SDK installiert ist.
Mit den folgenden Methoden können Sie die gcloud
-Einstellungen festlegen:
- Verwenden Sie
gcloud init
, wenn Sie die Standardeinstellungen ansehen möchten. - Verwenden Sie
gcloud config
, um Ihre Projekt-ID, Zone und Region individuell festzulegen.
gcloud init verwenden
Wenn Sie die Fehlermeldung One of [--zone, --region] must be supplied: Please specify
location
erhalten, führen Sie diesen Abschnitt aus.
-
Führen Sie
gcloud init
aus und folgen Sie der Anleitung:gcloud init
Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag
--console-only
verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:gcloud init --console-only
- Folgen Sie der Anleitung, um
gcloud
zur Verwendung Ihres Google Cloud-Kontos zu autorisieren. - Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
- Wählen Sie ein Google Cloud-Projekt aus.
- Wählen Sie eine Compute Engine-Standardzone aus.
gcloud config verwenden
- Legen Sie Ihre standardmäßige Projekt-ID fest:
gcloud config set project project-id
- Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Compute-Standardzone fest:
gcloud config set compute/zone compute-zone
- Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Standardregion für Compute Engine fest:
gcloud config set compute/region compute-region
- Aktualisieren Sie
gcloud
auf die neueste Version:gcloud components update
Reservierte Instanzen in GKE nutzen
Sie können den Nutzungsmodus für die Reservierung mit dem Flag --reservation-affinity
angeben, wenn Sie einen Cluster oder Knotenpool erstellen.
Jede übereinstimmende Reservierung nutzen
Wenn Sie automatisch jede übereinstimmende Reservierung nutzen möchten, setzen Sie das Flag für die Reservierungsaffinität auf --reservation-affinity=any
.
Im Reservierungsmodus any
nutzen Knoten zuerst Kapazitäten aus übereinstimmenden Reservierungen in derselben Zone. Wenn dies nicht ausreicht, wird zusätzlich der allgemeine Compute Engine-Ressourcenpool genutzt. Weitere Informationen dazu, wie Compute Engine Reservierungen zuordnet, finden Sie unter Funktionsweise von Reservierungen.
Führen Sie die folgenden Schritte aus, um eine Reservierung und Instanzen zu erstellen, die eine beliebige Reservierung nutzen:
Erstellen Sie eine Reservierung von drei VM-Instanzen:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE --vm-count=3
Dabei gilt:
RESERVATION_NAME
: Der Name der Reservierung, die erstellt werden soll.MACHINE_TYPE
: Der für die Reservierung zu verwendende Maschinentyp (nur Name). Beispiel:n1-standard-2
Prüfen Sie, ob die Reservierung erfolgreich erstellt wurde:
gcloud compute reservations describe RESERVATION_NAME
Ersetzen Sie
RESERVATION_NAME
durch den Namen der Reservierung, die Sie gerade erstellt haben.Erstellen Sie einen Cluster mit einem Knoten, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container clusters create CLUSTER_NAME \ --machine-type=MACHINE_TYPE --num-nodes=1 \ --reservation-affinity=any
Dabei gilt:
CLUSTER_NAME
: Der Name des zu erstellenden Clusters.MACHINE_TYPE
: Der für den Cluster zu verwendende Maschinentyp (nur Name). Zum Beispieln1-standard-2
.
Erstellen Sie einen Knotenpool mit drei Knoten, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container node-pools create NODEPOOL_NAME \ --cluster CLUSTER_NAME --num-nodes=3 \ --machine-type=MACHINE_TYPE --reservation-affinity=any
Dabei gilt:
NODEPOOL_NAME
: Der Name des Knotenpools, der erstellt werden soll.CLUSTER_NAME
: Der Name des Clusters, den Sie zuvor erstellt haben.MACHINE_TYPE
: Der für den Knotenpool zu verwendende Maschinentyp (nur Name). Zum Beispieln1-standard-2
.
Die Gesamtzahl der Knoten beträgt vier, was die Kapazität der Reservierung übersteigt. Drei der Knoten nutzen die Reservierung, während der letzte Knoten Kapazität aus dem allgemeinen Compute Engine-Ressourcenpool nimmt.
Eine bestimmte Reservierung nutzen
Wenn Sie eine bestimmte Reservierung nutzen möchten, setzen Sie das Reservierungsaffinitäts-Flag auf --reservation-affinity=specific
und geben Sie den spezifischen Reservierungsnamen an. In diesem Modus müssen Instanzen Kapazität aus der angegebenen Reservierung in der Zone nutzen. Die Anfrage schlägt fehl, wenn die Reservierung nicht über ausreichende Kapazität verfügt.
Führen Sie die folgenden Schritte aus, um eine Reservierung und Instanzen zu erstellen, die eine bestimmte Reservierung nutzen:
Erstellen Sie eine bestimmte Reservierung von drei VM-Instanzen:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE --vm-count=3 \ --require-specific-reservation
Dabei gilt:
RESERVATION_NAME
: Der Name der Reservierung, die erstellt werden soll.MACHINE_TYPE
: Der für die Reservierung zu verwendende Maschinentyp (nur Name). Beispiel:n1-standard-2
Erstellen Sie einen Cluster mit einem Knoten, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container clusters create CLUSTER_NAME \ --machine-type=MACHINE_TYPE --num-nodes=1 \ --reservation-affinity=specific --reservation=RESERVATION_NAME
Dabei gilt:
CLUSTER_NAME
: Der Name des zu erstellenden Clusters.MACHINE_TYPE
: Der für den Cluster zu verwendende Maschinentyp (nur Name). Zum Beispieln1-standard-2
.RESERVATION_NAME
: Der Name Reservierung, die genutzt werden soll.
Erstellen Sie einen Knotenpool mit zwei Knoten, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container node-pools create NODEPOOL_NAME \ --cluster CLUSTER_NAME --num-nodes=2 \ --machine-type=MACHINE_TYPE \ --reservation-affinity=specific --reservation=RESERVATION_NAME
Dabei gilt:
NODEPOOL_NAME
: Der Name des Knotenpools, der erstellt werden soll.CLUSTER_NAME
: Der Name des Clusters, den Sie zuvor erstellt haben.MACHINE_TYPE
: Der für den Knotenpool zu verwendende Maschinentyp (nur Name). Zum Beispieln1-standard-2
.RESERVATION_NAME
: Der Name Reservierung, die genutzt werden soll.
Weitere wichtige Aspekte der Nutzung einer bestimmten Reservierung
Wenn ein Knotenpool mit einer Affinität zu einer bestimmten Reservierung erstellt wird, einschließlich Standardknotenpools während der Clustererstellung, ist seine Größe über die gesamte Lebensdauer des Knotenpools auf die Kapazität der spezifischen Reservierung beschränkt. Dies betrifft die folgenden GKE-Features:
- Cluster mit mehreren Zonen: In regionalen oder multizonalen Clustern können sich Knoten eines Knotenpools über mehrere Zonen erstrecken. Da Reservierungen immer in nur einer Zone liegen, sind mehrere Reservierungen erforderlich. Wenn Sie einen Knotenpool erstellen möchten, der eine bestimmte Reservierung in diesen Clustern nutzt, müssen Sie in jeder Zone des Knotenpools eine bestimmte Reservierung mit exakt demselben Namen und denselben Maschineneigenschaften erstellen.
- Cluster-Autoscaling/-Surge-Upgrade: Wenn Sie in der spezifischen Reservierung keine zusätzliche Kapazität haben, schlagen Surge-Upgrades oder das Autoscaling des Knotenpools möglicherweise fehl, da beide Vorgänge das Erstellen zusätzlicher Instanzen erfordern. Dieses Problem können Sie so beheben: Ändern Sie die Größe der Reservierung oder geben Sie einige von deren gebundenen Ressourcen frei.
Knoten ohne Nutzung von Reservierungen erstellen
Wenn Sie die Nutzung von Ressourcen aus Reservierungen explizit verhindern möchten, setzen Sie die Affinität auf --reservation-affinity=none
.
Erstellen Sie einen Cluster, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container clusters create CLUSTER_NAME --reservation-affinity=none
Ersetzen Sie
CLUSTER_NAME
durch den Namen des zu erstellenden Clusters.Erstellen Sie einen Knotenpool, der eine beliebige übereinstimmende Reservierung nutzt:
gcloud container node-pools create NODEPOOL_NAME \ --cluster CLUSTER_NAME \ --reservation-affinity=none
Dabei gilt:
NODEPOOL_NAME
: Der Name des Knotenpools, der erstellt werden soll.CLUSTER_NAME
: Der Name des Clusters, den Sie zuvor erstellt haben.
Bereinigen
Führen Sie eine Bereinigung durch, um zu vermeiden, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
Löschen Sie die erstellten Cluster mit dem folgenden Befehl für jeden Cluster:
gcloud container clusters delete CLUSTER_NAME
Löschen Sie die von Ihnen erstellten Reservierungen mit dem folgenden Befehl für jede Reservierung:
gcloud compute reservations delete RESERVATION_NAME
Nächste Schritte
- Weitere Informationen zum Reservieren von zonalen Compute Engine-Ressourcen
- Knotenpools
- Cluster Autoscaler
- Weitere Informationen zum Surge-Upgrade