Gestione del componente aggiuntivo CoreDNS - Amazon EKS

Gestione del componente aggiuntivo CoreDNS

CoreDNS è un server DNS flessibile ed estensibile che può fungere da cluster DNS Kubernetes. Quando si avvia un cluster Amazon EKS con almeno un nodo, due repliche dell'immagine CoreDNS vengono distribuite per impostazione predefinita, indipendentemente dal numero di nodi distribuiti nel cluster. I pod CoreDNS forniscono la risoluzione dei nomi per tutti i pod del cluster. I pod CoreDNS possono essere distribuiti ai nodi Fargate se il cluster include un Profilo AWS Fargate con uno spazio dei nomi che corrisponde allo spazio per Deployment CoreDNS. Per ulteriori informazioni su CoreDNS, consultare Utilizzo di CoreDNS per l'individuazione dei servizi nella documentazione Kubernetes.

La tabella seguente elenca la versione del componente aggiuntivo CoreDNS implementato con ogni versione del cluster Amazon EKS.

Versione CoreDNS implementata con ogni versione cluster supportata da Amazon EKS
Versione di Kubernetes 1.21 1.20 1.19 1.18 1,17
CoreDNS 1.8.4 1.8.3 1.8.0 1.7.0 1.6.6

Se si dispone di un cluster 1.18 o versione successiva a cui non è stato aggiunto il componente aggiuntivo CoreDNS Amazon EKS, è possibile aggiungerlo utilizzando la procedura descritta in Aggiunta del componente aggiuntivo CoreDNS di Amazon EKS. Se il cluster 1.18 o versione successiva è stato creato utilizzando il AWS Management Console in data 19 maggio 2021 o successiva, il componente aggiuntivo CoreDNS Amazon EKS è già presente nel cluster. Se si è creato il proprio cluster 1.18 o versione successiva utilizzando qualsiasi altro strumento e si desidera utilizzare il componente aggiuntivo CoreDNS Amazon EKS, bisogna aggiungerlo al cluster.

Se si è aggiunto il componente aggiuntivo CoreDNS Amazon EKS al cluster 1.18 o versioni successive, è possibile gestirlo utilizzando le procedure descritte nelle sezioni Aggiornamento del componente aggiuntivo CoreDNS di Amazon EKS e Rimozione del componente aggiuntivo di CoreDNS di Amazon EKS. Per ulteriori informazioni sui componenti aggiuntivi di Amazon EKS, consultare Componenti aggiuntivi Amazon EKS.

Se non è stato aggiunto il componente aggiuntivo CoreDNS Amazon EKS, il componente aggiuntivo CoreDNS autogestito è ancora in esecuzione nel cluster. È possibile aggiornare il componente aggiuntivo autogestito CoreDNS utilizzando la procedura descritta in Aggiornamento del componente aggiuntivo CoreDNS autogestito.

Aggiunta del componente aggiuntivo CoreDNS di Amazon EKS

Selezionare la scheda con il nome dello strumento che si desidera utilizzare per aggiungere il componente aggiuntivo CoreDNS di Amazon EKS al cluster.

Importante

Prima di aggiungere il componente aggiuntivo CoreDNS di Amazon EKS, confermare di non gestire automaticamente le impostazioni che Amazon EKS inizierà a gestire. Per determinare quali impostazioni sono gestite da Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

eksctl

Aggiunta del componente aggiuntivo CoreDNS di Amazon EKS utilizzando eksctl

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente.

eksctl create addon --name coredns --cluster my-cluster --force

Se si rimuove l'opzione --force e tutte le impostazioni del componente aggiuntivo Amazon EKS sono in conflitto con le impostazioni esistenti, l'aggiunta del componente aggiuntivo Amazon EKS non avrà successo. Verrà quindi visualizzato un messaggio di errore con la procedura utile a risolvere il conflitto. Prima di specificare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che gestite dall'utente, poiché tali impostazioni vengono sovrascritte con questa opzione. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

AWS Management Console

