Zustandslose Arbeitslasten skalieren

In diesem Dokument wird beschrieben, wie Sie vorhandene zustandslose Arbeitslasten skalieren, die in einem GDC-Kubernetes-Cluster (Google Distributed Cloud) mit Air Gap ausgeführt werden. Sie müssen die in Ihren zustandslosen Arbeitslasten ausgeführten Pods skalieren, wenn sich die Anforderungen an Ihre Containerarbeitslasten ändern.

Dieses Dokument richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Verwaltung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Um die Aufgaben in diesem Dokument auszuführen, müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.

IAM-Rollen anfordern

Sie benötigen bestimmte Rollen, um die Berechtigungen zu erhalten, die Sie zum Skalieren zustandsloser Arbeitslasten benötigen. Die erforderlichen Rollen hängen davon ab, ob Sie in einem organisationsbezogenen freigegebenen Cluster oder in einem projektbezogenen Standardcluster arbeiten. Weitere Informationen finden Sie unter Kubernetes-Clusterkonfigurationen.

Freigegebene Clusterrollen

Bitten Sie den IAM-Administrator Ihres Projekts, Ihnen die Rolle Namespace Admin (namespace-admin) zuzuweisen, um Arbeitslasten in einem freigegebenen Cluster zu erstellen, zu löschen, zu bearbeiten oder aufzurufen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Standard-Clusterrollen

Bitten Sie den IAM-Administrator Ihres Projekts, Ihnen die Rolle Cluster Developer (cluster-developer) zuzuweisen, damit Sie Arbeitslasten in einem Standardcluster erstellen, löschen, bearbeiten oder aufrufen können. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Umgebung vorbereiten

Wenn Sie Befehle für einen Kubernetes-Cluster über die API ausführen möchten, benötigen Sie die folgenden Ressourcen:

  • Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Gruppe „Plattformadministrator“, wie der Clustername lautet.

  • Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster.

  • Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um KUBERNETES_CLUSTER_KUBECONFIG in dieser Anleitung zu ersetzen.

Deployment skalieren

Verwenden Sie die Skalierungsfunktion von Kubernetes, um die Anzahl der in Ihrem Deployment ausgeführten Pods entsprechend zu skalieren.

Pods einer Bereitstellung automatisch skalieren

Kubernetes bietet Autoscaling, sodass Sie Ihre Bereitstellung nicht manuell aktualisieren müssen, wenn sich die Nachfrage ändert. Führen Sie die folgenden Schritte aus, um die Pods Ihres Deployments automatisch zu skalieren:

  1. Damit das horizontale Pod-Autoscaling den CPU-Prozentsatz richtig messen kann, legen Sie die CPU-Ressourcenanforderung für Ihr Deployment fest.

  2. Legen Sie das horizontale Pod-Autoscaling in Ihrem Deployment fest:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    Ersetzen Sie Folgendes:

    • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster.

    • NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.

    • DEPLOYMENT_NAME: Der Name der Bereitstellung, die automatisch skaliert werden soll.

    • CPU_PERCENT: Die durchschnittliche Ziel-CPU-Auslastung, die als Prozentsatz über alle Pods hinweg angefordert werden soll.

    • MIN_NUMBER_REPLICAS: Das untere Limit für die Anzahl der Pods, die vom Autoscaling bereitgestellt werden können.

    • MAX_NUMBER_REPLICAS: Die Obergrenze für die Anzahl der Pods, die vom Autoscaling bereitgestellt werden können.

  3. Überprüfen Sie den aktuellen Status des horizontalen Pod-Autoscalers:

    kubectl get hpa
    

    Die Ausgabe sieht etwa so aus:

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

Pods einer Bereitstellung manuell skalieren

Wenn Sie eine Bereitstellung lieber manuell skalieren möchten, führen Sie folgenden Befehl aus:

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

Ersetzen Sie Folgendes:

  • KUBERNETES_CLUSTER_KUBECONFIG: die kubeconfig-Datei für den Cluster.

  • NAMESPACE: der Namespace. Bei freigegebenen Clustern muss dies ein Projekt-Namespace sein. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.

  • DEPLOYMENT_NAME: Der Name der Bereitstellung, in der das Autoscaling erfolgen soll.

  • DEPLOYMENT_NAME: Die Anzahl der replizierten Pod-Objekte im Deployment.

Nächste Schritte