Personnaliser la configuration des nœuds pour les pools de nœuds Azure Kubernetes service (AKS)

En personnalisant votre configuration de nœud, vous pouvez ajuster les paramètres du système d’exploitation ou kubelet pour répondre aux besoins de vos charges de travail. Lorsque vous créez un cluster AKS ou ajoutez un pool de nœuds à votre cluster, vous pouvez personnaliser un sous-ensemble de paramètres de système d’exploitation et kubelet couramment utilisés. Pour configurer des paramètres au-delà de ce sous-ensemble, utilisez un jeu de démons pour personnaliser vos configurations nécessaires sans perdre la prise en charge d’AKS pour vos nœuds.

Prerequisites

À mesure que le service prend en charge de nouveaux paramètres et paramètres de kubelet, l’inscription à l’indicateur de fonctionnalité en préversion peut être nécessaire. Si un indicateur Preview est requis, la référence des paramètres de configuration des nœuds personnalisés le précise.

Les paramètres kubelet kubeReserved, hardEvictionThreshold, softEvictionThreshold, softEvictionGracePeriod et evictionMaxPodGracePeriodInSeconds sont en préversion et nécessitent l’indicateur de fonctionnalité CustomNodeConfigPreview. Ces paramètres vous permettent de personnaliser les réservations de ressources et les seuils d’éviction, qui sont également configurés par le renforcement du nœud AKS. Pour connaître les étapes d’enregistrement, les valeurs par défaut et les exemples, consultez Node Hardening (préversion) dans AKS.

Créer des fichiers de configuration de nœud personnalisés pour les pools de nœuds AKS

Pour modifier la configuration du système d’exploitation et de kubelet, créez un nouveau fichier de configuration avec les paramètres et réglages souhaités. Si vous ne spécifiez pas de valeur pour un paramètre, la valeur par défaut est utilisée.

Remarque

Les exemples suivants montrent les paramètres de configuration courants. Modifiez les paramètres pour répondre aux besoins de votre charge de travail. Pour obtenir la liste complète des paramètres de configuration personnalisés pris en charge, consultez les paramètres de configuration de nœud personnalisés pour AKS.

Configuration de kubelet

Créez un fichier linuxkubeletconfig.json avec le contenu suivant :

{
 "cpuManagerPolicy": "static",
 "cpuCfsQuota": true,
 "cpuCfsQuotaPeriod": "200ms",
 "imageGcHighThreshold": 90,
 "imageGcLowThreshold": 70,
 "topologyManagerPolicy": "best-effort",
 "allowedUnsafeSysctls": [
  "kernel.msg*",
  "net.*"
],
 "failSwapOn": false
}

Pour personnaliser les ressources réservées à kube et les seuils d’éviction sur les pools de nœuds Linux, consultez Personnaliser les paramètres de durcissement des nœuds.

Configuration du système d’exploitation

Créez un fichier linuxosconfig.json avec le contenu suivant :

{
 "transparentHugePageEnabled": "madvise",
 "transparentHugePageDefrag": "defer+madvise",
 "swapFileSizeMB": 1500,
 "sysctls": {
  "netCoreSomaxconn": 163849,
  "netIpv4TcpTwReuse": true,
  "netIpv4IpLocalPortRange": "32000 60000"
 }
}

Créer un cluster AKS à l’aide de fichiers de configuration personnalisés

Remarque

Gardez à l’esprit les informations suivantes lors de l’utilisation de fichiers de configuration personnalisés lors de la création d’un cluster AKS :

  • Si vous spécifiez une configuration lors de la création d’un cluster, la configuration s’applique uniquement aux nœuds du pool de nœuds initial. Le cluster conserve les valeurs par défaut pour tous les paramètres non configurés dans le fichier JSON.
  • CustomLinuxOsConfig n’est pas pris en charge pour le type de système d’exploitation Windows.
  • Les paramètres kubelet de préversion kubeReserved et de seuil d’éviction sont pris en charge uniquement pour les pools de nœuds Linux et nécessitent l’indicateur de fonctionnalité CustomNodeConfigPreview. Pour connaître les étapes d'inscription, consultez Durcissement des nœuds (version préliminaire) dans AKS.

Créez un nouveau cluster à l’aide de fichiers de configuration personnalisés en exécutant la commande az aks create et en spécifiant vos fichiers de configuration pour les paramètres --linux-os-config et --kubelet-config. L’exemple de commande suivant crée un cluster avec les fichiers personnalisés ./linuxkubeletconfig.json et ./linuxosconfig.json :

