Schnellerer Start von Arbeitslasten mit Knoten mit Schnellstart

Auf dieser Seite wird beschrieben, wie Sie Arbeitslasten in Google Kubernetes Engine-Clustern (GKE) mithilfe von schnell startenden Knoten schneller bereitstellen und skalieren können. Knoten mit schnellem Start werden in GKE mit Autopilot-Modus nach dem Best-Effort-Prinzip verwendet, wenn Arbeitslasten kompatible Konfigurationen verwenden.

GKE-Knoten mit schnellem Start haben eine deutlich geringere Startzeit für kompatible Maschinenfamilien. Die verkürzte Startzeit bietet folgende Vorteile:

  • Schnellerer Kaltstart
  • Schnelleres Autoscaling
  • Verbesserte Langzeitlatenz bei der Pod-Planung
  • Verbesserte Kosteneffizienz der Infrastruktur

Bei Knoten mit schnellem Start werden Hardware-Ressourcen in GKE vorinitialisiert, um die Startzeit zu verkürzen. Die vorinitialisierten Ressourcen sind nach dem Best-Effort-Prinzip verfügbar. Anfragen bei hoher Nachfrage werden möglicherweise nur teilweise bearbeitet. Ohne schnell startende Knoten werden Ressourcen bei Bedarf initialisiert und Knoten werden mit der normalen Startzeit bereitgestellt.

Voraussetzungen

Für Knoten mit Schnellstart ist keine zusätzliche Konfiguration erforderlich. GKE verwendet automatisch schnell startende Knoten, wenn Ihre Arbeitslasten kompatible Konfigurationen verwenden. Sie müssen alle folgenden Anforderungen erfüllen, um Knoten mit schnellem Start verwenden zu können:

  • Autopilot-Cluster verwenden.
  • Verwenden Sie eine beliebige Version im Rapid Release Channel.
  • Verwenden Sie eine der folgenden kompatiblen Computeressourcen mit einer maximalen kompatiblen Bootlaufwerkgröße von 500 GiB:

  • Verwenden Sie den Bootlaufwerktyp pd-balanced.

  • Verwenden Sie keine Funktionen, die mit schnell startenden Knoten inkompatibel sind. Weitere Informationen finden Sie unter Einschränkungen.

Beschränkungen

Die folgenden Funktionen sind nicht mit schnell startenden GKE-Knoten kompatibel. Wenn Sie eine dieser Funktionen verwenden, stellt GKE Knoten mit der typischen Startzeit bereit:

Autopilot-GPU-Arbeitslasten

Wenn Sie kompatible GPUs in Ihren Autopilot-Clustern anfordern, ist die Startzeit von Knoten bis zu viermal und die Planungszeit von Pods bis zu zweimal schneller als bei ähnlichen Anfragen in GKE Standard-Clustern, da die Autopilot-GPU-Arbeitslasten Knoten mit schnellem Start verwenden können.

Im Folgenden finden Sie einige Anwendungsbeispiele. Alle Pods, die die Bedingungen im Abschnitt Anforderungen erfüllen, sind jedoch mit schnell startenden Knoten kompatibel.

ComputeClass

Fordern Sie einen kompatiblen Beschleunigertyp und eine kompatible Anzahl in einer ComputeClass an, wie im folgenden Beispiel:

apiVersion: cloud.google.com/v1
kind: ComputeClass
metadata:
  name: ACCELERATOR_COMPUTE_CLASS_NAME
spec:
  priorities:
  - gpu:
      type: ACCELERATOR_TYPE
      count: ACCELERATOR_COUNT
  nodePoolAutoCreation:
    enabled: true

Wenn Sie diese ComputeClass in einem Pod auswählen, wie im folgenden Beispiel, verwendet GKE schnell startende Knoten:

apiVersion: v1
kind: Pod
metadata:
  name: POD_NAME
spec:
  nodeSelector:
    # Select a ComputeClass that requests compatible GPUs
    cloud.google.com/compute-class: ACCELERATOR_COMPUTE_CLASS_NAME
  containers:
  - name: my-container
    image: gcr.io/google_containers/pause
    resources:
      limits:
        nvidia.com/gpu: ACCELERATOR_COUNT

Ersetzen Sie die folgenden Werte:

  • ACCELERATOR_COMPUTE_CLASS_NAME: Der Name der ComputeClass, die die Beschleuniger anfordert.
  • ACCELERATOR_TYPE: der Typ des Beschleunigers.
  • ACCELERATOR_COUNT: Die Anzahl der Beschleuniger, die für den Pod erforderlich sind. Dieser Wert muss kleiner oder gleich dem Wert im Feld spec.priorities.gpu.count in der ComputeClass sein.
  • POD_NAME: der Name Ihres Pods.

Weitere Informationen zu ComputeClass finden Sie unter Benutzerdefinierte Compute-Klassen.

Pod-Spezifikation

Wählen Sie in Ihrer Pod-Spezifikation einen kompatiblen Beschleunigertyp und eine kompatible Anzahl aus, wie im folgenden Beispiel:

apiVersion: v1
kind: Pod
metadata:
  name: POD_NAME
spec:
  nodeSelector:
    cloud.google.com/gke-accelerator: ACCELERATOR_NAME
  containers:
  - name: my-container
    image: gcr.io/google_containers/pause
    resources:
      limits:
        nvidia.com/gpu: ACCELERATOR_COUNT

Ersetzen Sie die folgenden Werte:

  • POD_NAME: der Name Ihres Pods.
  • ACCELERATOR_NAME: Der Name des Beschleunigers, der für den Pod erforderlich ist.
  • ACCELERATOR_COUNT: Die Anzahl der Beschleuniger, die für den Pod erforderlich sind.

Preise

Schnell startende Knoten sind in GKE Autopilot ohne Aufpreis verfügbar. Weitere Informationen zu den Preisen für GKE Autopilot finden Sie im Abschnitt „Autopilot-Modus“ unter Preise für Google Kubernetes Engine.

Nächste Schritte