View a markdown version of this page

Konfigurieren Sie erweiterte Parameter der Kubernetes-Steuerungsebene - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie erweiterte Parameter der Kubernetes-Steuerungsebene

In diesem Handbuch erfahren Sie, wie Sie erweiterte Parameter der Kubernetes-Steuerungsebene mithilfe der CLI und anzeigen. AWS AWS-Managementkonsole Eine Erläuterung der einzelnen Parameter und ihrer Auswirkungen auf Ihren Cluster finden Sie unter. Erweiterte Konfiguration der Kubernetes-Steuerungsebene

Voraussetzungen

Bevor Sie beginnen, stellen Sie über Folgendes verfügen:

  • Ein Amazon EKS-Cluster, auf dem Kubernetes Version 1.31 oder höher ausgeführt wird — Die erweiterte Konfiguration der Kubernetes-Steuerungsebene wird auf neuen und vorhandenen Clustern unterstützt, auf denen Kubernetes Version 1.31 oder höher ausgeführt wird. Alle Parameter in diesem Thema haben dieselbe Mindestversion.

  • AWS CLI — Ein Befehlszeilentool für die Arbeit mit AWS Diensten, einschließlich Amazon EKS. Weitere Informationen finden Sie im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle unter Installation. Nach der Installation der AWS CLI empfehlen wir, sie ebenfalls zu konfigurieren. Weitere Informationen finden Sie unter Schnellkonfiguration mit aws configure im Benutzerhandbuch für die AWS Befehlszeilenschnittstelle.

  • Erforderliche IAM-Berechtigungen — Der von Ihnen verwendete IAM-Principal muss über Berechtigungen zum Beschreiben und Aktualisieren von Amazon EKS-Clustern verfügen. Führen Sie den folgenden Befehl aus, um den aktuellen Principal zu überprüfen:

    aws sts get-caller-identity
Anmerkung

Wir empfehlen, dass Sie die Schritte in diesem Thema in einer Bash-Shell ausführen. Wenn Sie keine Bash-Shell verwenden, erfordern einige Skript-Befehle wie Zeilenfortsetzungszeichen und die Art und Weise, wie Variablen gesetzt und verwendet werden, eine Anpassung für Ihre Shell. Darüber hinaus können die Zitier- und Escape-Regeln für Ihre Shell unterschiedlich sein. Weitere Informationen finden Sie unter Verwenden von Anführungszeichen mit Zeichenfolgen in der AWS CLI im AWS Command Line Interface-Benutzerhandbuch.

Legen Sie Ihren bevorzugten Clusternamen und Ihre bevorzugte Region fest, bevor Sie die Befehle in diesem Thema ausführen:

export CLUSTER=my-eks-cluster export AWS_REGION=us-west-2

Unterstützte Werte

Amazon EKS validiert jeden Parameter anhand der folgenden Bereiche und lehnt eine Anforderung ab, die außerhalb dieser Bereiche liegt.

Parameter der Komponente Unterstützte Werte Standard

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.type

LeastAllocated, MostAllocated

LeastAllocated

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.resources[].weight

1 auf 100

cpu: 1, memory: 1

kubeControllerManagerConfig.horizontalPodAutoscalerControllerConfig.horizontalPodAutoscalerSyncPeriod

10s auf 15s

15s

kubeControllerManagerConfig.podGcControllerConfig.terminatedPodGcThreshold

10000 auf 12500

12500

kubeApiServerConfig.eventTtl

10m auf 60m

60m

kubeApiServerConfig.serviceNodePortRange.minPort

10260 auf 32767

30000

kubeApiServerConfig.serviceNodePortRange.maxPort

10260 auf 32767

32767

Diese Werte gelten für die bei der Veröffentlichung verfügbaren Kubernetes-Versionen und können sich in späteren Versionen ändern. Informationen zum Abrufen der aktuellen Werte für eine bestimmte Version finden Sie im folgenden Abschnitt.

Finden Sie die Standardwerte und unterstützten Werte für eine Kubernetes-Version

Der DescribeClusterVersions Vorgang meldet den Standardwert und die unterstützten Werte für jeden Steuerungsebenenparameter für jede Kubernetes-Version. Lesen Sie die Werte aus diesem Vorgang, anstatt sie fest zu codieren, insbesondere wenn Sie die Clusterkonfiguration automatisieren oder Cluster über mehrere Kubernetes-Versionen hinweg verwalten.

aws eks describe-cluster-versions --cluster-versions 1.35

Die Antwort enthält ein controlPlaneComponentConfig Objekt, das nach Komponenten der Steuerungsebene organisiert ist. Jeder Parameter meldet ein defaultValue und ein constraints Objekt:

