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.
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 contribueront à 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.
Gérer Core DNS for DNS dans les EKS clusters Amazon
Astuce
Avec Amazon EKS Auto Mode, vous n'avez pas besoin d'installer ou de mettre à niveau des modules complémentaires réseau. Le mode automatique inclut des fonctionnalités de mise en réseau des pods et d'équilibrage de charge.
Pour de plus amples informations, veuillez consulter Automatisez l'infrastructure de clusters avec le mode EKS automatique.
CoreDNS est un DNS serveur flexible et extensible qui peut servir de Kubernetes clusterDNS. Lorsque vous lancez un EKS cluster Amazon avec au moins un nœud, 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
Pods fournir une résolution de nom pour tous Pods dans le cluster. Le CoreDNS
Pods peut être déployé sur les nœuds Fargate si votre cluster inclut un profil Fargate avec un espace de noms correspondant à l'espace de noms du CoreDNS deployment
. Pour plus d'informations sur les profils Fargate, consultez. Définissez lequel Pods utiliser AWS Fargate au lancement Pour plus d'informations sur CoreDNS, voir Utilisation de Core DNS pour la découverte de services
CoreDNS versions
Le tableau suivant répertorie la dernière version du type de EKS module complémentaire Amazon pour chaque Kubernetes version.
Version de Kubernetes | CoreDNS version |
---|---|
1,31 |
v1.11.4-eksbuild.1 |
1,30 |
v1.11.4-eksbuild.1 |
1,29 |
v1.11.4-eksbuild.1 |
1,28 |
v1.10.1-eksbuild.17 |
1,27 |
v1.10.1-eksbuild.17 |
1,26 |
v1.9.3-eksbuild.21 |
1,25 |
v1.9.3-eksbuild.21 |
1,24 |
v1.9.3-eksbuild.21 |
1,23 |
v1.8.7-eksbuild.20 |
Important
Si vous gérez vous-même ce module complémentaire, les versions du tableau ne sont peut-être pas les mêmes que les versions autogérées disponibles. Pour plus d'informations sur la mise à jour du type autogéré de ce module complémentaire, consultez la rubrique Mettez à jour le CoreDNS Module complémentaire EKS autogéré Amazon.
Important CoreDNS considérations relatives aux mises à niveau
-
Pour améliorer la stabilité et la disponibilité du CoreDNS Deployment, versions
v1.9.3-eksbuild.6
et versions ultérieures etv1.10.1-eksbuild.3
sont déployés avec unPodDisruptionBudget
. Si vous avez déployé une version existantePodDisruptionBudget
, votre mise à niveau vers ces versions risque d'échouer. Si la mise à niveau échoue, l'exécution de l'une des tâches suivantes devrait résoudre le problème :-
Lorsque vous effectuez la mise à niveau du EKS module complémentaire Amazon, choisissez de remplacer les paramètres existants comme option de résolution des conflits. Si vous avez défini d'autres paramètres personnalisés pour le Deployment, assurez-vous de sauvegarder vos paramètres avant de procéder à la mise à niveau afin de pouvoir réappliquer vos autres paramètres personnalisés après la mise à niveau.
-
Supprimez votre version existante
PodDisruptionBudget
et réessayez d'effectuer la mise à niveau.
-
-
Dans les versions EKS complémentaires
v1.9.3-eksbuild.3
et ultérieuresv1.10.1-eksbuild.6
et ultérieures, le CoreDNS Deployment définit lereadinessProbe
pour utiliser le/ready
point de terminaison. Ce point de terminaison est activé dans le fichierCorefile
de configuration pour CoreDNS.Si vous utilisez un plugin personnalisé
Corefile
, vous devez ajouter leready
plugin à la configuration, afin que le/ready
point de terminaison soit actif dans CoreDNS pour que la sonde soit utilisée. -
Dans les versions EKS complémentaires
v1.9.3-eksbuild.7
v1.10.1-eksbuild.4
et ultérieures, vous pouvez modifier lePodDisruptionBudget
. Vous pouvez modifier le module complémentaire et modifier ces paramètres dans les paramètres de configuration facultatifs à l'aide des champs de l'exemple suivant. Cet exemple montre la valeurPodDisruptionBudget
par défaut.{ "podDisruptionBudget": { "enabled": true, "maxUnavailable": 1 } }
Vous pouvez définir
maxUnavailable
ouminAvailable
, mais vous ne pouvez pas définir les deux en une seule foisPodDisruptionBudget
. Pour plus d'informationsPodDisruptionBudgets
, consultez la section Spécifier un PodDisruptionBudgetdans la documentation de Kubernetes. Notez que si vous définissez sur
enabled
false
, lePodDisruptionBudget
n'est pas supprimé. Après avoir défini ce champ surfalse
, vous devez supprimer l'objetPodDisruptionBudget
. De même, si vous modifiez le module complémentaire pour utiliser une ancienne version du module complémentaire (rétrogradez le module complémentaire) après la mise à niveau vers une version avec unPodDisruptionBudget
, celui-ciPodDisruptionBudget
n'est pas supprimé. Pour supprimer lePodDisruptionBudget
, exécutez la commande suivante :kubectl delete poddisruptionbudget coredns -n kube-system
-
Dans les versions EKS complémentaires
v1.10.1-eksbuild.5
et ultérieures, modifiez la tolérance par défaut denode-role.kubernetes.io/master:NoSchedule
à pour vous conformernode-role.kubernetes.io/control-plane:NoSchedule
à KEP 2067. Pour plus d'informations sur KEP 2067, voir KEP-2067 : Renommer l'étiquette « master » de kubeadm et altérer les propositions d'amélioration de Kubernetes () surKEPs GitHub. Dans les versions EKS complémentaires
v1.8.7-eksbuild.8
v1.9.3-eksbuild.9
et ultérieures, les deux tolérances sont définies pour être compatibles avec chaque Kubernetes version. -
Dans les versions EKS complémentaires
v1.9.3-eksbuild.11
v1.10.1-eksbuild.7
et ultérieures, le CoreDNS Deployment définit une valeur par défaut pourtopologySpreadConstraints
. La valeur par défaut garantit que CoreDNS Pods sont répartis entre les zones de disponibilité si des nœuds sont disponibles dans plusieurs zones de disponibilité. Vous pouvez définir une valeur personnalisée qui sera utilisée à la place de la valeur par défaut. La valeur par défaut est la suivante :topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: k8s-app: kube-dns
CoreDNSv1.11
considérations de mise à niveau
-
Dans les versions EKS complémentaires
v1.11.1-eksbuild.4
et ultérieures, l'image du conteneur est basée sur une image de base minimalegérée par Amazon EKS Distro, qui contient un minimum de packages et ne possède pas de shell. Pour plus d'informations, consultez Amazon EKS Distro . L'utilisation et le dépannage du CoreDNS l'image reste la même.