Dimensionare CoreDNSPods per DNS traffico elevato - 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à.

Dimensionare CoreDNSPods per DNS traffico elevato

Quando avvii un EKS cluster Amazon con almeno un nodo, Deployment di due repliche di CoreDNS le immagini vengono distribuite per impostazione predefinita, indipendentemente dal numero di nodi distribuiti nel cluster. Il CoreDNS I 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. All'aumentare del numero di richieste di risoluzione dei nomi (interrogazioni) da parte dei pod, CoreDNS i pod possono essere sovraccarichi e rallentare e rifiutare le richieste che i pod non sono in grado di gestire.

Per gestire l'aumento del carico sul CoreDNS pod, prendete in considerazione un sistema di scalabilità automatica per CoreDNS. Amazon EKS può gestire la scalabilità automatica di CoreDNS Distribuzione nella versione aggiuntiva di EKS CoreDNS. Questo CoreDNS autoscaler monitora continuamente lo stato del cluster, incluso il numero di nodi e core. CPU Sulla base di tali informazioni, il controller adatterà dinamicamente il numero di repliche del CoreDNS distribuzione in un EKS cluster. Questa funzionalità è disponibile per CoreDNS v1.9e versione di EKS rilascio 1.25 e successive. Per ulteriori informazioni sulle versioni compatibili con CoreDNS Scalabilità automatica, vedere 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 il tuo CoreDNS implementazione, ci sono tre prerequisiti:

  • È necessario utilizzare la versione EKSaggiuntiva 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 EKS componente aggiuntivo di CoreDNS.

Versione minima del cluster

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

Un nuovo EKS cluster Amazon. Per implementarne uno, consulta Inizia a usare Amazon EKS. Il cluster deve essere Kubernetes versione 1.25 o successiva. Il cluster deve eseguire uno dei Kubernetes versioni e versioni della piattaforma elencate nella tabella seguente o una versione successiva. Nota che qualsiasi Kubernetes e sono supportate anche le versioni della piattaforma successive a quelle elencate. Puoi controllare la tua versione attuale Kubernetes versione sostituendo my-cluster nel comando seguente con il nome del cluster e quindi eseguendo il comando modificato:

aws eks describe-cluster --name my-cluster --query cluster.version --output text
Kubernetes version 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

Tutte le versioni successive della piattaforma Kubernetes sono supportate anche le versioni, ad esempio Kubernetes versione 1.30 eks.1 successiva.

Versione minima del EKS componente aggiuntivo

Kubernetes version 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
  1. Assicurati che la versione del cluster sia uguale o superiore alla versione minima del cluster.

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

    Novità Kubernetes le versioni a volte introducono modifiche significative. Pertanto, si consiglia di testare il comportamento delle applicazioni utilizzando un cluster separato delle nuove Kubernetes versione prima di aggiornare i cluster di produzione.

    Per aggiornare un cluster a uno nuovo Kubernetes versione, seguire la procedura riportata inAggiorna il cluster esistente alla nuova versione di Kubernetes.

  2. Assicurati di avere il EKScomponente aggiuntivo per CoreDNS, non quello autogestito CoreDNS Implementazione.

    A seconda dello strumento con cui hai creato il cluster, al momento potresti non avere il tipo di EKS componente aggiuntivo Amazon installato sul tuo cluster. Per vedere quale tipo di componente aggiuntivo è installato sul tuo cluster, puoi 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 EKS tipo di componente aggiuntivo Amazon e puoi continuare con il passaggio successivo. Se viene restituito un errore, non hai il EKS tipo di componente aggiuntivo Amazon installato sul tuo cluster. Completa i passaggi rimanenti della procedura Crea il CoreDNS Componente EKS aggiuntivo Amazon per sostituire la versione autogestita con il EKS componente aggiuntivo Amazon.

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

    Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. È possibile 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.13

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

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

    1. Apri la EKS console Amazon a 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 CoreDNS casella aggiuntiva, quindi scegli Modifica.

    5. Nella sezione Configura CoreDNSpagina:

      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. Immettete la JSON chiave "autoscaling": e il valore di un JSON oggetto annidato con una chiave "enabled": e un valore true in Valori di configurazione. Il testo risultante deve essere un JSON oggetto 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 CoreDNS pod a.

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

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

      Amazon EKS applica le modifiche ai EKS componenti aggiuntivi utilizzando un'implementazione del Kubernetes Distribuzione per Core. DNS Puoi tenere traccia dello stato dell'implementazione nella cronologia degli aggiornamenti del componente aggiuntivo in AWS Management Console e con. 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 aggiornamento dell'addon e lo stato Non riuscito verrà aggiunto alla cronologia degli aggiornamenti del componente aggiuntivo. Per esaminare eventuali problemi, inizia dalla cronologia dell'implementazione ed esegui su un kubectl logs 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 CoreDNS cialde. Man mano che modifichi il numero di nodi e CPU core di nodi nel cluster, Amazon EKS ridimensiona il numero di repliche del CoreDNS implementazione.

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

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

    Novità Kubernetes le versioni a volte introducono modifiche significative. Pertanto, si consiglia di testare il comportamento delle applicazioni utilizzando un cluster separato delle nuove Kubernetes versione prima di aggiornare i cluster di produzione.

    Per aggiornare un cluster a uno nuovo Kubernetes versione, seguire la procedura riportata inAggiorna il cluster esistente alla nuova versione di Kubernetes.

  2. Assicurati di avere il EKScomponente aggiuntivo per CoreDNS, non quello autogestito CoreDNS Implementazione.

    A seconda dello strumento con cui hai creato il cluster, al momento potresti non avere il tipo di EKS componente aggiuntivo Amazon installato sul tuo cluster. Per vedere quale tipo di componente aggiuntivo è installato sul tuo cluster, puoi 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 EKS tipo di componente aggiuntivo Amazon. Se viene restituito un errore, non hai il EKS tipo di componente aggiuntivo Amazon installato sul tuo cluster. Completa i passaggi rimanenti della procedura Crea il CoreDNS Componente EKS aggiuntivo Amazon per sostituire la versione autogestita con il EKS componente aggiuntivo Amazon.

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

    Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. È possibile 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.13

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

  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 il IAM ruolo ARN 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 EKS componenti aggiuntivi utilizzando un'implementazione del Kubernetes Distribuzione per Core. DNS Puoi tenere traccia dello stato dell'implementazione nella cronologia degli aggiornamenti del componente aggiuntivo in AWS Management Console e con. 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 aggiornamento dell'addon e lo stato Non riuscito verrà aggiunto alla cronologia degli aggiornamenti del componente aggiuntivo. Per esaminare eventuali problemi, inizia dalla cronologia dell'implementazione ed esegui su un kubectl logs 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 CoreDNS pod a.

    L'esempio seguente mostra che la scalabilità automatica è abilitata e tutte le chiavi opzionali hanno dei valori. È consigliabile che il numero minimo di CoreDNS il numero di pod è sempre maggiore di 2 per garantire la resilienza del DNS servizio 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 CoreDNS cialde. Man mano che modifichi il numero di nodi e CPU core di nodi nel cluster, Amazon EKS ridimensiona il numero di repliche del CoreDNS implementazione.