View a markdown version of this page

Configurer les paramètres avancés du plan de contrôle de Kubernetes - Amazon EKS

Aidez à améliorer cette page

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurer les paramètres avancés du plan de contrôle de Kubernetes

Ce guide explique comment définir et afficher les paramètres avancés du plan de contrôle de Kubernetes à l'aide de l'interface de ligne de commande et. AWS Console de gestion AWS Pour une explication de chaque paramètre et de son effet sur votre cluster, consultezConfiguration avancée du plan de contrôle de Kubernetes.

Conditions préalables

Avant de commencer, assurez-vous que :

  • Cluster Amazon EKS exécutant Kubernetes version 1.31 ou ultérieure  : la configuration avancée du plan de contrôle Kubernetes est prise en charge sur les clusters nouveaux et existants exécutant Kubernetes version 1.31 ou ultérieure. Tous les paramètres de cette rubrique partagent cette version minimale.

  • AWS CLI  : outil en ligne de commande permettant de travailler avec AWS des services, notamment Amazon EKS. Pour plus d'informations, consultez le guide d'installation dans le guide de l'utilisateur de l'interface de ligne de AWS commande. Après avoir installé la AWS CLI, nous vous recommandons de la configurer également. Pour plus d'informations, consultez la section Configuration rapide avec aws configure dans le Guide de l'utilisateur de l'interface de ligne de AWS commande.

  • Autorisations IAM requises  : le principal IAM que vous utilisez doit disposer des autorisations nécessaires pour décrire et mettre à jour les clusters Amazon EKS. Pour vérifier le principal actuel, exécutez la commande suivante :

    aws sts get-caller-identity
Note

Nous vous recommandons de terminer les étapes de cette rubrique dans un shell Bash. Si vous n’utilisez pas de shell Bash, certaines commandes de script telles que les caractères de continuation de ligne et la façon dont les variables sont définies et utilisées nécessitent un ajustement pour votre shell. En outre, les règles de votre shell en matière de guillemets peuvent être différentes. Pour plus d'informations, consultez la section Utilisation de guillemets avec des chaînes dans l' AWS interface de ligne de AWS commande du Guide de l'utilisateur de l'interface de ligne de commande.

Définissez le nom et la région de votre cluster préférés avant d'exécuter les commandes de cette rubrique :

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

Valeurs prises en charge

Amazon EKS valide chaque paramètre par rapport aux plages suivantes et rejette toute demande en dehors de celles-ci.

Paramètre du composant Valeurs prises en charge Par défaut

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.type

LeastAllocated, MostAllocated

LeastAllocated

kubeSchedulerConfig.nodeResourcesFit.scoringStrategy.resources[].weight

1 sur 100

cpu: 1, memory: 1

kubeControllerManagerConfig.horizontalPodAutoscalerControllerConfig.horizontalPodAutoscalerSyncPeriod

10s sur 15s

15s

kubeControllerManagerConfig.podGcControllerConfig.terminatedPodGcThreshold

10000 sur 12500

12500

kubeApiServerConfig.eventTtl

10m sur 60m

60m

kubeApiServerConfig.serviceNodePortRange.minPort

10260 sur 32767

30000

kubeApiServerConfig.serviceNodePortRange.maxPort

10260 sur 32767

32767

Ces valeurs s'appliquent aux versions de Kubernetes disponibles lors de la publication et peuvent changer dans les versions ultérieures. Pour récupérer les valeurs actuelles pour une version spécifique, consultez la section suivante.

Trouvez les valeurs par défaut et les valeurs prises en charge pour une version de Kubernetes

L'DescribeClusterVersionsopération indique la valeur par défaut et les valeurs prises en charge pour chaque paramètre du plan de contrôle, pour chaque version de Kubernetes. Lisez les valeurs issues de cette opération plutôt que de les coder en dur, en particulier si vous automatisez la configuration des clusters ou si vous gérez des clusters sur plusieurs versions de Kubernetes.

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

La réponse comprend un controlPlaneComponentConfig objet, organisé par composant du plan de contrôle. Chaque paramètre indique un objet defaultValue et un constraints objet :