Per aggiungere il componente aggiuntivo CoreDNS di Amazon EKS di utilizzando il AWS Management Console

  1. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Clusters (Cluster) Amazon EKS, quindi seleziona il nome del cluster per cui desideri configurare il componente aggiuntivo CoreDNS di Amazon EKS.

  3. Selezionare la scheda Configurazione e quindi scegliere la scheda Componenti aggiuntivi.

  4. Selezionare Aggiungi nuovo.

    1. Selezionare CoreDNS per Nome.

    2. Selezionare la Versione che si desidera usare.

    3. Se si seleziona Sostituire la configurazione esistente per questo componente aggiuntivo nel cluster., qualsiasi impostazione per il componente aggiuntivo esistente può essere sovrascritta con le impostazioni del componente aggiuntivo Amazon EKS. Se non si abilita questa opzione e una qualsiasi delle impostazioni del componente aggiuntivo Amazon EKS è in conflitto con le impostazioni esistenti, l'aggiunta del componente aggiuntivo Amazon EKS non avrà successo. Verrà quindi visualizzato un messaggio di errore con la procedura utile a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che sono gestite dall'utente. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

    4. Selezionare Aggiungi.

AWS CLI

Per aggiungere il componente aggiuntivo CoreDNS di Amazon EKS di utilizzando il AWS CLI

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente.

aws eks create-addon \ --cluster-name my-cluster \ --addon-name coredns \ --resolve-conflicts OVERWRITE

Se si rimuove il --resolve-conflicts OVERWRITE e tutte le impostazioni del componente aggiuntivo Amazon EKS sono in conflitto con le impostazioni esistenti, la creazione del componente aggiuntivo non avrà successo. Verrà quindi visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di specificare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che gestite dall'utente, poiché tali impostazioni vengono sovrascritte con questa opzione. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

Aggiornamento del componente aggiuntivo CoreDNS di Amazon EKS

Procedura di l'aggiornamento del componente aggiuntivo CoreDNS di Amazon EKS. Se il componente aggiuntivo CoreDNS di Amazon EKS non è stato aggiunto completare in alternativa, la procedura in Aggiornamento del componente aggiuntivo CoreDNS autogestito, oppure in Aggiungi il componente aggiuntivo CoreDNS di Amazon EKS. Amazon EKS non aggiorna automaticamente i CoreDNS nel cluster al momento del rilascio delle nuove versioni o dopo l'aggiornamento del cluster ad una nuova versione minore di Kubernetes. Per aggiornare CoreDNS in un cluster esistente, è necessario avviare l'aggiornamento, quindi Amazon EKS aggiornerà automaticamente il componente aggiuntivo Amazon EKS.

eksctl

Per aggiornare il componente aggiuntivo di Amazon EKS utilizzando eksctl

  1. Verificare la versione corrente del componente aggiuntivo di Amazon EKS coredns. Sostituisci my-cluster con il nome del cluster.

    eksctl get addon --name coredns --cluster my-cluster

    Output

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.0-eksbuild.1 ACTIVE 0 v1.8.3-eksbuild.1
  2. Aggiornare il componente aggiuntivo alla versione restituita in UPDATE AVAILABLE nell'output della fase precedente.

    eksctl update addon \ --name coredns \ --version v1.8.3-eksbuild.1 \ --cluster my-cluster \ --force

    Se si rimuove l'opzione --force e tutte le impostazioni del componente aggiuntivo Amazon EKS sono in conflitto con le impostazioni esistenti, l'aggiornamento del componente aggiuntivo Amazon EKS non avrà successo. Verrà quindi visualizzato un messaggio di errore con la procedura utile a risolvere il conflitto. Prima di specificare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che gestite dall'utente, poiché tali impostazioni vengono sovrascritte con questa opzione. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

AWS Management Console

