Échelle CoreDNSPods pour un DNS trafic élevé - Amazon EKS

Aidez à améliorer cette page

Vous souhaitez contribuer à ce guide de l'utilisateur ? Faites défiler cette page vers le bas et sélectionnez Modifier cette page sur GitHub. Vos contributions aideront à améliorer notre guide de l'utilisateur pour tous.

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.

Échelle CoreDNSPods pour un DNS trafic élevé

Lorsque vous lancez un EKS cluster Amazon avec au moins un nœud, Deployment de deux répliques du CoreDNS les images sont déployées par défaut, quel que soit le nombre de nœuds déployés dans votre cluster. Le CoreDNS Les pods fournissent une résolution de nom pour tous les pods du cluster. Les applications utilisent la résolution de noms pour se connecter aux pods et aux services du cluster ainsi qu'aux services extérieurs au cluster. À mesure que le nombre de demandes de résolution de noms (requêtes) provenant des pods augmente, le CoreDNS les modules peuvent être débordés et ralentir, et rejeter les demandes qu'ils ne peuvent pas traiter.

Pour faire face à l'augmentation de la charge sur le CoreDNS pods, envisagez un système de mise à l'échelle automatique pour CoreDNS. Amazon EKS peut gérer le dimensionnement automatique du CoreDNS Déploiement dans la version EKS complémentaire de CoreDNS. Ce CoreDNS autoscaler surveille en permanence l'état du cluster, y compris le nombre de nœuds et CPU de cœurs. Sur la base de ces informations, le contrôleur adaptera dynamiquement le nombre de répliques du CoreDNS déploiement dans un EKS cluster. Cette fonctionnalité fonctionne pour CoreDNS v1.9et EKS version finale 1.25 et versions ultérieures. Pour plus d'informations sur les versions compatibles avec CoreDNS Mise à l'échelle automatique, voir la section suivante.

Nous recommandons d'utiliser cette fonctionnalité en conjonction avec d'autres bonnes pratiques de mise à l'échelle automatique des EKS clusters afin d'améliorer la disponibilité globale des applications et l'évolutivité des clusters.

Prérequis

Pour qu'Amazon EKS puisse faire évoluer votre CoreDNS déploiement, il y a trois prérequis :

  • Vous devez utiliser la version EKScomplémentaire de CoreDNS.

  • Votre cluster doit exécuter au moins les versions de cluster et les versions de plate-forme minimales.

  • Votre cluster doit exécuter au moins la version minimale du EKS module complémentaire de CoreDNS.

Version minimale du cluster

Mise à l'échelle automatique de CoreDNS est effectué par un nouveau composant dans le plan de contrôle du cluster, géré par AmazonEKS. Pour cette raison, vous devez mettre à niveau votre cluster vers une EKS version qui prend en charge la version minimale de plate-forme contenant le nouveau composant.

Un nouveau EKS cluster Amazon. Pour en déployer un, consultez Commencez avec Amazon EKS. Le cluster doit être Kubernetes version 1.25 ou ultérieure. Le cluster doit exécuter l'un des Kubernetes versions et versions de plate-forme répertoriées dans le tableau suivant ou dans une version ultérieure. Notez que tout Kubernetes et les versions de plate-forme ultérieures à celles répertoriées sont également prises en charge. Vous pouvez vérifier votre Kubernetes version en remplaçant my-cluster dans la commande suivante avec le nom de votre cluster, puis exécutez la commande modifiée :

aws eks describe-cluster --name my-cluster --query cluster.version --output text
Kubernetes version Version de plateforme

1.29.3

eks.7

1.28.8

eks.13

1.27.12

eks.17

1.26.15

eks.18

1.25.16

eks.19

Note

Toutes les versions ultérieures de la plateforme Kubernetes les versions sont également prises en charge, par exemple Kubernetes version 1.30 à partir de eks.1 et vers.

Version minimale EKS du module complémentaire

