Scalabilità automatica CoreDNS - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

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

Scalabilità automatica CoreDNS

Quando avvii un cluster Amazon EKS con almeno un Deployment nodo, per impostazione predefinita vengono distribuite due repliche dell'CoreDNSimmagine, indipendentemente dal numero di nodi distribuiti nel cluster. I CoreDNS Pod forniscono la risoluzione dei nomi per tutti i Pod del cluster. Le applicazioni utilizzano la risoluzione dei nomi per connettersi ai pod e ai servizi del cluster, nonché per connettersi ai servizi esterni al cluster. Con l'aumentare del numero di richieste di risoluzione dei nomi (interrogazioni) da parte dei pod, i CoreDNS pod possono diventare sovraccarichi e rallentare e rifiutare le richieste che i pod non sono in grado di gestire.

Per gestire l'aumento del carico sui CoreDNS pod, prendi in considerazione un sistema di scalabilità automatica per. CoreDNS Amazon EKS può gestire la scalabilità automatica della CoreDNS distribuzione nella versione aggiuntiva EKS di. CoreDNS Questo CoreDNS autoscaler monitora continuamente lo stato del cluster, incluso il numero di nodi e core della CPU. Sulla base di tali informazioni, il controller adatterà dinamicamente il numero di repliche dell'implementazione in un cluster EKS. CoreDNS Questa funzionalità è disponibile per tutte le versioni di rilascio di EKS CoreDNS v1.9 1.25 e successive. Per ulteriori informazioni sulle versioni compatibili con CoreDNS Autoscaling, consulta la sezione seguente.

Si consiglia di utilizzare questa funzionalità insieme ad altre best practice di EKS Cluster Autoscaling per migliorare la disponibilità complessiva delle applicazioni e la scalabilità del cluster.

Prerequisiti

Affinché Amazon EKS possa scalare la tua CoreDNS distribuzione, sono necessari tre prerequisiti:

  • È necessario utilizzare la versione aggiuntiva EKS di. CoreDNS

  • Il cluster deve eseguire almeno le versioni minime del cluster e delle versioni della piattaforma.

  • Il cluster deve eseguire almeno la versione minima del componente aggiuntivo EKS diCoreDNS.

Versione minima del cluster

La scalabilità automatica di CoreDNS viene eseguita da un nuovo componente nel piano di controllo del cluster, gestito da Amazon EKS. Per questo motivo, è necessario aggiornare il cluster a una versione EKS che supporti la versione minima della piattaforma che include il nuovo componente.

Un nuovo cluster Amazon EKS. Per implementarne uno, consulta Guida introduttiva ad Amazon EKS. Il cluster deve essere Kubernetes versione 1.25 o successiva. Il cluster deve eseguire una delle Kubernetes versioni e delle versioni della piattaforma elencate nella tabella seguente o una versione successiva. Sono supportate anche tutte le versioni di Kubernetes e della piattaforma successive a quelle elencate. È possibile verificare la versione corrente di Kubernetes sostituendo my-cluster nel seguente comando con il nome del cluster e quindi eseguendo il comando modificato:

aws eks describe-cluster --name my-cluster --query cluster.version --output text

Versione Kubernetes

Versione della piattaforma

1.29.3

eks.7

1.28.8

eks.13

1.27.12

eks.17

1.26.15

eks.18

1.25.16

eks.19

Nota

Sono supportate anche tutte Kubernetes le versioni successive della piattaforma, ad esempio 1.30 le Kubernetes eks.1 versioni successive.

Versione minima del componente aggiuntivo EKS

Versione Kubernetes 1.29 1.28 1.27 1.26 1.25
v1.11.1-eksbuild.9 v1.10.1-eksbuild.11 v1.10.1-eksbuild.11 v1.9.3-eksbuild.15 v1.9.3-eksbuild.15