Per aggiornare il componente aggiuntivo CoreDNS di Amazon EKS utilizzando la AWS Management Console

  1. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Clusters (Cluster) Amazon EKS, quindi seleziona il nome del cluster per cui desideri aggiornare il componente aggiuntivo CoreDNS di Amazon EKS.

  3. Selezionare la scheda Configurazione e quindi scegliere la scheda Componenti aggiuntivi.

  4. Selezionare la casella in alto a destra della finestra di dialogo coredns e quindi scegliere Modifica.

    1. Selezionare il pulsante Versione del componente aggiuntivo di Amazon EKS che si desidera utilizzare.

    2. Se si seleziona Sostituire la configurazione esistente per questo componente aggiuntivo nel cluster., qualsiasi impostazione per il componente aggiuntivo esistente può essere sovrascritta con le impostazioni del componente aggiuntivo Amazon EKS. Se non si abilita questa opzione e una qualsiasi delle impostazioni del componente aggiuntivo Amazon EKS è in conflitto con le impostazioni esistenti, l'aggiornamento del componente aggiuntivo a un componente aggiuntivo Amazon EKS non avrà successo. Verrà quindi visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che sono gestite dall'utente. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

    3. Selezionare Update (Aggiorna).

AWS CLI

Per aggiornare il componente aggiuntivo CoreDNS di Amazon EKS utilizzando la AWS CLI

  1. Controllare la versione corrente del componente aggiuntivo di CoreDNS. Sostituire my-cluster con il nome del cluster.

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

    Output:

    1.7.0
  2. Determinazione delle versioni del componente aggiuntivo CoreDNS sono disponibili per la versione del cluster.

    aws eks describe-addon-versions \ --addon-name coredns \ --kubernetes-version 1.19 \ --query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" \ --output text

    Output

    1.8.0 True 1.7.0 False

    La versione con True sotto è la versione predefinita implementata con nuovi cluster.

  3. Aggiornare il componente aggiuntivo alla versione con True restituito nell'output della fase precedente. È inoltre possibile eseguire l'aggiornamento a una versione successiva, se restituito nell'output.

    aws eks update-addon \ --cluster-name my-cluster \ --addon-name coredns \ --addon-version 1.8.0 \ --resolve-conflicts OVERWRITE

    Se si rimuove l'opzione --resolve-conflicts OVERWRITE e tutte le impostazioni del componente aggiuntivo Amazon EKS sono in conflitto con le impostazioni esistenti, l'aggiornamento del componente aggiuntivo non avrà successo. Verrà quindi visualizzato un messaggio di errore con la procedura utile a risolvere il conflitto. Prima di specificare questa opzione, assicurarsi che il componente aggiuntivo Amazon EKS non gestisca le impostazioni che gestite dall'utente, poiché tali impostazioni vengono sovrascritte con questa opzione. Per ulteriori informazioni sulla gestione della configurazione dei componenti aggiuntivi di Amazon EKS, consultare Configurazione di un componente aggiuntivo di Amazon EKS.

Rimozione del componente aggiuntivo di CoreDNS di Amazon EKS

Sono possibili due opzioni per rimuovere un componente aggiuntivo di Amazon EKS:

  • Conservare il software del componente aggiuntivo nel cluster – Questa opzione rimuove la gestione Amazon EKS di tutte le impostazioni e la possibilità per Amazon EKS di notificare gli aggiornamenti e di aggiornare automaticamente il componente aggiuntivo Amazon EKS dopo l'avvio di un aggiornamento. Conserva, tuttavia, il software del componente aggiuntivo nel cluster. Questa opzione rende il componente aggiuntivo come autogestito anziché come un componente aggiuntivo Amazon EKS. Non sono previsti tempi di inattività per il componente aggiuntivo.

  • Rimuovere completamente il software aggiuntivo completamente dal cluster – è necessario rimuovere il componente aggiuntivo Amazon EKS dal cluster solo se non ci sono risorse nel cluster che dipendono dalla funzionalità fornita dal componente aggiuntivo. Dopo aver rimosso il componente aggiuntivo Amazon EKS, è possibile aggiungerlo di nuovo, se lo si desidera.

Se al componente aggiuntivo è associato un account IAM, l'account IAM non viene rimosso.

Selezionare la scheda con il nome dello strumento che si desidera utilizzare per rimuovere il componente aggiuntivo CoreDNS di Amazon EKS dal cluster 1.18 o versioni successive.

