Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
Gestione di CoreDNS per DNS nei cluster Amazon EKS
Suggerimento
Con Amazon EKS Auto Mode, non devi installare o aggiornare componenti aggiuntivi di rete. Auto Mode include funzionalità di pod networking e bilanciamento del carico.
Per ulteriori informazioni, consulta Automate cluster infrastructure with EKS Auto Mode.
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 contenitori 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 Fargate con un namespace che corrisponde al namespace del deployment CoreDNS. Per ulteriori informazioni su CoreDNS, consultare Utilizzo di CoreDNS per l’individuazione dei servizi
Versioni di CoreDNS
La tabella seguente elenca la versione più recente del componente aggiuntivo di Amazon EKS disponibile per ogni versione di Kubernetes.
| Versione di Kubernetes | Versione di CoreDNS |
|---|---|
|
1.33 |
v1.12.4-eksbuild.1 |
|
1.32 |
v1.11.4-eksbuild.22 |
|
1.31 |
v1.11.4-eksbuild.22 |
|
1.30 |
v1.11.4-eksbuild.22 |
|
1.29 |
v1.11.4-eksbuild.22 |
|
1.28 |
v1.10.1-eksbuild.38 |
Importante
Se gestisci autonomamente questo componente aggiuntivo, le versioni nella tabella potrebbero non essere le stesse di quelle autogestite disponibili. Per ulteriori informazioni sull’aggiornamento del componente aggiuntivo del tipo autogestito, consulta Aggiornamento del componente aggiuntivo CoreDNS autogestito di Amazon EKS.
Considerazioni importanti sull’aggiornamento di CoreDNS
-
Gli aggiornamenti di CoreDNS utilizzano un PodDisruptionBudget per aiutare a mantenere la disponibilità del servizio DNS durante il processo di aggiornamento.
-
Per migliorare la stabilità e la disponibilità di Implementazione di CoreDNS, le versioni
v1.9.3-eksbuild.6e successive ev1.10.1-eksbuild.3vengono distribuite con unPodDisruptionBudget. Se hai implementato unPodDisruptionBudgetesistente, l’aggiornamento a queste versioni potrebbe non riuscire. Se l’aggiornamento non riesce, il problema dovrebbe essere risolto eseguendo una delle seguenti operazioni:-
Quando esegui l’aggiornamento del componente aggiuntivo Amazon EKS, scegli di sovrascrivere le impostazioni esistenti come opzione di risoluzione dei conflitti. Se hai effettuato altre impostazioni personalizzate su Implementazione, assicurati di eseguire il backup delle impostazioni prima dell’aggiornamento in modo da poter riapplicare le altre impostazioni personalizzate dopo l’aggiornamento.
-
Rimuovi
PodDisruptionBudgetesistente e riprova a eseguire l’aggiornamento.
-
-
Nelle versioni aggiuntive EKS
v1.9.3-eksbuild.3e successive ev1.10.1-eksbuild.6e successive, Implementazione di CoreDNS imposta ilreadinessProbeper utilizzare l’endpoint/ready. Questo endpoint è abilitato nel file di configurazioneCorefileper CoreDNS.Se utilizzi un dispositivo personalizzato
Corefile, devi aggiungere il plug-inreadyalla configurazione, in modo che l’endpoint/readysia attivo in CoreDNS e possa essere utilizzato dalla sonda. -
Nelle versioni aggiuntive EKS
v1.9.3-eksbuild.7e successive ev1.10.1-eksbuild.4e successive, è possibile modificare il.PodDisruptionBudgetÈ possibile modificare il componente aggiuntivo e modificare queste impostazioni nelle configurazioni facoltative utilizzando i campi dell’esempio seguente. Questo esempio mostra l’impostazione predefinitaPodDisruptionBudget.{ "podDisruptionBudget": { "enabled": true, "maxUnavailable": 1 } }Puoi impostare
maxUnavailableominAvailable, ma non puoi impostare entrambi sullo stessoPodDisruptionBudget. Per ulteriori informazioni suPodDisruptionBudgets, consulta Specifying a PodDisruptionBudgetnella documentazione di Kubernetes. Tieni presente che, se imposti
enabledsufalse, ilPodDisruptionBudgetnon viene rimosso. Dopo aver impostato questo campo sufalse, è necessario eliminare l’oggettoPodDisruptionBudget. Allo stesso modo, se modifichi il componente aggiuntivo per utilizzarne una versione precedente (esegui il downgrade del componente aggiuntivo) dopo l’aggiornamento a una versione con unPodDisruptionBudget, questo non viene rimossoPodDisruptionBudget. Esegui il seguente comando per eliminare ilPodDisruptionBudget:kubectl delete poddisruptionbudget coredns -n kube-system -
Nelle versioni dei componenti aggiuntivi di EKS
v1.10.1-eksbuild.5e successive, modifica la tolleranza predefinita danode-role.kubernetes.io/master:NoScheduleanode-role.kubernetes.io/control-plane:NoScheduleper conformarla a KEP 2067. Per ulteriori informazioni su KEP 2067, consulta KEP-2067: Rename the kubeadm "master" label and taintin Kubernetes Enhancement Proposals (KEPs) su GitHub. Nelle versioni dei componenti aggiuntivi di EKS
v1.8.7-eksbuild.8e successive ev1.9.3-eksbuild.9e successive, entrambe le tolleranze sono impostate per essere compatibili con tutte le versioni di Kubernetes. -
Nelle versioni aggiuntive EKS
v1.9.3-eksbuild.11ev1.10.1-eksbuild.7e successive, l’implementazione di CoreDNS imposta un valore predefinito pertopologySpreadConstraints. Il valore predefinito garantisce che i pod CoreDNS siano distribuiti tra le zone di disponibilità se sono disponibili nodi in più zone di disponibilità. Puoi impostare un valore personalizzato che verrà utilizzato al posto di quello predefinito. Il valore predefinito è riportato di seguito:topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: k8s-app: kube-dns
Considerazioni sugli aggiornamenti v1.11 di CoreDNS
-
Nelle versioni
v1.11.1-eksbuild.4e successive del componente aggiuntivo di EKS, l’immagine del container è basata su un’immagine di base minimagestita da Amazon EKS Distro, che contiene pacchetti minimi e non ha shell. Per ulteriori informazioni, consulta Amazon EKS Distro . L’utilizzo e la risoluzione dei problemi dell’immagine CoreDNS rimangono gli stessi.