Kubernetes version 1.29 1.28 1.27 1.26 1.25
v1.11.1-eksbuild.9 v1.10.1-eksbuild.11 v1.10.1-eksbuild.11 v1.9.3-eksbuild.15 v1.9.3-eksbuild.15
  1. Assurez-vous que votre cluster est égal ou supérieur à la version minimale du cluster.

    Amazon EKS met à niveau les clusters entre les versions d'une même plateforme Kubernetes version automatique, et vous ne pouvez pas démarrer ce processus vous-même. Au lieu de cela, vous pouvez mettre à niveau votre cluster vers le suivant Kubernetes version, et le cluster sera mis à niveau vers cette version K8s et la dernière version de la plate-forme. Par exemple, si vous effectuez une mise à niveau depuis 1.25 vers1.26, le cluster sera mis à niveau vers1.26.15 eks.18.

    New Kubernetes les versions introduisent parfois des modifications importantes. Par conséquent, nous vous recommandons de tester le comportement de vos applications en utilisant un cluster distinct du nouveau Kubernetes version avant de mettre à jour vos clusters de production.

    Pour mettre à niveau un cluster vers un nouveau Kubernetes version, suivez la procédure décrite dansMettre à jour le cluster existant vers la nouvelle version de Kubernetes.

  2. Assurez-vous que vous disposez du EKSmodule complémentaire pour CoreDNS, et non l'autogéré CoreDNS Déploiement.

    Selon l'outil avec lequel vous avez créé votre cluster, il est possible que le type de EKS module complémentaire Amazon ne soit pas actuellement installé sur votre cluster. Pour savoir quel type de module complémentaire est installé sur votre cluster, vous pouvez exécuter la commande suivante. Remplacez my-cluster par le nom de votre cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text

    Si un numéro de version est renvoyé, le EKS type Amazon du module complémentaire est installé sur votre cluster et vous pouvez passer à l'étape suivante. Si une erreur est renvoyée, le EKS type Amazon du module complémentaire n'est pas installé sur votre cluster. Effectuez les étapes restantes de la procédure Créez le CoreDNS EKSModule complémentaire Amazon pour remplacer la version autogérée par le EKS module complémentaire Amazon.

  3. Assurez-vous que votre EKS module complémentaire pour CoreDNS est d'une version identique ou supérieure à la version minimale du EKS module complémentaire.

    Déterminez la version du module complémentaire actuellement installée sur votre cluster. Vous pouvez enregistrer AWS Management Console ou exécuter la commande suivante :

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    L'exemple qui suit illustre un résultat.

    v1.10.1-eksbuild.13

    Comparez cette version avec la version minimale du EKS module complémentaire de la section précédente. Si nécessaire, mettez à niveau le EKS module complémentaire vers une version supérieure en suivant la procédureMettez à jour le CoreDNS EKSModule complémentaire Amazon.

  4. Ajoutez la configuration de mise à l'échelle automatique aux paramètres de configuration facultatifs du EKS module complémentaire.

    1. Ouvrez la EKS console Amazon à l'adresse https://console.aws.amazon.com/eks/home#/clusters.

    2. Dans le panneau de navigation de gauche, sélectionnez Clusters, puis sélectionnez le nom du cluster pour lequel vous souhaitez configurer le module complémentaire.

    3. Choisissez l'onglet Modules complémentaires.

    4. Cochez la case en haut à droite du CoreDNS boîte complémentaire, puis choisissez Modifier.

    5. Sur le Configure CoreDNSpage :

      1. Sélectionnez la version que vous souhaitez utiliser. Nous vous recommandons de conserver la même version que celle de l'étape précédente et de mettre à jour la version et la configuration dans le cadre d'actions distinctes.

      2. Sélectionnez Paramètres de configuration facultatifs.

      3. Entrez la JSON clé "autoscaling": et la valeur d'un JSON objet imbriqué avec une clé "enabled": et une valeur true dans Valeurs de configuration. Le texte obtenu doit être un JSON objet valide. Si cette clé et cette valeur sont les seules données de la zone de texte, entourez-les d'accolades {}. L'exemple suivant montre que la mise à l'échelle automatique est activée :

        { "autoScaling": { "enabled": true } }
      4. (Facultatif) Vous pouvez fournir des valeurs minimales et maximales que la mise à l'échelle automatique peut redimensionner le nombre de CoreDNS cosses pour.

        L'exemple suivant montre que la mise à l'échelle automatique est activée et que toutes les clés facultatives ont des valeurs. Nous recommandons que le nombre minimum de CoreDNS le nombre de pods est toujours supérieur à 2 pour garantir la résilience du DNS service dans le cluster.

        { "autoScaling": { "enabled": true, "minReplicas": 2, "maxReplicas": 10 } }
    6. Pour appliquer la nouvelle configuration en remplaçant le CoreDNS modules, choisissez Enregistrer les modifications.

      Amazon EKS applique les modifications aux EKS modules complémentaires en déployant le Kubernetes Déploiement pour CoreDNS. Vous pouvez suivre l'état du déploiement dans l'historique des mises à jour du module complémentaire dans AWS Management Console et aveckubectl rollout status deployment/coredns --namespace kube-system.

      kubectl rolloutpossède les commandes suivantes :

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      Si le déploiement prend trop de temps, Amazon EKS annulera le déploiement et un message indiquant le type de mise à jour de l'extension et le statut Échec sera ajouté à l'historique des mises à jour de l'extension. Pour étudier tout problème, commencez par l'historique du déploiement et exécutez kubectl logs sur un CoreDNS pod pour voir les journaux de CoreDNS.

  5. Si la nouvelle entrée dans l'historique des mises à jour a le statut Réussite, cela signifie que le déploiement est terminé et que le module complémentaire utilise la nouvelle configuration dans tous les CoreDNS gousses. Lorsque vous modifiez le nombre de nœuds et de CPU cœurs de nœuds dans le cluster, Amazon EKS adapte le nombre de répliques du CoreDNS déploiement.

  1. Assurez-vous que votre cluster est égal ou supérieur à la version minimale du cluster.

    Amazon EKS met à niveau les clusters entre les versions d'une même plateforme Kubernetes version automatique, et vous ne pouvez pas démarrer ce processus vous-même. Au lieu de cela, vous pouvez mettre à niveau votre cluster vers le suivant Kubernetes version, et le cluster sera mis à niveau vers cette version K8s et la dernière version de la plate-forme. Par exemple, si vous effectuez une mise à niveau depuis 1.25 vers1.26, le cluster sera mis à niveau vers1.26.15 eks.18.

    New Kubernetes les versions introduisent parfois des modifications importantes. Par conséquent, nous vous recommandons de tester le comportement de vos applications en utilisant un cluster distinct du nouveau Kubernetes version avant de mettre à jour vos clusters de production.

    Pour mettre à niveau un cluster vers un nouveau Kubernetes version, suivez la procédure décrite dansMettre à jour le cluster existant vers la nouvelle version de Kubernetes.

  2. Assurez-vous que vous disposez du EKSmodule complémentaire pour CoreDNS, et non l'autogéré CoreDNS Déploiement.

    Selon l'outil avec lequel vous avez créé votre cluster, il est possible que le type de EKS module complémentaire Amazon ne soit pas actuellement installé sur votre cluster. Pour savoir quel type de module complémentaire est installé sur votre cluster, vous pouvez exécuter la commande suivante. Remplacez my-cluster par le nom de votre cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output text

    Si un numéro de version est renvoyé, le EKS type Amazon du module complémentaire est installé sur votre cluster. Si une erreur est renvoyée, le EKS type Amazon du module complémentaire n'est pas installé sur votre cluster. Effectuez les étapes restantes de la procédure Créez le CoreDNS EKSModule complémentaire Amazon pour remplacer la version autogérée par le EKS module complémentaire Amazon.

  3. Assurez-vous que votre EKS module complémentaire pour CoreDNS est d'une version identique ou supérieure à la version minimale du EKS module complémentaire.

    Déterminez la version du module complémentaire actuellement installée sur votre cluster. Vous pouvez enregistrer AWS Management Console ou exécuter la commande suivante :

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    L'exemple qui suit illustre un résultat.

    v1.10.1-eksbuild.13

    Comparez cette version avec la version minimale du EKS module complémentaire de la section précédente. Si nécessaire, mettez à niveau le EKS module complémentaire vers une version supérieure en suivant la procédureMettez à jour le CoreDNS EKSModule complémentaire Amazon.

  4. Ajoutez la configuration de mise à l'échelle automatique aux paramètres de configuration facultatifs du EKS module complémentaire.

    Exécutez la AWS CLI commande suivante. my-clusterRemplacez-le par le nom de votre cluster et le IAM rôle ARN par le rôle que vous utilisez.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}}'

    Amazon EKS applique les modifications aux EKS modules complémentaires en déployant le Kubernetes Déploiement pour CoreDNS. Vous pouvez suivre l'état du déploiement dans l'historique des mises à jour du module complémentaire dans AWS Management Console et aveckubectl rollout status deployment/coredns --namespace kube-system.

    kubectl rolloutpossède les commandes suivantes :

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    Si le déploiement prend trop de temps, Amazon EKS annulera le déploiement et un message indiquant le type de mise à jour de l'extension et le statut Échec sera ajouté à l'historique des mises à jour de l'extension. Pour étudier tout problème, commencez par l'historique du déploiement et exécutez kubectl logs sur un CoreDNS pod pour voir les journaux de CoreDNS.

  5. (Facultatif) Vous pouvez fournir des valeurs minimales et maximales que la mise à l'échelle automatique peut redimensionner le nombre de CoreDNS cosses pour.

    L'exemple suivant montre que la mise à l'échelle automatique est activée et que toutes les clés facultatives ont des valeurs. Nous recommandons que le nombre minimum de CoreDNS le nombre de pods est toujours supérieur à 2 pour garantir la résilience du DNS service dans le cluster.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true,"minReplicas":2,"maxReplicas":10}}'
  6. Vérifiez l'état de la mise à jour du module complémentaire en exécutant la commande suivante :

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns \

    Si vous voyez cette ligne :"status": "ACTIVE", le déploiement est terminé et le module complémentaire utilise la nouvelle configuration dans tous les CoreDNS gousses. Lorsque vous modifiez le nombre de nœuds et de CPU cœurs de nœuds dans le cluster, Amazon EKS adapte le nombre de répliques du CoreDNS déploiement.