eksctl

Per rimuovere il componente aggiuntivo CoreDNS di Amazon EKS utilizzando eksctl

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente. La rimozione di --preserve rimuove il software del componente aggiuntivo dal cluster.

eksctl delete addon --cluster my-cluster --name coredns --preserve
AWS Management Console

Per rimuovere il componente aggiuntivo CoreDNS di Amazon EKS utilizzando la AWS Management Console

  1. Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Nel pannello di navigazione a sinistra, seleziona Clusters (Cluster) Amazon EKS, quindi seleziona il nome del cluster per cui desideri rimuovere il componente aggiuntivo CoreDNS di Amazon EKS.

  3. Selezionare la scheda Configurazione e quindi scegliere la scheda Componenti aggiuntivi.

  4. Seleziona la casella di controllo in alto a destra della casella coredns, quindi scegli Remove (Rimuovi). Digitare coredns e quindi selezionare Rimuovi.

AWS CLI

Per rimuovere il componente aggiuntivo CoreDNS di Amazon EKS utilizzando la AWS CLI

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente. La rimozione di --preserve rimuove il software del componente aggiuntivo dal cluster.

aws eks delete-addon --cluster-name my-cluster --addon-name coredns --preserve

Aggiornamento del componente aggiuntivo CoreDNS autogestito

Se si dispone di un cluster 1.17 o precedente, o di un cluster 1.18 o versione successiva a cui non è stato aggiunto il componente aggiuntivo CoreDNS di Amazon EKS, completare la procedura seguente per aggiornare il componente aggiuntivo. Se è stato aggiunto il componente aggiuntivo CoreDNS di Amazon EKS completare, in alternativa, la procedura in Aggiornamento del componente aggiuntivo CoreDNS di Amazon EKS.

Per aggiornare il componente aggiuntivo CoreDNS gestito utilizzando kubectl

  1. Controllare la versione corrente del componente aggiuntivo di CoreDNS.

    kubectl describe deployment coredns \ --namespace kube-system \ | grep Image \ | cut -d "/" -f 3

    Output:

    coredns:v1.8.0
  2. Se la versione corrente di CoreDNS è 1.5.0 o successiva, ma precedente alla versione elencata nella tabella Versioni CoreDNS, saltare questa fase. Se la versione corrente è precedente alla 1.5.0, è necessario modificare il ConfigMap per CoreDNS per utilizzare il componente aggiuntivo avanzato, anziché il componente aggiuntivo proxy.

    1. Aprire il file tramite il comando seguente:

      kubectl edit configmap coredns -n kube-system
    2. Sostituire proxy nella linea seguente con forward. Salvare il file e uscire dall'editor.

      proxy . /etc/resolv.conf
  3. Se il cluster è stato implementato in origine su Kubernetes 1.17 o su versioni precedenti, potrebbe essere necessario rimuovere un termine interrotto dal manifesto CoreDNS.

    Importante

    È necessario completare questa operazione prima di eseguire l'aggiornamento alla versione CoreDNS 1.7.0, ma è consigliabile completare questo passaggio anche se 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, il manifest non ha la riga di inserimento ed è possibile passare direttamente alla fase successiva per aggiornare CoreDNS. Se viene restituito l'output, è necessario rimuovere la riga di inserimento.

    2. 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
  4. Recuperare l'immagine CoreDNS corrente:

    kubectl get deployment coredns \ --namespace kube-system \ -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
  5. Se stai eseguendo l'aggiornamento a CoreDNS 1.8.3 o successive, aggiungi 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 ...
  6. Aggiorna il componente aggiuntivo CoreDNS sostituendo 602401143452 and us-west-2 con i valori dell'output restituiti in un passaggio precedente. Sostituire 1.8.4 con la Versione di CoreDNS consigliata o versioni successive del cluster:

    kubectl set image --namespace kube-system deployment.apps/coredns \ coredns=602401143452.dkr.ecr.us-west-2.amazonaws.com/eks/coredns:v1.8.4-eksbuild.1