In diesem Dokument wird erläutert, wie die Limits für das Anhängen nichtflüchtiger Volumes für nichtflüchtige Compute Engine-Speicher und Hyperdisks auf GKE-Knoten (Google Kubernetes Engine) funktionieren. Für die richtige Planung von Arbeitslasten und die richtige Dimensionierung von Knotenpools ist es wichtig, dass Sie die maximale Anzahl von nichtflüchtigen Speichern kennen, die an einen GKE-Knoten angehängt werden können. Wenn Sie mehr Kontrolle über die Planung von Arbeitslasten haben möchten, insbesondere wenn Sie mehrere Festplattentypen mit unterschiedlichen Limits für das Anhängen an eine einzelne Instanz verwenden, können Sie ein Knotenlabel verwenden, um die Standardlimits für das Anhängen zu überschreiben.
Dieses Dokument richtet sich an Speicherspezialisten, die Speicherplatz erstellen und zuweisen, sowie an GKE-Administratoren, die die Planung von Arbeitslasten und die Größe von Knotenpools verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die in Trusted Cloud by S3NS -Inhalten verwiesen wird, finden Sie unter Häufig verwendete GKE Enterprise-Nutzerrollen und -Aufgaben.
Übersicht
Wenn Sie in GKE ein PersistentVolume (PV) mit dem CSI-Treiber für nichtflüchtigen Speicher von Compute Engine (pd.csi.storage.gke.io
) anfordern, wird ein Blockspeicher-Volume über den Dienst für nichtflüchtigen Speicher von Compute Engine Trusted Cloud bereitgestellt.
Wenn Sie den CSI-Treiber für Persistent Disk von Compute Engine (PDCSI) in GKE-Clustern aktivieren, berechnet und meldet der PDCSI-Treiber das Limit für das Anhängen von Persistent Volumes pro Knoten an das kubelet. Anhand dieser Informationen trifft der Kubernetes-Scheduler Planungsentscheidungen, um zu verhindern, dass zu viele Pods, die persistente Volumes benötigen, auf einem Knoten geplant werden, der seine Kapazität für das Anhängen erreicht hat. Wenn der PDCSI-Treiber ungenaue Limits für das Anhängen gemeldet hat, insbesondere eine Zahl, die höher als das tatsächliche Limit ist, können die Pods nicht geplant werden und bleiben im Status Pending
hängen. Dies kann bei Maschinentypen der dritten Generation wie C3 passieren, die unterschiedliche Beschränkungen für das Anhängen von Hyperdisks und Persistent Disks haben.
Informationen zu Limits für das Anhängen nichtflüchtiger Volumes
Bei Maschinengenerationen vor der vierten Generation legt der Compute Engine-PDCSI-Treiber ein aggregiertes Limit für das Anhängen nichtflüchtiger Volumes von 128 Laufwerken (127 Datenlaufwerke plus ein Bootlaufwerk) für alle Maschinentypen fest. Das Limit für das Anhängen gilt für Persistent Disk- und Hyperdisk-Volumes zusammen. Bei Hyperdisk wird das Limit für das Anhängen durch den zugrunde liegenden Compute Engine-Maschinentyp, die Anzahl der vCPUs der Maschine und den jeweiligen Hyperdisk-Typ bestimmt.
Beispiel:
- Bei Maschinentypen der vierten Generation wie C4 meldet der PDCSI-Treiber ein Standardlimit für das Anhängen an Kubernetes, das anhand der vCPU-Anzahl des Knotens berechnet wird. Das gemeldete Limit für das Anhängen liegt in der Regel im Bereich von 8 bis 128 Persistent Volumes.
- Im Gegensatz dazu meldet der PDCSI-Treiber für Maschinentypen der dritten Generation wie C3 ein Standard-Anhängelimit für Kubernetes als festes Limit von 128 Laufwerken. Dies kann zu einem Fehler bei der Pod-Planung führen, da das tatsächliche Limit je nach Anzahl der vCPUs niedriger als 128 sein kann.
Sie können das Standardlimit für das Anhängen mit einem Knotenlabel überschreiben.
Weitere Informationen finden Sie in den folgenden hilfreichen Ressourcen in der Compute Engine-Dokumentation:
- Informationen zu den verfügbaren Generationen von Compute Engine-Maschinen finden Sie in der Tabelle im Abschnitt Compute Engine-Terminologie.
- Eine Liste der Maschinentypen und der kompatiblen Typen für nichtflüchtigen Speicher finden Sie unter Unterstützung für Maschinenserien.
- Informationen zu den maximal unterstützten Hyperdisk-Anhängelimits basierend auf der Anzahl der CPUs verschiedener Hyperdisk-Typen finden Sie unter Maximale Anzahl von Hyperdisk-Volumes pro VM.
- Informationen dazu, wie die Hyperdisk-Anhängelimits auf einen Knoten angewendet werden, finden Sie unter Zusammenfassung der Hyperdisk-Grenzwerte pro VM.
Standardlimit für das Anhängen nichtflüchtiger Volumes überschreiben
Wenn Sie bestimmte Anforderungen oder Knotenkonfigurationen haben, bei denen Sie eine bestimmte Anzahl von persistenten Volumes an Ihre Knoten anhängen möchten, können Sie das Standardlimit für das Anhängen persistenter Volumes für einen Knotenpool mit dem folgenden Knotenlabel überschreiben: node-restriction.kubernetes.io/gke-volume-attach-limit-override: VALUE
.
Sie können dieses Knotenlabel in den folgenden GKE-Versionen verwenden:
1.32.4-gke.1698000
oder höher1.33.1-gke.1386000
oder höher
Neuer Knotenpool
Führen Sie den folgenden Befehl aus, um einen neuen Knotenpool mit einem bestimmten Limit für das Anhängen von nichtflüchtigen Volumes zu erstellen:
gcloud container node-pools create NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
Vorhandener Knotenpool
So ändern Sie das aktuelle Limit für das Anhängen von persistenten Volumes eines vorhandenen Knotenpools:
Aktualisieren Sie das Limit für das Anhängen für den Knotenpool:
gcloud container node-pools update NODE_POOL_NAME \ --cluster=CLUSTER_NAME \ --node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
Starten Sie das DaemonSet
pdcsi-node
neu:kubectl rollout restart ds pdcsi-node -n kube-system
Das neue Limit für das Anbringen von Anhängen gilt, nachdem sich die
pdcsi-node
-Pods im StatusRunning
befinden.
Ersetzen Sie Folgendes:
NODE_POOL_NAME
: der Name des Knotenpools, den Sie erstellen oder aktualisieren möchten.CLUSTER_NAME
: Der Name des Clusters für den Knotenpool, den Sie erstellen oder aktualisieren möchten.VALUE
: Eine Ganzzahl zwischen0
und127
, die die neue Anzahl der nichtflüchtigen Volumes angibt, die angehängt werden können. Wenn Sie einen Wert über 127 angeben, wird das Knotenlabel ignoriert und der PDCSI-Treiber verwendet stattdessen das Standardlimit für das Anhängen persistenter Volumes. Das Standardlimit beträgt 128 für Maschinen der dritten Generation und einen auf der Anzahl der vCPUs basierenden Wert für Maschinen der vierten Generation.
Überschreibung überprüfen
Prüfen Sie die Knotenlabels und die Knotenkapazität, um festzustellen, ob die Überschreibung korrekt angewendet wurde.
Ersetzen Sie in den folgenden Befehlen NODE_NAME
durch den Namen eines Knotens, der Teil des jeweiligen Knotenpools ist, in dem Sie das Override-Knotenlabel angewendet haben.
Prüfen Sie die Knotenlabels:
kubectl get node NODE_NAME --show-labels
Die Ausgabe sollte das Label
node-restriction.kubernetes.io/gke-volume-attach-limit-override
enthalten.Prüfen Sie die Knotenkapazität:
kubectl describe node NODE_NAME
Die Ausgabe sollte die
attachable-volumes-gce-pd
-Kapazität enthalten, die mit dem Überschreibungswert übereinstimmen sollte, den Sie für den Knotenpool festgelegt haben. Weitere Informationen finden Sie unter Zuweisbare Ressourcen auf einem Knoten prüfen.
Nächste Schritte
- Informationen zum nichtflüchtigen GKE-Volume-Speicher
- Informationen zur Funktionsweise des Kubernetes-Schedulers