In dieser Anleitung wird Kueue verwendet, um Ihnen zu zeigen, wie Sie ein Job-Warteschlangensystem implementieren, die Arbeitslastressource und die Kontingentfreigabe zwischen verschiedenen Namespaces in Google Kubernetes Engine (GKE) konfigurieren und die Nutzung Ihres Clusters maximieren können.
Hintergrund
Als Infrastrukturentwickler oder Clusteradministrator ist es sehr wichtig, die Auslastung zwischen Namespaces zu maximieren. Ein Batch von Jobs in einem Namespace nutzt möglicherweise nicht vollständig das dem Namespace zugewiesene vollständige Kontingent, während ein anderer Namespace mehrere ausstehende Jobs haben kann. Sie können Kohorten in Kueue konfigurieren, um die Clusterressourcen zwischen Jobs in verschiedenen Namespaces effizient zu nutzen und die Flexibilität der Kontingentverwaltung zu erhöhen. Eine Kohorte ist eine Gruppe von ClusterQueues, die nicht genutztes Kontingent mieten können. Eine ClusterQueue steuert einen Pool von Ressourcen wie CPU, Arbeitsspeicher und Hardwarebeschleunigern.
Eine ausführlichere Definition aller dieser Konzepte finden Sie in der Kueue-Dokumentation.
Ziele
Diese Anleitung richtet sich an Infrastrukturentwickler oder Clusteradministratoren, die ein Jobwarteschlangensystem in Kubernetes mithilfe von Kueue mit Kontingentfreigabe implementieren möchten.In dieser Anleitung werden zwei Teams in zwei verschiedenen Namespaces nachahmt, wobei jedes Team seine eigenen Ressourcen hat, aber sich gegenseitig nutzen kann. Ein dritter Satz von Ressourcen kann als Spillover verwendet werden, wenn sich Jobs ansammeln.
Verwenden Sie den Prometheus-Operator, um Jobs und Ressourcenzuweisung in verschiedenen Namespaces zu überwachen.
In dieser Anleitung werden die folgenden erforderlichen Schritte behandelt:
- GKE-Cluster erstellen
- ResourceFlavors erstellen
- Erstellen Sie für jedes Team eine ClusterQueue und eine LocalQueue.
- Jobs erstellen und zugelassene Arbeitslasten beobachten
- Nicht verwendetes Kontingent mit Kohorten nutzen
- Eine Spillover-ClusterQueue zur Steuerung von Spot-VMs hinzufügen
Kosten
In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloudverwendet:Mit unserem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung erstellen.
Nach Abschluss dieser Anleitung können Sie weitere Kosten durch Löschen von erstellten Ressourcen vermeiden. Weitere Informationen finden Sie unter Bereinigen.
Vorbereitung
Projekt einrichten
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
Roles required to create a project
To create a project, you need the Project Creator role (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. -
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
Roles required to create a project
To create a project, you need the Project Creator role (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. -
Verify that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. Starten Sie in der Google Cloud Console eine Cloud Shell-Instanz:
Cloud Shell öffnenLaden Sie den Quellcode für diese Beispielanwendung herunter:
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samplesLegen Sie die Standardumgebungsvariablen fest:
gcloud config set project PROJECT_ID gcloud config set compute/region COMPUTE_REGIONErsetzen Sie die folgenden Werte:
- PROJECT_ID: Ihre Google Cloud Projekt-ID.
- COMPUTE_REGION: Die Compute Engine-Region.
Erstellen Sie einen GKE-Cluster mit dem Namen
kueue-cohort:Sie erstellen einen Cluster mit 6 Knoten (2 pro Zone) im Standardpool und ohne Autoscaling. Das sind anfangs alle Ressourcen, die den Teams zur Verfügung stehen. Daher müssen sie um sie konkurrieren.
Sie werden später sehen, wie Kueue die Arbeitslasten verwaltet, die beide Teams an die entsprechenden Warteschlangen senden.
gcloud container clusters create kueue-cohort --location COMPUTE_REGION \ --release-channel rapid --machine-type e2-standard-4 --num-nodes 2Das Ergebnis sieht nach der Erstellung des Clusters in etwa so aus:
kubeconfig entry generated for kueue-cohort. NAME: kueue-cohort LOCATION: us-central1 MASTER_VERSION: 1.26.2-gke.1000 MASTER_IP: 35.224.108.58 MACHINE_TYPE: e2-medium NODE_VERSION: 1.26.2-gke.1000 NUM_NODES: 6 STATUS: RUNNINGDabei ist
STATUSgleichRUNNINGfür denkueue-cluster.Erstellen Sie einen Knotenpool mit dem Namen
spot.Dieser Knotenpool verwendet Spot-VM und aktiviertes Autoscaling. Er beginnt mit 0 Knoten, aber später stellen Sie ihn den Teams zur Nutzung als Überlaufkapazität zur Verfügung.
gcloud container node-pools create spot --cluster=kueue-cohort --location COMPUTE_REGION \ --spot --enable-autoscaling --max-nodes 20 --num-nodes 0 \ --machine-type e2-standard-4Installieren Sie die Releaseversion von Kueue im Cluster:
VERSION=VERSION kubectl apply -f \ https://github.com/kubernetes-sigs/kueue/releases/download/$VERSION/manifests.yamlErsetzen Sie VERSION durch den Buchstaben v nach der neuesten Version von Kueue, z. B.
v0.4.0. Weitere Informationen zu Kueue-Versionen finden Sie unter Kueue-Releases.Warten Sie, bis der Kueue-Controller bereit ist:
watch kubectl -n kueue-system get podsDie Ausgabe sollte in etwa so aussehen, bevor Sie fortfahren können:
NAME READY STATUS RESTARTS AGE kueue-controller-manager-6cfcbb5dc5-rsf8k 2/2 Running 0 3mErstellen Sie zwei neue Namespaces mit den Namen
team-aundteam-b:kubectl create namespace team-a kubectl create namespace team-bJobs werden in jedem Namespace generiert.
- Das ResourceFlavor
on-demandhat das Labelcloud.google.com/gke-provisioning: standard. - Das ResourceFlavor
spothat das Labelcloud.google.com/gke-provisioning: spot. Laden Sie den Quellcode für den Prometheus-Operator herunter:
cd git clone https://github.com/prometheus-operator/kube-prometheus.gitErstellen Sie die CustomResourceDefinitions(CRDs):
kubectl create -f kube-prometheus/manifests/setupErstellen Sie die Monitoring-Komponenten:
kubectl create -f kube-prometheus/manifestsErlauben Sie dem
prometheus-operator, Messwerte aus Kueue-Komponenten zu extrahieren:kubectl apply -f https://github.com/kubernetes-sigs/kueue/releases/download/$VERSION/prometheus.yamlWechseln Sie in das Arbeitsverzeichnis:
cd kubernetes-engine-samples/batch/kueue-cohortRichten Sie die Portweiterleitung an den Prometheus-Dienst ein, der in Ihrem GKE-Cluster ausgeführt wird:
kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090Öffnen Sie die Prometheus-Web-UI unter localhost:9090 im Browser.
In Cloud Shell:
Klicken Sie auf Webvorschau.
Klicken Sie auf Port ändern und legen Sie die Portnummer auf
9090fest.Klicken Sie auf Ändern und Vorschau.
Die folgende Prometheus-Web-UI wird angezeigt.

Geben Sie im Abfragefeld Ausdruck die folgende Abfrage ein, um den ersten Bereich zu erstellen, der die aktiven Arbeitslasten für die ClusterQueue
cq-team-aüberwacht:kueue_pending_workloads{cluster_queue="cq-team-a", status="active"} or kueue_admitted_active_workloads{cluster_queue="cq-team-a"}Klicken Sie auf Bereich hinzufügen.
Geben Sie im Abfragefeld Ausdruck die folgende Abfrage ein, um einen weiteren Bereich zu erstellen, in dem die aktiven Arbeitslasten für die ClusterQueue
cq-team-büberwacht werden:kueue_pending_workloads{cluster_queue="cq-team-b", status="active"} or kueue_admitted_active_workloads{cluster_queue="cq-team-b"}Klicken Sie auf Bereich hinzufügen.
Geben Sie im Abfragefeld Ausdruck die folgende Abfrage ein, um einen Bereich zu erstellen, in dem die Anzahl der Knoten im Cluster überwacht wird:
count(kube_node_info)Identität und RBAC für den Zugriff auf Messwerte einrichten:
Mit der folgenden Konfiguration werden vier Kubernetes-Ressourcen erstellt, die den Zugriff auf Messwerte für die Google Cloud Managed Service for Prometheus-Collector ermöglichen.
Ein ServiceAccount namens
kueue-metrics-readerim Namespacekueue-systemwird für die Authentifizierung beim Zugriff auf die Kueue-Messwerte verwendet.Ein Secret, das dem Dienstkonto
kueue-metrics-readerzugeordnet ist, speichert ein Authentifizierungstoken, das vom Collector verwendet wird, um sich am Messwertendpunkt zu authentifizieren, der von der Kueue-Bereitstellung bereitgestellt wird.Eine Rolle mit dem Namen
kueue-secret-readerim Namespacekueue-system, die das Lesen des Secrets mit dem Dienstkontotoken ermöglicht.Ein ClusterRoleBinding-Objekt, das dem Dienstkonto
kueue-metrics-readerdie ClusterRolekueue-metrics-readergewährt.
apiVersion: v1 kind: ServiceAccount metadata: name: kueue-metrics-reader namespace: kueue-system --- apiVersion: v1 kind: Secret metadata: name: kueue-metrics-reader-token namespace: kueue-system annotations: kubernetes.io/service-account.name: kueue-metrics-reader type: kubernetes.io/service-account-token --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: kueue-secret-reader namespace: kueue-system rules: - resources: - secrets apiGroups: [""] verbs: ["get", "list", "watch"] resourceNames: ["kueue-metrics-reader-token"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: kueue-metrics-reader subjects: - kind: ServiceAccount name: kueue-metrics-reader namespace: kueue-system roleRef: kind: ClusterRole name: kueue-metrics-reader apiGroup: rbac.authorization.k8s.ioRoleBinding für Google Cloud Managed Service for Prometheus konfigurieren:
Je nachdem, ob Sie einen Autopilot- oder Standardcluster verwenden, müssen Sie das RoleBinding-Objekt entweder im Namespace
gke-gmp-systemodergmp-systemerstellen. Mit dieser Ressource kann das Dienstkonto des Collectors auf daskueue-metrics-reader-token-Secret zugreifen, um die Kueue-Messwerte zu authentifizieren und zu erfassen.Autopilot
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: gmp-system:collector:kueue-secret-reader namespace: kueue-system roleRef: name: kueue-secret-reader kind: Role apiGroup: rbac.authorization.k8s.io subjects: - name: collector namespace: gke-gmp-system kind: ServiceAccountStandard
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: gmp-system:collector:kueue-secret-reader namespace: kueue-system roleRef: name: kueue-secret-reader kind: Role apiGroup: rbac.authorization.k8s.io subjects: - name: collector namespace: gmp-system kind: ServiceAccountPodMonitoring-Ressource konfigurieren:
Die folgende Ressource konfiguriert die Überwachung für die Kueue-Bereitstellung. Sie gibt an, dass Messwerte über HTTPS über den Pfad „/metrics“ bereitgestellt werden. Das Secret
kueue-metrics-reader-tokenwird für die Authentifizierung beim Scrapen der Messwerte verwendet.apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: kueue namespace: kueue-system spec: selector: matchLabels: control-plane: controller-manager endpoints: - port: 8443 interval: 30s path: /metrics scheme: https tls: insecureSkipVerify: true authorization: type: Bearer credentials: secret: name: kueue-metrics-reader-token key: tokenStarten Sie ein neues Terminal und führen Sie dieses Skript aus, um jede Sekunde einen Job zu generieren:
./create_jobs.sh job-team-a.yaml 1Starten Sie ein anderes Terminal und erstellen Sie Jobs für den Namespace
team-b:./create_jobs.sh job-team-b.yaml 1Beobachten Sie, welche Jobs in Prometheus in der Warteschlange stehen. Oder mit diesem Befehl:
watch -n 2 kubectl get clusterqueues -o wideSobald Jobs für die ClusterQueues
cq-team-aundcq-team-bin die Warteschlange gestellt wurden, beenden Sie das Skript für den Namespaceteam-b. Dazu drücken SieCTRL+cauf dem entsprechenden Terminal.Sobald alle ausstehenden Jobs aus dem Namespace
team-bverarbeitet wurden, können die Jobs aus dem Namespaceteam-adie verfügbaren Ressourcen incq-team-bübernehmen:kubectl describe clusterqueue cq-team-aDa
cq-team-aundcq-team-bdieselbe Kohorte namensall-teamsverwenden, können diese ClusterQueues Ressourcen verwenden, die nicht verwendet werden.Flavors Usage: Name: on-demand Resources: Borrowed: 5 Name: cpu Total: 15 Borrowed: 5Gi Name: memory Total: 15GiSetzen Sie das Skript für den Namespace
team-bfort../create_jobs.sh job-team-b.yaml 3Sehen Sie sich an, wie die übernommenen Ressourcen von
cq-team-azurück zu0wechseln, während die Ressourcen voncq-team-bfür ihre eigenen Arbeitslasten verwendet werden:kubectl describe clusterqueue cq-team-aFlavors Usage: Name: on-demand Resources: Borrowed: 0 Name: cpu Total: 9 Borrowed: 0 Name: memory Total: 9GiErstellen Sie eine neue ClusterQueue namens
cq-spotmit der Kohorte vonall-teams:Da diese ClusterQueue dieselbe Kohorte mit
cq-team-aundcq-team-bnutzt, können sowohl ClusterQueuecq-team-aals auchcq-team-bRessourcen bis zu 15 CPU-Anfragen und 15 GB Arbeitsspeicher mieten.kubectl apply -f cq-spot.yamlAchten Sie in Prometheus darauf, dass die zugelassenen Arbeitslasten sowohl für
cq-team-aals auch fürcq-team-baufgrund des zusätzlichen Kontingents voncq-spot, das dieselbe Kohorte nutzt, einen Anstieg der Anzahl von Arbeitslasten erreichen. Oder mit diesem Befehl:watch -n 2 kubectl get clusterqueues -o wideBeobachten Sie in Prometheus die Anzahl der Knoten im Cluster. Oder mit diesem Befehl:
watch -n 2 kubectl get nodes -o wideBeenden Sie beide Skripts, indem Sie
CTRL+cfür die Namespacesteam-aundteam-bdrücken.- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Das Kueue-Kontingentsystem löschen:
kubectl delete -n team-a localqueue lq-team-a kubectl delete -n team-b localqueue lq-team-b kubectl delete clusterqueue cq-team-a kubectl delete clusterqueue cq-team-b kubectl delete clusterqueue cq-spot kubectl delete resourceflavor default kubectl delete resourceflavor on-demand kubectl delete resourceflavor spotDas Kueue-Manifest löschen:
VERSION=VERSION kubectl delete -f \ https://github.com/kubernetes-sigs/kueue/releases/download/$VERSION/manifests.yamlLöschen Sie den Cluster:
gcloud container clusters delete kueue-cohort --location=COMPUTE_REGIONWeitere Informationen zum Bereitstellen eines Batchsystems mit Kueue
Standardeinstellungen für die Google Cloud CLI festlegen
GKE-Cluster erstellen
ResourceFlavors erstellen
Ein ResourceFlavor stellt Ressourcenvarianten in Ihren Clusterknoten dar, z. B. verschiedene VMs (z. B. Spot im Vergleich zu On-Demand), Architekturen (z. B. x86 im Vergleich zu ARM-CPUs), Marken und Modelle (z.B. Nvidia A100 im Vergleich zu T4 GPUs).
ResourceFlavors verwenden Knotenlabels und Markierungen, um sie mit einer Reihe von Knoten im Cluster abzugleichen.
In diesem Manifest:
Wenn einer Arbeitslast ein ResourceFlavor zugewiesen wird, weist Kueue den Pods der Arbeitslast Knoten zu, die den für das ResourceFlavor definierten Knotenlabels entsprechen.
Stellen Sie das ResourceFlavor bereit:
kubectl apply -f flavors.yaml
ClusterQueue und LocalQueue erstellen
Erstellen Sie die zwei ClusterQueues cq-team-a und cq-team-b sowie die zugehörigen LocalQueues lq-team-a und lq-team-b mit dem Namespace team-a und team-b.
ClusterQueues sind clusterbezogene Objekte, die einen Pool von Ressourcen wie CPU, Arbeitsspeicher und Hardwarebeschleuniger steuern. Batch-Administratoren können die Sichtbarkeit dieser Objekte auf Batch-Nutzer beschränken.
LocalQueues sind Namespace-Objekte, die Batch-Nutzer auflisten können. Sie verweisen auf ClusterQueues, aus denen Ressourcen zum Ausführen der LocalQueue-Arbeitslasten zugewiesen werden.
ClusterQueues ermöglichen es Ressourcen, mehrere Flavors zu erhalten. In diesem Fall haben beide ClusterQueues zwei Flavors, on-demand und spot, die jeweils cpu-Ressourcen bereitstellen.
Das Kontingent von ResourceFlavor spot ist auf 0 festgelegt und wird vorerst nicht verwendet.
Beide ClusterQueues haben die gleiche Kohorte namens all-teams, definiert in .spec.cohort.
Wenn zwei oder mehr ClusterQueues dieselbe Kohorte teilen, können sie sich ungenutzte Kontingente gegenseitig ausgleichen.
Weitere Informationen zur Funktionsweise von Kohorten und zur Semantik der Kreditaufnahme finden Sie in der Kueue-Dokumentation.
Stellen Sie die ClusterQueues und LocalQueues bereit:
kubectl apply -f cq-team-a.yaml
kubectl apply -f cq-team-b.yaml
(Optional) Arbeitslasten mit kube-prometheus überwachen
Mit Prometheus können Sie Ihre aktiven und ausstehenden Kueue-Arbeitslasten überwachen.
Um die einzelnen überwachten Arbeitslasten zu überwachen und die Last auf jeder ClusterQueue zu beobachten, stellen Sie kube-prometheus für den Cluster unter dem Namespace monitoring bereit:
(Optional) Arbeitslasten mit Google Cloud Managed Service for Prometheus überwachen
Mit Google Cloud Managed Service for Prometheus können Sie Ihre aktiven und ausstehenden Kueue-Arbeitslasten überwachen. Eine vollständige Liste der Messwerte finden Sie in der Kueue-Dokumentation.
Exportierte Messwerte abfragen
Beispiel für PromQL-Abfragen zum Überwachen von Kueue-basierten Systemen
Mit diesen PromQL-Abfragen können Sie wichtige Kueue-Messwerte wie den Jobdurchsatz, die Ressourcenauslastung nach Warteschlange und die Wartezeiten für Arbeitslasten überwachen, um die Systemleistung zu analysieren und potenzielle Engpässe zu identifizieren.
Jobdurchsatz
So wird die Rate der zugelassenen Arbeitslasten pro Sekunde über 5 Minuten für jede cluster_queue berechnet. Wenn Sie diesen Messwert nach Warteschlange aufschlüsseln, können Sie Engpässe ermitteln. Wenn Sie ihn summieren, erhalten Sie den Gesamtdurchsatz des Systems.
Suchanfrage:
sum(rate(kueue_admitted_workloads_total[5m])) by (cluster_queue)
Bessere Ressourcennutzung
Dabei wird davon ausgegangen, dass metrics.enableClusterQueueResources aktiviert ist. Das Verhältnis der aktuellen CPU-Nutzung zum nominalen CPU-Kontingent für jede Warteschlange wird berechnet. Ein Wert nahe 1 deutet auf eine hohe Auslastung hin. Sie können dies für Arbeitsspeicher oder andere Ressourcen anpassen, indem Sie das Ressourcenlabel ändern.
Wenn Sie eine benutzerdefinierte Releaseversion von Kueue in Ihrem Cluster installieren möchten, folgen Sie der Kueue-Dokumentation.
Suchanfrage:
sum(kueue_cluster_queue_resource_usage{resource="cpu"}) by (cluster_queue) / sum(kueue_cluster_queue_nominal_quota{resource="cpu"}) by (cluster_queue)Wartezeiten in der Warteschlange
Dies ist die Wartezeit im 90. Perzentil für Arbeitslasten in einer bestimmten Warteschlange. Sie können den Quantilwert ändern (z. B. 0,5 für den Median, 0,99 für das 99. Perzentil), um die Verteilung der Wartezeit zu analysieren.
Suchanfrage:
histogram_quantile(0.9, kueue_admission_wait_time_seconds_bucket{cluster_queue="QUEUE_NAME"})Jobs erstellen und zugelassene Arbeitslasten beobachten
In diesem Abschnitt erstellen Sie Kubernetes-Jobs unter den Namespaces team-a und team-b. Ein Jobcontroller in Kubernetes erstellt einen oder mehrere Pods und sorgt dafür, dass sie eine bestimmte Aufgabe erfolgreich ausführen.
Erstellen Sie Jobs in beiden ClusterQueues, die zehn Sekunden lang in den Ruhemodus versetzt werden, mit drei parallelen Jobs, die mit drei Vervollständigungen abgeschlossen werden. Sie wird nach 60 Sekunden bereinigt.
job-team-a.yaml erstellt Jobs unter dem Namespace team-a und verweist auf die LocalQueue lq-team-a und die ClusterQueue cq-team-a.
In ähnlicher Weise erstellt job-team-b.yaml Jobs unter dem Namespace team-b und verweist auf die LocalQueue lq-team-b und die ClusterQueue cq-team-b.
Die Ausgabe sollte in etwa so aussehen:
NAME COHORT STRATEGY PENDING WORKLOADS ADMITTED WORKLOADS
cq-team-a all-teams BestEffortFIFO 0 5
cq-team-b all-teams BestEffortFIFO 0 4
Nicht verwendetes Kontingent mit Kohorten nutzen
ClusterQueues sind möglicherweise nicht immer voll ausgelastet. Die Kontingentnutzung wird nicht maximiert, wenn Arbeitslasten nicht gleichmäßig auf ClusterQueues verteilt sind. Wenn ClusterQueues dieselbe Kohorte untereinander teilen, können ClusterQueues Kontingente aus anderen ClusterQueues mieten, um die Kontingentnutzung zu maximieren.
Kontingent mit Spot-VMs erhöhen
Wenn das Kontingent vorübergehend erhöht werden muss, um beispielsweise die hohe Nachfrage ausstehender Arbeitslasten zu erfüllen, können Sie Kueue so konfigurieren, dass der Bedarf gedeckt wird. Dazu müssen Sie der Kohorte weitere ClusterQueues hinzufügen. ClusterQueues mit nicht verwendeten Ressourcen können diese Ressourcen mit anderen ClusterQueues teilen, die zur selben Kohorte gehören.
Zu Beginn der Anleitung haben Sie einen Knotenpool mit dem Namen spot mithilfe von Spot-VMs und einem ResourceFlavor mit dem Namen spot erstellt, wobei das Label auf cloud.google.com/gke-provisioning: spot gesetzt ist. Erstellen Sie eine ClusterQueue zur Verwendung dieses Knotenpools und des ResourceFlavor, der ihn darstellt:
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.