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 Pods, die in Ihren zustandslosen Arbeitslasten ausgeführt werden, skalieren, wenn sich die Anforderungen an Ihre Containerarbeitslast ä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.
Hinweise
Zum Ausführen der Aufgaben in diesem Dokument benötigen Sie die folgenden Ressourcen und Rollen:
Wenn Sie Befehle für einen Kubernetes-Cluster ausführen möchten, benötigen Sie die folgenden Ressourcen:
Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Plattformadministratorgruppe nach dem Clusternamen.
Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster, falls Sie noch keine haben.
Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um
KUBERNETES_CLUSTER_KUBECONFIGin dieser Anleitung zu ersetzen.
Bitten Sie den IAM-Administrator Ihrer Organisation, Ihnen die Rolle „Namespace Admin“ (
namespace-admin) in Ihrem Projekt-Namespace zuzuweisen, um die erforderlichen Berechtigungen zum Skalieren zustandsloser Arbeitslasten in einem freigegebenen Cluster zu erhalten.Bitten Sie den IAM-Administrator Ihrer Organisation, Ihnen die Rolle „Cluster Developer“ (
cluster-developer) in einem Standardcluster zuzuweisen, um die erforderlichen Berechtigungen zum Skalieren zustandsloser Arbeitslasten in einem Standardcluster zu erhalten.
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:
Damit der horizontale Pod-Autoscaler den CPU-Prozentsatz richtig messen kann, legen Sie die CPU-Ressourcenanforderung für Ihr Deployment fest.
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_REPLICASErsetzen 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 das Autoscaling bereitstellen kann.
Prüfen Sie den aktuellen Status des horizontalen Pod-Autoscalers:
kubectl get hpaDie 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 eines Deployments manuell skalieren
Wenn Sie ein Deployment 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 die automatische Skalierung erfolgen soll.DEPLOYMENT_NAME: Die Anzahl der repliziertenPod-Objekte im Deployment.