Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Konfigurieren der Autoskalierung für Datenservices und Routen

Konfigurieren Sie Horizontale Pod-Autoskalierung (HPA) für die Ressource, die Datenservices und Routen in einer Dynamic Engine-Umgebung zugewiesen ist, wodurch sichergestellt wird, dass Datenservices und Routen große Datenverkehrs- oder Nachrichtenmengen verarbeiten können.

InformationshinweisAnmerkung: Diese Vorgehensweise gilt nur für Implementierungen und Upgrades einer Dynamic Engine-Umgebung. Sie können diese Einstellungen mit einem anschließenden Upgrade ändern.

Vorbereitungen

  • Die benutzerdefinierten Ressourcendefinitionen dynamic-engine-crd müssen mit dem Helm-Chart oci://ghcr.io/talend/helm/dynamic-engine-crd installiert worden sein. Führen Sie andernfalls die folgenden Befehle für die Installation aus:
    1. Suchen Sie die zu verwendende Diagrammversion:
      • Führen Sie den folgenden Helm-Befehl aus:
        helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
      • Sehen Sie die Version direkt über Talend Management Console ein oder suchen Sie im Dynamic Engine Änderungs-Log nach der in Ihrer Dynamic Engine-Version enthaltenen Diagrammversion.
      • Verwenden Sie einen API-Aufruf an den Dynamic Engine-Versionsendpunkt.
    2. Führen Sie den folgenden Befehl aus, um das Helm-Chart einer bestimmten Version zu installieren:
      helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
      Ersetzen Sie <helm_chart_version> durch die Chart-Version, die von Ihrer Dynamic Engine-Version unterstützt wird.

      Wenn die Version nicht angegeben wird, installieren Sie die neueste verfügbare dynamic-engine-crd-Diagrammversion.

  • Ihre Dynamic Engine muss implementiert worden sein. Führen Sie andernfalls den folgenden Befehl aus, um sie zu implementieren:
    helm install dynamic-engine -f <engine-id>-helm-values/<engine-id>-values.yaml oci://ghcr.io/talend/helm/dynamic-engine 
    Dies ist die Standardbereitstellung, da die aktuelle Anpassung nur auf der Dynamic Engine-Umgebungsseite benötigt wird. Aus diesem Grund wurde keine Anpassung für die Dynamic Engine-Instanz konfiguriert.
  • Die Unterstützung für Autoskalierung stützt sich auf einen Metrikserver.

    Führen Sie folgenden Befehl aus, um zu überprüfen, ob ein Metrikserver installiert ist:

    kubectl top pod

    Wenn Sie einen Fehler wie error: Metrics API not available (Fehler: Metrik-API nicht verfügbar) erhalten, müssen Sie einen Metrikserver installieren.

Warum und wann dieser Vorgang ausgeführt wird

Um Pod-Autoskalierung für Datenservices und Routen zu aktivieren, konfigurieren Sie das Diagramm dynamic-engine-environment. Mit dieser Konfiguration kann auch die maximale Anzahl Replikate (Pod-Instanzen) festgelegt werden auf die HPA skalieren kann.

Prozedur

  1. Entpacken Sie auf dem Kubernetes-Rechner die Helm-Implementierungs-ZIP-Datei, die Sie zuvor heruntergeladen haben.
  2. Erstellen Sie eine benutzerdefinierte Datei mit für Autoskalierung spezifischen Werten für Datenservices und Routen.

    Example

    cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml
    configuration:
      dataServiceRouteDeployment:
        autoscaling:
          enabled: true
          maxReplicas: 5
    EOF

    Ersetzen Sie $DYNAMIC_ENGINE_ENVIRONMENT_ID durch die ID Ihrer Dynamic Engine-Umgebung. In diesem Beispiel ist die Obergrenze der Pod-Autoskalierung auf 5 Pod-Instanzen festgelegt.

    Liste der Parameter, die auf Ebene der Autoskalierung festgelegt werden können:

    Autoskalierungsparameter für Datenservices und Routen
    Parameter Beschreibung Standard
    enabled Gibt an, ob horizontale Pod-Autoskalierung (HPA) automatisch zusammen mit der Umgebung implementiert wird. false
    minReplicas Legt die minimale Anzahl von Pod-Replikaten für die Autoskalierung fest. 1
    maxReplicas Legt die maximale Anzahl von Pod-Replikaten für die Autoskalierung fest. 10
    cpuAverageUtilization Legt die durchschnittliche CPU-Zielauslastung (als Prozentsatz) über Pods hinweg fest. Verwenden Sie einen negativen Wert, um diesen Parameter zu deaktivieren. Null verwendet den Standardwert (70). 0
    memoryAverageUtilization Legt die durchschnittliche Zielarbeitsspeicherauslastung (als Prozentsatz) über Pods hinweg fest. Verwenden Sie einen negativen Wert, um diesen Parameter zu deaktivieren. Null verwendet den Standardwert (-1). 0
    scaleUpStabilizationWindowSeconds Legt das Stabilitätsfenster (in Sekunden) für die Hochskalierung fest. Während dieses Fensters werden zuvor berechnete Zielreplikatsanzahlen berücksichtigt. Null deaktiviert diese Funktion. 120
    scaleDownStabilizationWindowSeconds Legt das Stabilitätsfenster (in Sekunden) für die Herunterskalierung fest. Während dieses Fensters werden zuvor berechnete Zielreplikatsanzahlen berücksichtigt. Null deaktiviert diese Funktion. 0
  3. Stellen Sie die Dynamic Engine-Umgebung mit der benutzerdefinierten Datei mit für Autoskalierung spezifischen Werten bereit.
    helm install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION          

    Ersetzen Sie $DYNAMIC_ENGINE_ENVIRONMENT_ID und $DYNAMIC_ENGINE_VERSION entsprechend durch die Umgebungs-ID und die Engine-Version.

  4. Verifizieren Sie die Autoskalierungskonfiguration in der ConfigMap der Umgebung.
    Jede Dynamic Engine-Umgebung hat ihre eigene spezifische ConfigMap global-configuration. Aktualisierungen einer bestimmten ConfigMap wirken sich nur auf die Umgebung aus, zu der diese gehört.
    kubectl get configmap -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      global-configuration -ojsonpath="{.data['global-configuration\.json']}" \
      | jq -r '.dataServiceRouteDeployment'               
    Mit diesem Befehl wird die Konfiguration der Pod-Autoskalierung abgerufen. Die Ausgabe sollte den aktivierten Status und die angegebene maximale Anzahl Replikate bestätigen:
    {
      "autoscaling": {
        "enabled": "true",
        "minReplicas": "1",
        "maxReplicas": "5",
        "cpuAverageUtilization": "0",
        "memoryAverageUtilization": "0"
      }
    }         
    InformationshinweisTipp: Falls Änderungen erforderlich sind, können Sie die Inhalte der Datei $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml aktualisieren und helm upgrade ausführen, um die Änderungen anzuwenden:
    helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION      

Ergebnisse

Nach der erfolgreichen Implementierung kann die Dynamic Engine-Umgebung die Pod-Instanzen automatisch entsprechend den Arbeitslaständerungen bis zur konfigurierten maximalen Anzahl erhöhen, wenn Datenservices und Routen ausgeführt werden.

In Talend Management Console ändert sich der Status dieser Umgebung zu Ready (Bereit), was bestätigt, dass sie zum Ausführen von Tasks oder Plänen bereit ist.

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!