

 **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 sur** 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.

# Mettre à jour le module complémentaire CoreDNS Amazon EKS autogéré
<a name="coredns-add-on-self-managed-update"></a>

**Important**  
Nous recommandons d'ajouter le type Amazon EKS du module complémentaire à votre cluster au lieu d'utiliser le type autogéré du module complémentaire. Si la différence entre les types ne vous est pas familière, consultez [Modules complémentaires Amazon EKS](eks-add-ons.md). Pour plus d'informations sur l'ajout d'un module complémentaire Amazon EKS à votre cluster, consultez [Créer un module complémentaire Amazon EKS](creating-an-add-on.md). Si vous ne pouvez pas utiliser le module complémentaire Amazon EKS, nous vous encourageons à signaler un problème expliquant pourquoi vous ne pouvez pas le faire dans le [référentiel GitHub de la feuille de route des conteneurs](https://github.com/aws/containers-roadmap/issues).

Avant de commencer, consultez les considérations relatives à la mise à niveau. Pour de plus amples informations, consultez [Considérations importantes concernant la mise à niveau de CoreDNS](managing-coredns.md#coredns-upgrade).

1. Vérifiez que le type autogéré du module complémentaire est installé sur votre cluster. 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 message d'erreur est renvoyé, le type autogéré du module complémentaire est installé sur votre cluster. Suivez les étapes restantes de cette procédure. Si un numéro de version est renvoyé, le type de module complémentaire Amazon EKS est installé sur votre cluster. Pour mettre à jour le type Amazon EKS du module complémentaire, suivez la procédure décrite dans [Mettre à jour le module complémentaire CoreDNS Amazon EKS](coredns-add-on-update.md), plutôt que d’utiliser cette procédure. Si vous ne connaissez pas les différences entre les types d’extensions, consultez [Modules complémentaires Amazon EKS](eks-add-ons.md).

1. Découvrez quelle version de l'image de conteneur est actuellement installée sur votre cluster.

   ```
   kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
   ```

   L'exemple qui suit illustre un résultat.

   ```
   v1.8.7-eksbuild.2
   ```

1. Si votre version actuelle de CoreDNS est `v1.5.0` ou ultérieure, mais antérieure à la version indiquée dans le tableau des [versions de CoreDNS](managing-coredns.md#coredns-versions), ignorez cette étape. Si votre version actuelle est antérieure à la version `1.5.0`, vous devez modifier le `ConfigMap` pour que CoreDNS utilise le module complémentaire, plutôt que le module complémentaire proxy.

   1. Ouvrez le fichier `ConfigMap` à l’aide de la commande suivante.

      ```
      kubectl edit configmap coredns -n kube-system
      ```

   1. Remplacez `proxy` dans la ligne suivante par `forward`. Enregistrez le fichier et quittez l'éditeur.

      ```
      proxy . /etc/resolv.conf
      ```

1. Si vous avez initialement déployé votre cluster sur Kubernetes `1.17` ou une version précédente, vous devrez peut-être supprimer une ligne interrompue de votre manifeste CoreDNS.
**Important**  
Vous devez effectuer cette étape avant de passer à la version CoreDNS `1.7.0`, mais il est recommandé de la faire même si vous passez à une version antérieure.

   1. Vérifiez si votre manifeste CoreDNS possède la ligne.

      ```
      kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream
      ```

      Si aucune sortie n’est renvoyée, votre manifeste n’a pas la ligne et vous pouvez passer à l’étape suivante pour mettre à jour CoreDNS. Si la sortie est renvoyée, vous devez supprimer la ligne.

   1. Modifiez la `ConfigMap` en utilisant la commande suivante, en supprimant la ligne dans le fichier contenant le mot `upstream`. Ne modifiez rien d'autre dans le fichier. Une fois la ligne supprimée, enregistrez les modifications.

      ```
      kubectl edit configmap coredns -n kube-system -o yaml
      ```

1. Récupérez la version actuelle de votre image CoreDNS :

   ```
   kubectl describe deployment coredns -n kube-system | grep Image
   ```

   L'exemple qui suit illustre un résultat.

   ```
   602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2
   ```

1. Si vous effectuez une mise à jour vers CoreDNS `1.8.3` ou une version ultérieure, vous devez ajouter l’autorisation `endpointslices` à `system:coredns` Kubernetes `clusterrole`.

   ```
   kubectl edit clusterrole system:coredns -n kube-system
   ```

   Ajoutez les lignes suivantes sous les lignes d'autorisation existantes dans la section `rules` du fichier.

   ```
   [...]
   - apiGroups:
     - discovery.k8s.io
     resources:
     - endpointslices
     verbs:
     - list
     - watch
   [...]
   ```

1. Mettez à jour le module complémentaire CoreDNS en remplaçant *602401143452* et le *code régional* par les valeurs issues du résultat obtenu à l’étape précédente. Remplacez *v1.11.3-eksbuild.1* par la version CoreDNS indiquée dans le [tableau des dernières versions](managing-coredns.md#coredns-versions) pour votre version Kubernetes.

   ```
   kubectl set image deployment.apps/coredns -n kube-system  coredns=602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1
   ```

   L'exemple qui suit illustre un résultat.

   ```
   deployment.apps/coredns image updated
   ```

1. Vérifiez à nouveau la version d'image de conteneur pour confirmer qu'elle a été mise à jour vers la version que vous avez spécifiée à l'étape précédente.

   ```
   kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3
   ```

   L'exemple qui suit illustre un résultat.

   ```
   v1.11.3-eksbuild.1
   ```