Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Skalierung von CoreDNS-Pods für hohen DNS-Datenverkehr
Wenn Sie einen Amazon EKS-Cluster mit mindestens einem Knoten starten, wird standardmäßig eine Bereitstellung von zwei Replikaten des CoreDNS-Images bereitgestellt, unabhängig von der Anzahl der in Ihrem Cluster bereitgestellten Knoten. Die CoreDNS-Pods bieten eine Namensauflösung für alle Pods im Cluster. Anwendungen verwenden die Namensauflösung, um eine Verbindung zu Pods und Services im Cluster sowie zu Services außerhalb des Clusters herzustellen. Wenn die Anzahl der Anfragen zur Namensauflösung (Abfragen) von Pods zunimmt, können die CoreDNS-Pods überlastet werden. Dadurch verlangsamt sich ihre Leistung und sie lehnen Anfragen ab, die sie nicht verarbeiten können.
Um die erhöhte Auslastung der CoreDNS-Pods zu bewältigen, empfehlen wir die Implementierung eines Autoscaling-Systems für CoreDNS. Amazon EKS kann die automatische Skalierung der CoreDNS-Bereitstellung in der EKS-Version von CoreDNS verwalten. Add-on Dieser CoreDNS-Autoscaler überwacht kontinuierlich den Status des Clusters, einschließlich der Anzahl der Knoten und CPU-Kerne. Anhand dieser Informationen passt der Controller die Anzahl der Replikate der CoreDNS-Bereitstellung in einem EKS-Cluster dynamisch an. Dieses Feature ist für CoreDNS v1.9 und höher verfügbar. Weitere Informationen darüber, welche Versionen mit CoreDNS Autoscaling kompatibel sind, finden Sie im folgenden Abschnitt
Standardmäßig verwaltet das System automatisch CoreDNS-Replikate mithilfe einer dynamischen Formel, die sowohl auf der Anzahl der Knoten als auch auf der Anzahl der CPU-Kerne im Cluster basiert. Die Formel berechnet das Maximum von (numberOfNodesgeteilt durch 16) und (numberOfCPUCoresgeteilt durch 256). Das System bewertet die Nachfrage in Spitzenzeiten von 10 Minuten und skaliert bei Bedarf sofort, um die erhöhte Belastung durch DNS-Abfragen zu bewältigen. Das System wird schrittweise herunterskaliert, indem die Anzahl der Replikate alle 3 Minuten um 33% reduziert wird, um die Systemstabilität aufrechtzuerhalten und Unterbrechungen zu vermeiden.
Sie können die Parameter nodesPerReplica und die cpuCoresPerReplica Skalierung über die Add-on EKS-Konfiguration anpassen:
-
nodesPerReplica: Die Anzahl der Knoten pro CoreDNS-Replikat. Der Standardwert ist16. Ein kleinerer Wert erhöht die Anzahl der Replikate, die Autoscaling für eine bestimmte Anzahl von Knoten verwaltet. -
cpuCoresPerReplica: Die Anzahl der CPU-Kerne pro CoreDNS-Replikat. Der Standardwert ist256. Ein kleinerer Wert erhöht die Anzahl der Replikate, die Autoscaling für eine bestimmte Anzahl von CPU-Kernen verwaltet.
Bei der automatischen Skalierung wird die größere der beiden berechneten Replikatzahlen verwendet und das Ergebnis zwischen und begrenzt. minReplicas maxReplicas Um nodesPerReplica oder verwenden zu könnencpuCoresPerReplica, Add-on muss Ihr CoreDNS die Mindestversion für die Kubernetes-Version Ihres Clusters haben. Weitere Informationen finden Sie unter Add-on EKS-Mindestversion für erweiterte Skalierungsparameter.
Wir empfehlen, dieses Feature in Verbindung mit anderen bewährten Methoden für die automatische Skalierung von EKS-Clustern
Voraussetzungen
Damit Amazon EKS Ihre CoreDNS-Bereitstellung skalieren kann, müssen Sie die folgenden Voraussetzungen erfüllen:
-
Sie müssen die Add-on EKS-Version von CoreDNS verwenden.
-
Um
nodesPerReplicaoder zu konfigurierencpuCoresPerReplica, müssen Sie die Add-on CoreDNS-Mindestversion verwenden, die auf der Kubernetes-Version Ihres Clusters basiert, wie im folgenden Abschnitt gezeigt.
Add-on EKS-Mindestversion für erweiterte Skalierungsparameter
In der folgenden Tabelle ist die Add-on CoreDNS-Mindestversion aufgeführt, die für jede Kubernetes-Version erforderlich ist, um die nodesPerReplica Skalierungsparameter und zu verwenden. cpuCoresPerReplica
| Kubernetes-Version | CoreDNS-Version |
|---|---|
|
1.36 |
v1.14.3-eksbuild.16 |
|
1,35 |
v1.14.3-eksbuild.16 |
|
1,34 |
v1.13.2-eksbuild.24 |
|
1.33 |
v1.12.4-eksbuild.31 |
|
1.32 |
v1.11.4-eksbuild.53 |
|
1.31 |
v1.11.4-eksbuild.53 |
-
Stellen Sie sicher, dass Sie über das EKS Add-on für CoreDNS verfügen, nicht über das selbstverwaltete CoreDNS-Deployment.
Je nachdem, mit welchem Tool Sie Ihr Cluster erstellt haben, ist der Add-on vom Typ Amazon EKS möglicherweise derzeit nicht auf Ihrem Cluster installiert. Um zu überprüfen, welche Art von Add-On auf Ihrem Cluster installiert ist, können Sie den folgenden Befehl ausführen. Ersetzen Sie
my-clustermit dem Namen Ihres Clusters.aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output textWenn eine Versionsnummer zurückgegeben wird, ist das Add-On vom Typ Amazon EKS auf Ihrem Cluster installiert und Sie können mit dem nächsten Schritt fortfahren. Wenn ein Fehler zurückgegeben wird, ist der Amazon-EKS-Typ des Add-Ons nicht auf Ihrem Cluster installiert. Führen Sie die restlichen Schritte des Verfahrens CoreDNS-Amazon-EKS-Add-On erstellen, um die selbstverwaltete Version durch das Amazon-EKS-Add-On zu ersetzen.
-
Stellen Sie sicher, dass Ihr EKS Add-on für CoreDNS eine Version hat, die der EKS-Mindestversion entspricht oder höher ist. Add-on
Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist. Sie können den folgenden Befehl einchecken AWS-Managementkonsole oder ausführen:
kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3Eine Beispielausgabe sieht wie folgt aus.
v1.10.1-eksbuild.13Vergleichen Sie diese Version mit der Add-on EKS-Mindestversion im vorherigen Abschnitt. Führen Sie bei Bedarf ein Upgrade des EKS Add-on auf eine höhere Version durch, indem Sie das Verfahren CoreDNS Amazon EKS-Add-on aktualisieren befolgen.
-
Fügen Sie die Autoscaling-Konfiguration zu den optionalen Konfigurationseinstellungen des EKS hinzu. Add-on
-
Öffnen Sie die Amazon-EKS-Konsole
. -
Wählen Sie im linken Navigationsbereich Clusters (Cluster) aus. Wählen Sie anschließend den Namen des Clusters aus, für den Sie das Add-On konfigurieren möchten.
-
Wählen Sie die Registerkarte Add-ons aus.
-
Aktivieren Sie das Kontrollkästchen oben rechts im Feld „CoreDNS-Add-On“ und wählen Sie dann Bearbeiten aus.
-
Gehen Sie auf der Seite CoreDNS konfigurieren wie folgt vor:
-
Wählen Sie die Version aus, die Sie verwenden möchten. Wir empfehlen Ihnen, die gleiche Version wie im vorherigen Schritt beizubehalten und die Version und Konfiguration in separaten Schritten zu aktualisieren.
-
Erweitern Sie Optionale Konfigurationseinstellungen.
-
Geben Sie den JSON-Schlüssel
"autoscaling":und den Wert eines verschachtelten JSON-Objekts mit einem Schlüssel"enabled":und einem Werttruein den Konfigurationswerten ein. Der resultierende Text muss ein gültiges JSON-Objekt sein. Wenn dieser Schlüssel und dieser Wert die einzigen Daten im Textfeld sind, setzen Sie den Schlüssel und den Wert in geschweifte Klammern{ }. Das folgende Beispiel zeigt, dass die automatische Skalierung aktiviert ist:{ "autoScaling": { "enabled": true } }Das folgende Beispiel zeigt, wie Autoscaling mit minimalen und maximalen Replikatwerten aktiviert ist. Wir empfehlen, die Mindestanzahl der CoreDNS-Pods immer größer als 2 zu halten, um die Ausfallsicherheit des DNS-Services im Cluster zu gewährleisten.
{ "autoScaling": { "enabled": true, "minReplicas": 2, "maxReplicas": 10 } }Im folgenden Beispiel werden auch die
cpuCoresPerReplicaSkalierungsparameternodesPerReplicaund festgelegt. Für diese Schlüssel ist eine CoreDNS-Mindestversion Add-on erforderlich. Weitere Informationen finden Sie unter Add-on EKS-Mindestversion für erweiterte Skalierungsparameter.{ "autoScaling": { "enabled": true, "minReplicas": 2, "maxReplicas": 10, "nodesPerReplica": 5, "cpuCoresPerReplica": 256 } }
-
-
Um die neue Konfiguration durch Ersetzen der CoreDNS-Pods anzuwenden, wählen Sie Änderungen speichern aus.
Amazon EKS wendet Änderungen auf das EKS an, Add-ons indem es ein Rollout der Kubernetes-Bereitstellung für CoreDNS verwendet. Den Status des Rollouts können Sie in der Update-Historie des Add-ons im und mit verfolgen. AWS-Managementkonsole
kubectl rollout status deployment/coredns --namespace kube-systemkubectl rolloutverfügt über die folgenden Befehle: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 rolloutWenn die Einführung zu lange dauert, macht Amazon EKS die Einführung rückgängig und eine Nachricht mit dem Typ der Add-On-Aktualisierung und dem Status Fehlgeschlagen dem Aktualisierungsverlauf des Add-Ons hinzugefügt. Um etwaige Probleme zu untersuchen, beginnen Sie mit dem Verlauf der Einführung und führen Sie
kubectl logsin einem CoreDNS-Pod aus, um die Protokolle von CoreDNS anzuzeigen.
-
-
Wenn der neue Eintrag im Aktualisierungsverlauf den Status Erfolgreich aufweist, ist die Einführung abgeschlossen und das Add-On verwendet die neue Konfiguration in allen CoreDNS-Pods. Wenn Sie die Anzahl der Knoten und CPU-Kerne der Knoten im Cluster ändern, skaliert Amazon EKS die Anzahl der Replikate der CoreDNS-Bereitstellung.
-
Stellen Sie sicher, dass Sie über das EKS Add-on für CoreDNS verfügen, nicht über das selbstverwaltete CoreDNS-Deployment.
Je nachdem, mit welchem Tool Sie Ihr Cluster erstellt haben, ist der Add-on vom Typ Amazon EKS möglicherweise derzeit nicht auf Ihrem Cluster installiert. Um zu überprüfen, welche Art von Add-On auf Ihrem Cluster installiert ist, können Sie den folgenden Befehl ausführen. Ersetzen Sie
my-clustermit dem Namen Ihres Clusters.aws eks describe-addon --cluster-name my-cluster --addon-name coredns --query addon.addonVersion --output textWenn Sie eine Versionsnummer zurückgeben, wird der Amazon-EKS-Typ des Add-Ons auf Ihrem Cluster installiert. Wenn ein Fehler zurückgegeben wird, ist der Amazon-EKS-Typ des Add-Ons nicht auf Ihrem Cluster installiert. Führen Sie die restlichen Schritte des Verfahrens CoreDNS-Amazon-EKS-Add-On erstellen, um die selbstverwaltete Version durch das Amazon-EKS-Add-On zu ersetzen.
-
Stellen Sie sicher, dass Ihr EKS Add-on für CoreDNS eine Version hat, die der EKS-Mindestversion entspricht oder höher ist. Add-on
Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist. Sie können den folgenden Befehl einchecken AWS-Managementkonsole oder ausführen:
kubectl describe deployment coredns --namespace kube-system | grep coredns: | cut -d : -f 3Eine Beispielausgabe sieht wie folgt aus.
v1.10.1-eksbuild.13Vergleichen Sie diese Version mit der Add-on EKS-Mindestversion im vorherigen Abschnitt. Führen Sie bei Bedarf ein Upgrade des EKS Add-on auf eine höhere Version durch, indem Sie das Verfahren CoreDNS Amazon EKS-Add-on aktualisieren befolgen.
-
Fügen Sie die Autoscaling-Konfiguration zu den optionalen Konfigurationseinstellungen des EKS hinzu. Add-on
Führen Sie den folgenden AWS CLI-Befehl aus. Ersetzen Sie
my-clusterdurch den Namen Ihres Clusters und den IAM-Rollen-ARN durch die Rolle, die Sie verwenden.aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true}}'Amazon EKS wendet Änderungen am EKS an, Add-ons indem es ein Rollout der Kubernetes-Bereitstellung für CoreDNS verwendet. Den Status des Rollouts können Sie in der Update-Historie des Add-ons im und mit verfolgen. AWS-Managementkonsole
kubectl rollout status deployment/coredns --namespace kube-systemkubectl rolloutverfügt über die folgenden Befehle: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 rolloutWenn die Einführung zu lange dauert, macht Amazon EKS die Einführung rückgängig und eine Nachricht mit dem Typ der Add-On-Aktualisierung und dem Status Fehlgeschlagen dem Aktualisierungsverlauf des Add-Ons hinzugefügt. Um etwaige Probleme zu untersuchen, beginnen Sie mit dem Verlauf der Einführung und führen Sie
kubectl logsin einem CoreDNS-Pod aus, um die Protokolle von CoreDNS anzuzeigen. -
(Optional) Sie können Mindest- und Höchstwerte angeben, auf welche die automatische Skalierung die Anzahl der CoreDNS-Pods skalieren kann.
Das folgende Beispiel zeigt, wie Autoscaling mit minimalen und maximalen Replikatwerten aktiviert ist. Wir empfehlen, die Mindestanzahl der CoreDNS-Pods immer größer als 2 zu halten, um die Ausfallsicherheit des DNS-Services im Cluster zu gewährleisten.
aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true,"minReplicas":2,"maxReplicas":10}}' -
(Optional) Sie können auch die
cpuCoresPerReplicaSkalierungsparameternodesPerReplicaund festlegen. Für diese Schlüssel ist eine CoreDNS-Mindestversion Add-on erforderlich. Weitere Informationen finden Sie unter Add-on EKS-Mindestversion für erweiterte Skalierungsparameter.aws eks update-addon --cluster-name my-cluster --addon-name coredns \ --resolve-conflicts PRESERVE --configuration-values '{"autoScaling":{"enabled":true,"minReplicas":2,"maxReplicas":10,"nodesPerReplica":5,"cpuCoresPerReplica":256}}' -
Überprüfen Sie den Status der Aktualisierung des Add-Ons, indem Sie den folgenden Befehl ausführen:
aws eks describe-addon --cluster-name my-cluster --addon-name corednsWenn Sie die folgende Zeile sehen:
"status": "ACTIVE", ist die Einführung abgeschlossen und das Add-On verwendet die neue Konfiguration in allen CoreDNS-Pods. Wenn Sie die Anzahl der Knoten und CPU-Kerne der Knoten im Cluster ändern, skaliert Amazon EKS die Anzahl der Replikate der CoreDNS-Bereitstellung.