{ "clusterVersions": [ { "clusterVersion": "1.35", "clusterType": "eks", "defaultVersion": false, "releaseDate": "2026-01-23T00:00:00+00:00", "endOfStandardSupportDate": "2027-03-23T00:00:00+00:00", "endOfExtendedSupportDate": "2028-03-23T00:00:00+00:00", "status": "STANDARD_SUPPORT", "controlPlaneScalingTiers": [ { "tierName": "tier-xl", "apiRequestConcurrency": 2000, "podSchedulingRatePerSecond": 167, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-2xl", "apiRequestConcurrency": 4000, "podSchedulingRatePerSecond": 283, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-4xl", "apiRequestConcurrency": 8000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 }, { "tierName": "tier-8xl", "apiRequestConcurrency": 16000, "podSchedulingRatePerSecond": 400, "clusterDatabaseSizeGb": 16 } ], "controlPlaneComponentConfig": { "kubeApiServerConfig": { "eventTtl": { "defaultValue": "60m", "constraints": { "min": "10m", "max": "60m" } }, "serviceNodePortRange": { "defaultValue": { "minPort": 30000, "maxPort": 32767 }, "constraints": { "minPort": {"min": 10260, "max": 32767}, "maxPort": {"min": 10260, "max": 32767} } } }, "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "defaultValue": { "type": "LeastAllocated", "resources": [ {"name": "cpu", "weight": 1}, {"name": "memory", "weight": 1} ] }, "constraints": { "scoringStrategy": { "allowedValues": ["LeastAllocated", "MostAllocated"] }, "resources": { "name": { "allowedValues": [ "cpu", "memory", "nvidia.com/gpu", "aws.amazon.com/neuron", "aws.amazon.com/neuroncore" ] }, "weight": {"min": 1, "max": 100} } } } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": { "defaultValue": "15s", "constraints": { "min": "10s", "max": "15s" } } }, "podGcControllerConfig": { "terminatedPodGcThreshold": { "defaultValue": 12500, "constraints": { "min": 10000, "max": 12500 } } } } } } ] }

Die vorherige Antwort zeigt die Daten der Versionsunterstützung, die Skalierungsstufen der bereitgestellten Kontrollebene und die Konfigurationsfelder für die Kontrollebene. Weitere Informationen finden Sie DescribeClusterVersions in der Amazon EKS-API-Referenz.

Verwenden Sie die folgende --query Option, um nur die Konfigurationsfelder zurückzugeben:

aws eks describe-cluster-versions --cluster-versions 1.35 \ --query 'clusterVersions[0].controlPlaneComponentConfig'

Konfiguration der Steuerungsebene — AWS CLI

Jede Komponente der Steuerungsebene hat ihren eigenen Parameter: --kube-scheduler-config--kube-controller-manager-config, und--kube-api-server-config. Sie geben nur die Komponenten an, die Sie anpassen möchten. Jeder Parameter akzeptiert Inline-JSON.

Erstellen Sie einen Cluster mit Parametern der Steuerungsebene

Mit dem folgenden Befehl wird ein Cluster erstellt, der neue Kubernetes-Ereignisse für 10 Minuten statt wie standardmäßig 60 Minuten speichert. Parameter, die Sie nicht angeben, verwenden ihre Standardwerte.

aws eks create-cluster \ --name "$CLUSTER" \ --kubernetes-version 1.35 \ --role-arn arn:aws:iam::111122223333:role/eks-service-role \ --resources-vpc-config subnetIds=subnet-abc123,subnet-def456,securityGroupIds=sg-xyz789 \ --kube-api-server-config '{ "eventTtl": "10m" }'

Antwort:

{ "cluster": { "name": "my-eks-cluster", "arn": "arn:aws:eks:us-west-2:111122223333:cluster/my-eks-cluster", "createdAt": 1709640000.0, "version": "1.35", "roleArn": "arn:aws:iam::111122223333:role/eks-service-role", "status": "CREATING", "kubeSchedulerConfig": { "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }, "kubeControllerManagerConfig": { "horizontalPodAutoscalerControllerConfig": { "horizontalPodAutoscalerSyncPeriod": "15s" } }, "kubeApiServerConfig": { "eventTtl": "10m", "serviceNodePortRange": { "minPort": 30000, "maxPort": 32767 } } } }

Sehen Sie sich die Konfiguration der Steuerungsebene für einen Cluster an

aws eks describe-cluster --name "$CLUSTER"

Die Antwort umfasst kubeSchedulerConfigkubeControllerManagerConfig, und kubeApiServerConfig als Felder der obersten Ebene. Diese Felder sind immer vorhanden und zeigen die vollständige Konfiguration, die auf Ihrer Steuerungsebene ausgeführt wird, einschließlich der Parameter, die Sie nicht angepasst haben, und ihrer Standardwerte.

Um die Konfiguration für eine einzelne Komponente zurückzugeben, verwenden Sie die folgende --query Option:

aws eks describe-cluster --name "$CLUSTER" \ --query 'cluster.kubeSchedulerConfig'

Antwort:

{ "nodeResourcesFit": { "scoringStrategy": { "type": "LeastAllocated" } } }

Konfigurieren Sie die Scheduler-Scoring-Strategie

Standardmäßig verwendet der Scheduler die LeastAllocated Strategie, die Pods auf Knoten verteilt. Mit dem folgenden Befehl wird die Einstellung geändert zuMostAllocated, wobei Knoten bevorzugt werden, denen bereits eine höhere Ressourcenzuweisung zugewiesen ist, und Pods auf weniger Knoten gepackt werden.

aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{ "nodeResourcesFit": { "scoringStrategy": { "type": "MostAllocated" } } }'

Antwort:

{ "update": { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "status": "InProgress", "type": "ControlPlaneComponentConfigUpdate", "params": [ { "type": "kubeSchedulerConfig", "value": "{\"nodeResourcesFit\":{\"scoringStrategy\":{\"type\":\"MostAllocated\"}}}" } ], "createdAt": 1709643600.0, "errors": [] } }

Sie können auch ein resources Array angeben, um einzelne Ressourcen bei der Bewertungsberechnung zu gewichten. Dies ist nützlich, wenn eine bestimmte Ressource die Einschränkung in Ihrem Cluster darstellt. Weitere Informationen finden Sie unter Erweiterte Konfiguration der Kubernetes-Steuerungsebene.

Die anderen Parameter der Steuerungsebene folgen demselben Muster, und jeder hat sein eigenes Komponenten-Flag: --kube-api-server-config für eventTtl und und serviceNodePortRange für den --kube-controller-manager-config Synchronisierungszeitraum des Horizontal Pod Autoscalers. Was die einzelnen Parameter bewirken und was Sie beachten sollten, bevor Sie sie ändern, finden Sie unter. Erweiterte Konfiguration der Kubernetes-Steuerungsebene

Aktualisieren Sie mehr als eine Komponente gleichzeitig

Sie können mehrere Komponentenparameter in einem einzigen Aufruf angeben:

aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{"nodeResourcesFit":{"scoringStrategy":{"type":"MostAllocated"}}}' \ --kube-api-server-config '{"eventTtl":"30m"}'

Updates werden mit Ihrer vorhandenen Konfiguration zusammengeführt. Nur die Felder, die Sie angeben, ändern sich, und Felder, die Sie auslassen, behalten ihre aktuellen Werte. Durch den vorherigen Befehl bleibt Ihre Controller-Manager-Konfiguration unverändert.

Überwachen Sie ein Update der Konfiguration der Steuerungsebene

Eine Konfigurationsänderung wird bei der update-cluster-config Rückkehr nicht wirksam. Amazon EKS wendet die neue Konfiguration im Rahmen einer fortlaufenden Aktualisierung Ihrer Steuerungsebene an, die mehrere Minuten in Anspruch nimmt. So blockieren Sie, bis die Änderung abgeschlossen ist:

aws eks wait cluster-active --name "$CLUSTER"

Dieser Befehl wird zurückgegeben, wenn der Cluster den ACTIVE Status erreicht, in der Regel innerhalb weniger Minuten.

So listen Sie Updates für Ihren Cluster auf:

aws eks list-updates --name "$CLUSTER"

Antwort:

{ "updateIds": [ "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" ] }

So zeigen Sie den Status eines bestimmten Updates an:

aws eks describe-update --name "$CLUSTER" \ --update-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Der Status wechselt von InProgress zu, Successful wenn das Update abgeschlossen ist, oder zu, Failed wenn ein Fehler auftritt. Das errors Feld gibt den Grund für einen Fehler an.

Konfiguration der Steuerungsebene — AWS-Managementkonsole

So konfigurieren Sie erweiterte Parameter der Kubernetes-Steuerungsebene, wenn Sie einen Cluster erstellen:

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie Cluster erstellen.

  3. Wählen Sie unter Konfigurationsoptionen die Option Benutzerdefinierte Konfiguration aus.

  4. Scrollen Sie nach unten zur Konfiguration der Steuerungsebene.

  5. Wählen Sie Konfiguration der Steuerungsebene aktivieren.

  6. Stellen Sie die Parameter ein, die Sie konfigurieren möchten. Parameter, die Sie unverändert lassen, verwenden ihre Standardwerte.

  7. Wählen Sie nach Bedarf andere Cluster-Konfigurationsoptionen aus. Wählen Sie im letzten Schritt Cluster erstellen aus. Es kann mehrere Minuten dauern, bis die Clustererstellung abgeschlossen ist.

So konfigurieren Sie erweiterte Parameter der Kubernetes-Steuerungsebene auf einem vorhandenen Cluster:

  1. Öffnen Sie die Amazon-EKS-Konsole.

  2. Wählen Sie den Cluster aus, den Sie aktualisieren möchten.

  3. Wählen Sie die Registerkarte „Übersicht“ und scrollen Sie dann nach unten zur Konfiguration der Steuerungsebene.

  4. Wählen Sie „Verwalten“ und dann „Konfiguration der Steuerungsebene aktivieren“, um die Parameter festzulegen, die Sie ändern möchten. Wählen Sie dann Save changes (Änderungen speichern).