az aks create --name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json --linux-os-config ./linuxosconfig.json

Ajouter un pool de nœuds à l’aide de fichiers de configuration personnalisés

Remarque

Gardez à l’esprit les informations suivantes lors de l’utilisation de fichiers de configuration personnalisés pour ajouter un nouveau pool de nœuds à un cluster AKS existant :

  • Lorsque vous ajoutez un pool de nœuds Linux à un cluster existant, vous pouvez spécifier la configuration Kubelet, la configuration du système d’exploitation ou les deux. Lorsque vous ajoutez un pool de nœuds Windows à un cluster existant, vous pouvez spécifier uniquement la configuration Kubelet. Si vous spécifiez une configuration lors de l’ajout d’un pool de nœuds, la configuration s’applique uniquement aux nœuds du nouveau pool de nœuds. Le pool de nœuds conserve les valeurs par défaut pour tous les paramètres non configurés dans le fichier JSON.
  • CustomKubeletConfig est pris en charge pour les pools de nœuds Linux et Windows.
  • Les paramètres kubelet de préversion kubeReserved et de seuil d’éviction sont pris en charge uniquement pour les pools de nœuds Linux et nécessitent l’indicateur de fonctionnalité CustomNodeConfigPreview. Pour connaître les étapes d'inscription, consultez Durcissement des nœuds (version préliminaire) dans AKS.

Créez un nouveau pool de nœuds Linux à l’aide de la commande az aks nodepool add et en spécifiant vos fichiers de configuration pour les paramètres --linux-os-config et --kubelet-config. L’exemple de commande suivant crée un pool de nœuds Linux avec le fichier personnalisé ./linuxkubeletconfig.json :

az aks nodepool add --name <node-pool-name> --cluster-name <cluster-name> --resource-group <resource-group-name> --kubelet-config ./linuxkubeletconfig.json

Confirmer que les paramètres ont été appliqués

Après avoir appliqué une configuration de nœud personnalisée, vous pouvez confirmer que les paramètres ont été appliqués aux nœuds en vous connectant à l’hôte et en vérifiant que des modifications de configuration ont été apportées sur le système de fichiers.

Passer en revue les paramètres de configuration personnalisés pris en charge

Pour obtenir la liste complète des paramètres de configuration de système d’exploitation Kubelet et Linux pris en charge, les valeurs autorisées, les valeurs par défaut et les descriptions, consultez les paramètres de configuration de nœud personnalisés pour AKS.

Considérations relatives aux configurations de nœud personnalisées

Gardez à l’esprit les considérations suivantes lors de la personnalisation de votre configuration de nœud :

  • Les mises à niveau de l’image de nœud réappliquent les configurations de nœud personnalisées.
  • Les opérations de mise à l’échelle horizontale conservent les configurations de nœud personnalisées.
  • AKS n’effectue pas de validation préalable pour chaque paramètre ou valeur de configuration de nœud personnalisée. Vérifiez que les paramètres et valeurs de configuration de nœud personnalisés que vous spécifiez sont pris en charge et valides pour éviter les problèmes potentiels avec vos nœuds de cluster.
  • Les paramètres kubelet kubeReserved de version préliminaire et de seuil d'éviction ne sont disponibles que sur les pools de nœuds Linux. Si vous les configurez, utilisez les plages, unités et règles de jumelage prises en charge dans la référence des paramètres de configuration de nœud personnalisé.
  • Les valeurs par défaut des paramètres de configuration de nœud personnalisés changent souvent avec les nouvelles versions du système d’exploitation. Lorsque vous appliquez des configurations de nœud personnalisées, passez en revue les valeurs par défaut des paramètres que vous configurez pour vous assurer que vos paramètres personnalisés sont appropriés pour la version du système d’exploitation de vos nœuds de cluster.
  • Limitez le nombre de personnes qui ont des autorisations pour modifier la configuration de nœud personnalisé afin d’éviter les conséquences involontaires sur la stabilité et les performances du cluster. Envisagez d’utiliser l’autorisation d’ID Microsoft Entra pour l’API Kubernetes afin de restreindre l’accès aux paramètres de configuration du cluster.
  • Séparez les pools de nœuds avec des configurations personnalisées de ceux sans configurations personnalisées pour éviter des conséquences inattendues sur les charges de travail susceptibles d’être sensibles à certaines modifications de configuration. Par exemple, si vous avez une charge de travail critique qui nécessite des paramètres kubelet spécifiques, envisagez d’isoler cette charge de travail sur un pool de nœuds dédié avec la configuration kubelet personnalisée nécessaire.