Mettre à jour le module complémentaire CoreDNS Amazon EKS autogéré - Amazon EKS

Aidez à améliorer cette page

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

Mettre à jour le module complémentaire CoreDNS Amazon EKS autogéré

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

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.

  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, 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.

  2. 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
  3. 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, 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
    2. Remplacez proxy dans la ligne suivante par forward. Enregistrez le fichier et quittez l'éditeur.

      proxy . /etc/resolv.conf
  4. 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.

    2. 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
  5. 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
  6. 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 [...]
  7. 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 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
  8. 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