{ "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 } } } } } } ] }

La réponse précédente indique les dates de prise en charge des versions, les niveaux de mise à l'échelle du plan de contrôle provisionné et les champs de configuration du plan de contrôle. Pour plus d'informations, consultez DescribeClusterVersions la référence de l'API Amazon EKS.

Pour renvoyer uniquement les champs de configuration, utilisez l'--queryoption :

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

Configuration du plan de contrôle — AWS INTERFACE DE LIGNE DE COMMANDE (CLI)

Chaque composant du plan de contrôle possède son propre paramètre : --kube-scheduler-config--kube-controller-manager-config, et--kube-api-server-config. Vous ne spécifiez que les composants que vous souhaitez personnaliser. Chaque paramètre accepte le JSON en ligne.

Création d'un cluster avec les paramètres du plan de contrôle

La commande suivante crée un cluster qui conserve les nouveaux événements Kubernetes pendant 10 minutes au lieu des 60 minutes par défaut. Les paramètres que vous ne spécifiez pas utilisent leurs valeurs par défaut.

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" }'

Réponse :

{ "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 } } } }

Afficher la configuration du plan de contrôle pour un cluster

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

La réponse inclut kubeSchedulerConfigkubeControllerManagerConfig, et en kubeApiServerConfig tant que champs de premier niveau. Ces champs sont toujours présents et indiquent la configuration complète exécutée sur votre plan de contrôle, y compris les paramètres que vous n'avez pas personnalisés et leurs valeurs par défaut.

Pour renvoyer la configuration d'un seul composant, utilisez l'--queryoption :

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

Réponse :

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

Configurer la stratégie de notation du planificateur

Par défaut, le planificateur utilise la LeastAllocated stratégie, qui répartit les pods entre les nœuds. La commande suivante le remplace parMostAllocated, qui préfère les nœuds dont l'allocation de ressources est déjà plus élevée et regroupe les pods sur un plus petit nombre de nœuds.

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

Réponse :

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

Vous pouvez également spécifier un resources tableau pour pondérer les ressources individuelles dans le calcul de la notation, ce qui est utile lorsqu'une ressource spécifique constitue la contrainte de votre cluster. Pour de plus amples informations, veuillez consulter Configuration avancée du plan de contrôle de Kubernetes.

Les autres paramètres du plan de contrôle suivent le même schéma, chacun avec son propre indicateur de composant : --kube-api-server-config pour eventTtl etserviceNodePortRange, et --kube-controller-manager-config pour la période de synchronisation Horizontal Pod Autoscaler. Pour savoir ce que fait chaque paramètre et ce qu'il faut prendre en compte avant de le modifier, consultezConfiguration avancée du plan de contrôle de Kubernetes.

Mettre à jour plusieurs composants à la fois

Vous pouvez spécifier plusieurs paramètres de composant en un seul appel :

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

Les mises à jour fusionnent avec votre configuration existante. Seuls les champs que vous spécifiez sont modifiés et les champs que vous omettez conservent leurs valeurs actuelles. La commande précédente laisse la configuration de votre gestionnaire de contrôleurs inchangée.

Surveiller une mise à jour de configuration du plan de contrôle

Un changement de configuration n'est pas en vigueur lors des update-cluster-config retours. Amazon EKS applique la nouvelle configuration par le biais d'une mise à jour continue de votre plan de contrôle, qui prend plusieurs minutes. Pour bloquer jusqu'à la fin de la modification :

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

Cette commande revient lorsque le cluster atteint son ACTIVE état, généralement en quelques minutes.

Pour répertorier les mises à jour pour votre cluster :

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

Réponse :

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

Pour consulter l'état d'une mise à jour spécifique :

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

L'état passe de InProgress à Successful lorsque la mise à jour est terminée ou en Failed cas d'erreur. Le errors champ indique la raison de l'échec.

Configuration du plan de contrôle — Console de gestion AWS

Pour configurer les paramètres avancés du plan de contrôle de Kubernetes lorsque vous créez un cluster, procédez comme suit :

  1. Ouvrez la console Amazon EKS.

  2. Choisissez Créer un cluster.

  3. Sous Options de configuration, sélectionnez Configuration personnalisée.

  4. Faites défiler la page jusqu'à Configuration du plan de contrôle.

  5. Choisissez Activer la configuration du plan de contrôle.

  6. Définissez les paramètres que vous souhaitez configurer. Les paramètres que vous laissez inchangés utilisent leurs valeurs par défaut.

  7. Sélectionnez d'autres options de configuration de cluster selon vos besoins. À la dernière étape, choisissez Créer un cluster. La création du cluster peut prendre plusieurs minutes.

Pour configurer les paramètres avancés du plan de contrôle de Kubernetes sur un cluster existant, procédez comme suit :

  1. Ouvrez la console Amazon EKS.

  2. Choisissez le cluster que vous souhaitez mettre à jour.

  3. Choisissez l'onglet Aperçu, puis faites défiler la page jusqu'à Configuration du plan de contrôle.

  4. Choisissez Gérer, puis sélectionnez Activer la configuration du plan de contrôle pour définir les paramètres que vous souhaitez modifier. Ensuite, choisissez Enregistrer les modifications.