Configurazione della scalabilità CoreDNS automatica in AWS Management Console

  1. Assicurati che la versione del cluster sia uguale o superiore alla versione minima del cluster.

    Amazon EKS aggiorna automaticamente i cluster tra le versioni della stessa Kubernetes versione della piattaforma e non puoi avviare questo processo da solo. Puoi invece aggiornare il cluster alla Kubernetes versione successiva e il cluster verrà aggiornato alla versione K8s e alla versione più recente della piattaforma. Ad esempio, se esegui l'aggiornamento da 1.25 a1.26, il cluster verrà aggiornato a. 1.26.15 eks.18

    Le nuove versioni di Kubernetes hanno introdotto modifiche significative. Pertanto, si consiglia di testare il comportamento delle applicazioni utilizzando un cluster separato della nuova Kubernetes versione prima di aggiornare i cluster di produzione.

    Per aggiornare un cluster a una nuova Kubernetes versione, segui la procedura riportata inAggiornamento della versione di Kubernetes del cluster Amazon EKS.

  2. Assicurati di avere il componente aggiuntivo EKS perCoreDNS, non la distribuzione autogestitaCoreDNS.

    A seconda dello strumento con cui hai creato il cluster, al momento potresti non avere il componente aggiuntivo del tipo Amazon EKS installato sul cluster. Per vedere quale tipo di componente aggiuntivo è installato nel cluster, è possibile eseguire il comando seguente. Sostituisci my-cluster con il nome del cluster.

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

    Se viene restituito un numero di versione, nel cluster è installato il tipo di componente aggiuntivo Amazon EKS e puoi continuare con il passaggio successivo. Se viene restituito un errore, sul cluster non è installato il componente aggiuntivo del tipo Amazon EKS. Completa i passaggi rimanenti della procedura Creare il componente aggiuntivo di Amazon EKS per sostituire la versione autogestita con il componente aggiuntivo Amazon EKS.

  3. Assicurati che il tuo componente aggiuntivo CoreDNS EKS per abbia una versione uguale o superiore alla versione minima del componente aggiuntivo EKS.

    Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. Puoi effettuare il check-in AWS Management Console o eseguire il seguente comando:

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    Di seguito viene riportato un output di esempio:

    v1.10.1-eksbuild.11

    Confrontate questa versione con la versione minima del componente aggiuntivo EKS nella sezione precedente. Se necessario, aggiorna il componente aggiuntivo EKS a una versione superiore seguendo la procedura. Aggiornamento del componente aggiuntivo di Amazon EKS

  4. Aggiungete la configurazione di scalabilità automatica alle impostazioni di configurazione opzionali del componente aggiuntivo EKS.

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

    2. Nel riquadro di navigazione a sinistra, seleziona Cluster, quindi seleziona il nome del cluster per cui configurare il componente aggiuntivo.

    3. Seleziona la scheda Componenti aggiuntivi.

    4. Seleziona la casella in alto a destra del riquadro del CoreDNS componente aggiuntivo, quindi scegli Modifica.

    5. Nella CoreDNS pagina Configura:

      1. seleziona la Version (Versione) da utilizzare. Ti consigliamo di mantenere la stessa versione del passaggio precedente e di aggiornare la versione e la configurazione con azioni separate.

      2. Scegli Impostazioni di configurazione facoltative.

      3. Inserisci la chiave JSON "autoscaling": e il valore di un oggetto JSON annidato con una chiave "enabled": e un valore true in Valori di configurazione. Il testo risultante deve essere un oggetto JSON valido. Se questa chiave e questo valore sono gli unici dati nella casella di testo, racchiudi la chiave e il valore tra parentesi graffe {}. L'esempio seguente mostra che la scalabilità automatica è abilitata:

        { "autoScaling": { "enabled": true } }
      4. (Facoltativo) È possibile fornire valori minimi e massimi a cui la scalabilità automatica può scalare il numero di pod. CoreDNS

        L'esempio seguente mostra che la scalabilità automatica è abilitata e tutte le chiavi opzionali hanno dei valori. Si consiglia che il numero minimo di CoreDNS pod sia sempre maggiore di 2 per garantire la resilienza del servizio DNS nel cluster.

        { "autoScaling": { "enabled": true, "minReplicas": 2, "maxReplicas": 10 } }
    6. Per applicare la nuova configurazione sostituendo i CoreDNS pod, scegli Salva modifiche.

      Amazon EKS applica le modifiche ai componenti aggiuntivi EKS utilizzando un'implementazione di Kubernetes Deployment for CoredNS. Puoi tenere traccia dello stato dell'implementazione nella cronologia degli aggiornamenti del componente aggiuntivo in e con. AWS Management Console kubectl rollout status deployment/coredns --namespace kube-system

      kubectl rolloutha i seguenti comandi:

      $ kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

      Se l'implementazione richiede troppo tempo, Amazon EKS annullerà l'implementazione e un messaggio con il tipo di Addon Update e lo stato Failed verrà aggiunto alla cronologia degli aggiornamenti del componente aggiuntivo. Per indagare su eventuali problemi, inizia dalla cronologia dell'implementazione ed eseguilo kubectl logs su un CoreDNS pod per visualizzare i log di. CoreDNS

  5. Se la nuova voce nella cronologia degli aggiornamenti ha lo stato Riuscito, l'implementazione è stata completata e il componente aggiuntivo utilizza la nuova configurazione in tutti i pod. CoreDNS Man mano che modifichi il numero di nodi e core di CPU dei nodi nel cluster, Amazon EKS ridimensiona il numero di repliche della distribuzione. CoreDNS

