

 **Contribuisci a migliorare questa pagina** 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiornamento del componente aggiuntivo CoreDNS autogestito di Amazon EKS
<a name="coredns-add-on-self-managed-update"></a>

**Importante**  
Consigliamo di aggiungere al cluster il componente aggiuntivo del tipo Amazon EKS anziché quello del tipo autogestito. In caso di dubbi sulle differenze tra i due tipi, consultare la pagina [Componenti aggiuntivi Amazon EKS](eks-add-ons.md). Per ulteriori informazioni sull'aggiunta di un componente aggiuntivo di Amazon EKS al cluster, consulta [Creare un componente aggiuntivo Amazon EKS](creating-an-add-on.md). Se non è possibile utilizzare il componente aggiuntivo di Amazon EKS, si consiglia di segnalare il problema nel [repository GitHub delle roadmap dei container](https://github.com/aws/containers-roadmap/issues).

Prima di iniziare, consultare le considerazioni sull’aggiornamento. Per ulteriori informazioni, consulta [Considerazioni importanti sull’aggiornamento di CoreDNS](managing-coredns.md#coredns-upgrade).

1. Verifica che sul cluster sia installato il componente aggiuntivo del tipo autogestito. Sostituisci *my-cluster* con il nome del tuo cluster.

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

   Se viene restituito un messaggio di errore, sul cluster è installato il componente aggiuntivo del tipo autogestito. Completa i passaggi rimanenti di questa procedura. Se viene restituito il numero di versione, sul cluster è installato il tipo Amazon EKS del componente aggiuntivo. Per aggiornare il componente aggiuntivo del tipo Amazon EKS, utilizzare la procedura descritta alla pagina [Update the CoreDNS Amazon EKS add-on](coredns-add-on-update.md) anziché quella qui indicata. In caso di dubbi sulle differenze tra i tipi di componente aggiuntivo, consultare la pagina [Componenti aggiuntivi Amazon EKS](eks-add-ons.md).

1. Scopri qual è la versione dell'immagine di container attualmente installata sul cluster.

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

   Di seguito viene riportato un output di esempio:

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

1. Se la versione corrente di CoreDNS è `v1.5.0` o successiva, ma precedente alla versione indicata nella tabella [Versioni CoreDNS](managing-coredns.md#coredns-versions), saltare questa fase. Se la versione corrente è precedente alla `1.5.0`, è necessario modificare `ConfigMap` per CoreDNS al fine di utilizzare il componente aggiuntivo avanzato, anziché il componente aggiuntivo proxy.

   1. Aprire il file `ConfigMap` con il comando seguente:

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

   1. Sostituire `proxy` nella linea seguente con `forward`. Salvare il file e uscire dall'editor.

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

1. Se il cluster è stato originariamente implementato su Kubernetes `1.17` o versioni precedenti, potrebbe essere necessario rimuovere una riga obsoleta dal manifesto CoreDNS.
**Importante**  
È necessario completare questo passaggio prima di eseguire l’aggiornamento alla versione `1.7.0` di CoreDNS, ma è preferibile completarlo anche si esegue l’aggiornamento a una versione precedente.

   1. Controllare se il manifesto CoreDNS presenta la riga di inserimento.

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

      Se non viene restituito alcun output, nel manifesto non è presente la riga ed è possibile passare direttamente alla fase successiva per aggiornare CoreDNS. Se viene restituito l'output, è necessario rimuovere la riga di inserimento.

   1. Modificare `ConfigMap` con il seguente comando, rimuovendo la riga nel file che ha la parola `upstream` in esso. Non apportare ulteriori modifiche al file. Una volta rimossa la riga di inserimento, salvare le modifiche.

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

1. Recuperare la versione attuale dell’immagine CoreDNS:

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

   Di seguito viene riportato un output di esempio:

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

1. Se si esegue l’aggiornamento a CoreDNS versione `1.8.3` o successive, è necessario aggiungere l’autorizzazione `endpointslices` al `system:coredns` del `clusterrole` Kubernetes.

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

   Aggiungere le seguenti righe sotto le righe di autorizzazioni esistenti nella sezione `rules` del file.

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

1. Aggiornare il componente aggiuntivo CoreDNS sostituendo*602401143452* e *region-code* con i valori dell’output restituiti in una fase precedente. Sostituire *v1.11.3-eksbuild.1* con la versione CoreDNS indicata nella [tabella delle versioni più recenti](managing-coredns.md#coredns-versions) per la versione 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
   ```

   Di seguito viene riportato un output di esempio:

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

1. Controlla nuovamente la versione dell'immagine del container per accertarti che sia stata aggiornata alla versione specificata nel passaggio precedente.

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

   Di seguito viene riportato un output di esempio:

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