Configurazione della scalabilità automatica CoreDNS in AWS Command Line Interface

  1. Assicurati che la versione del cluster sia uguale o superiore alla versione minima del cluster.

    Amazon EKS aggiorna automaticamente i cluster tra le versioni della stessa Kubernetes versione della piattaforma e non puoi avviare questo processo da solo. Puoi invece aggiornare il cluster alla Kubernetes versione successiva e il cluster verrà aggiornato alla versione K8s e alla versione più recente della piattaforma. Ad esempio, se esegui l'aggiornamento da 1.25 a1.26, il cluster verrà aggiornato a. 1.26.15 eks.18

    Le nuove versioni di Kubernetes hanno introdotto modifiche significative. Pertanto, si consiglia di testare il comportamento delle applicazioni utilizzando un cluster separato della nuova Kubernetes versione prima di aggiornare i cluster di produzione.

    Per aggiornare un cluster a una nuova Kubernetes versione, segui la procedura riportata inAggiornamento della versione di Kubernetes del cluster Amazon EKS.

  2. Assicurati di avere il componente aggiuntivo EKS perCoreDNS, non la distribuzione autogestitaCoreDNS.

    A seconda dello strumento con cui hai creato il cluster, al momento potresti non avere il componente aggiuntivo del tipo Amazon EKS installato sul cluster. Per vedere quale tipo di componente aggiuntivo è installato nel cluster, è possibile eseguire il comando seguente. Sostituisci my-cluster con il nome del cluster.

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

    Se viene restituito il numero di versione, sul cluster è installato il tipo Amazon EKS del componente aggiuntivo. Se viene restituito un errore, sul cluster non è installato il componente aggiuntivo del tipo Amazon EKS. Completa i passaggi rimanenti della procedura Creare il componente aggiuntivo di Amazon EKS per sostituire la versione autogestita con il componente aggiuntivo Amazon EKS.

  3. Assicurati che il tuo componente aggiuntivo CoreDNS EKS per abbia una versione uguale o superiore alla versione minima del componente aggiuntivo EKS.

    Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. Puoi effettuare il check-in AWS Management Console o eseguire il seguente comando:

    kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3

    Di seguito viene riportato un output di esempio:

    v1.10.1-eksbuild.11

    Confrontate questa versione con la versione minima del componente aggiuntivo EKS nella sezione precedente. Se necessario, aggiorna il componente aggiuntivo EKS a una versione superiore seguendo la procedura. Aggiornamento del componente aggiuntivo di Amazon EKS

  4. Aggiungete la configurazione di scalabilità automatica alle impostazioni di configurazione opzionali del componente aggiuntivo EKS.

    Eseguite il comando seguente. AWS CLI Sostituisci my-cluster con il nome del cluster e l'ARN del ruolo IAM con il ruolo che stai utilizzando.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}}'

    Amazon EKS applica le modifiche ai componenti aggiuntivi EKS utilizzando un'implementazione di Kubernetes Deployment for CoredNS. Puoi tenere traccia dello stato dell'implementazione nella cronologia degli aggiornamenti del componente aggiuntivo in e con. AWS Management Console kubectl rollout status deployment/coredns --namespace kube-system

    kubectl rolloutha i seguenti comandi:

    kubectl rollout history -- View rollout history pause -- Mark the provided resource as paused restart -- Restart a resource resume -- Resume a paused resource status -- Show the status of the rollout undo -- Undo a previous rollout

    Se l'implementazione richiede troppo tempo, Amazon EKS annullerà l'implementazione e un messaggio con il tipo di Addon Update e lo stato Failed verrà aggiunto alla cronologia degli aggiornamenti del componente aggiuntivo. Per indagare su eventuali problemi, inizia dalla cronologia dell'implementazione ed eseguilo kubectl logs su un CoreDNS pod per visualizzare i log di. CoreDNS

  5. (Facoltativo) È possibile fornire valori minimi e massimi a cui la scalabilità automatica può scalare il numero di pod. CoreDNS

    L'esempio seguente mostra che la scalabilità automatica è abilitata e tutte le chiavi opzionali hanno dei valori. Si consiglia che il numero minimo di CoreDNS pod sia sempre maggiore di 2 per garantire la resilienza del servizio DNS nel cluster.

    aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}, "minReplicas": 2, "maxReplicas": 10}'
  6. Controlla lo stato dell'aggiornamento del componente aggiuntivo eseguendo il seguente comando:

    aws eks describe-addon --cluster-name my-cluster --addon-name coredns \

    Se vedi questa riga:"status": "ACTIVE", significa che l'implementazione è stata completata e il componente aggiuntivo sta utilizzando la nuova configurazione in tutti i pod. CoreDNS Man mano che modifichi il numero di nodi e core di CPU dei nodi nel cluster, Amazon EKS ridimensiona il numero di repliche della distribuzione. CoreDNS