Verwalten des CoreDNS-Add-on - Amazon EKS

Verwalten des CoreDNS-Add-on

CoreDNS ist ein flexibler, erweiterbarer DNS-Server, der als Kubernetes-Cluster-DNS dienen kann. Wenn Sie einen Amazon-EKS-Cluster mit mindestens einem Knoten starten, werden standardmäßig zwei Replikate des CoreDNS-Image 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. Die CoreDNS-Pods können auf Fargate-Knoten bereitgestellt werden, wenn Ihr Cluster ein AWS-Fargate-Profil mit einem Namespace enthält, der dem Namespace für CoreDNS Deployment entspricht. Weitere Informationen zu CoreDNS finden Sie unter Verwenden von CoreDNS für die Serviceerkennung in der Kubernetes-Dokumentation.

In der folgenden Tabelle ist die Version des CoreDNS-Add-ons aufgeführt, die mit jeder Amazon-EKS-Clusterversion bereitgestellt wird.

CoreDNS-Version, die mit jeder von Amazon EKS unterstützten Cluster-Version bereitgestellt wird
Kubernetes Version 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

Wenn Sie über einen Cluster der Version 1.18 oder höher verfügen, dem Sie das CoreDNS Amazon-EKS-Add-on nicht hinzugefügt haben, können Sie ihn mit dem Verfahren in hinzufügen Hinzufügen des CoreDNS-Amazon-EKS-Add-ons. Wenn Sie Ihren 1.18- oder höherer Cluster mit AWS Management Console am oder nach dem 19. Mai 2021 erstellt haben, befindet sich das CoreDNS-Amazon-EKS-Add-on bereits in Ihrem Cluster. Wenn Sie Ihren 1.18-Cluster oder höher mit einem anderen Tool erstellt haben und das CoreDNS-Amazon-EKS-Add-on verwenden möchten, müssen Sie es selbst zu Ihrem Cluster hinzufügen.

Wenn Sie das CoreDNS-Amazon-EKS-Add-on zu Ihrem 1.18- oder höheren Cluster hinzugefügt haben, können Sie es mit den Verfahren in den Abschnitten Aktualisieren des Amazon-EKS-Add-ons und Entfernen des CoreDNS-Amazon-EKS-Add-ons verwalten. Weitere Informationen zu Amazon EKS-Add-ons finden Sie unter Amazon EKS-Erweiterungen.

Wenn Sie das CoreDNS-Amazon-EKS-Add-on nicht hinzugefügt haben, wird das selbstverwaltete CoreDNS-Add-on weiterhin auf Ihrem Cluster ausgeführt. Sie können das selbstverwaltete CoreDNS-Add-on mit dem Verfahren in aktualisieren Aktualisieren des selbstverwalteten CoreDNS-Add-ons.

Hinzufügen des CoreDNS-Amazon-EKS-Add-ons

Wählen Sie die Registerkarte mit dem Namen des Tools aus, mit dem Sie das CoreDNS-Amazon-EKS-Add-on zu Ihrem Cluster hinzufügen möchten.

Wichtig

Vergewissern Sie sich vor dem Hinzufügen des CoreDNS-Amazon-EKS-Add-ons, dass Sie keine Einstellungen selbst verwalten, die Amazon EKS mit der Verwaltung beginnen wird. Um zu bestimmen, welche Einstellungen Amazon EKS verwaltet, siehe Amazon EKS-Add-ons.

eksctl

So fügen Sie das CoreDNS-Amazon-EKS-Add-on mit hinzu eksctl

Ersetzen Sie my-cluster durch den Namen Ihres Clusters und führen Sie dann den folgenden Befehl aus.

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

Wenn Sie die Option --force entfernen und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt das Hinzufügen des Amazon-EKS-Add-ons fehl und Sie erhalten eine Fehlermeldung, die Ihnen bei der Lösung des Konflikts hilft. Stellen Sie vor dem Angeben dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen, da diese Einstellungen mit dieser Option überschrieben werden. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

AWS Management Console

So fügen Sie das CoreDNS Amazon-EKS-Add-on mit dem hinzu AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Clusters (Cluster) für Amazon EKS und dann den Namen des Clusters aus, für den Sie das Amazon-EKS-Add-on CoreDNS konfigurieren möchten.

  3. Wählen Sie die Registerkarte Konfiguration und dann die Registerkarte Add-ons.

  4. Wählen Sie Neu hinzufügen.

    1. Wählen Sie CoreDNS für Name aus.

    2. Wählen Sie die Version aus, die Sie verwenden möchten.

    3. Wenn Sie Vorhandene Konfiguration für dieses Add-on im Cluster überschreiben. auswählen, dann können alle Einstellungen für das vorhandene Add-on mit den Einstellungen des Amazon-EKS-Add-ons überschrieben werden. Wenn Sie diese Option aktivieren und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt das Hinzufügen des Amazon-EKS-Add-ons fehl und Sie erhalten eine Fehlermeldung, die Ihnen bei der Lösung des Konflikts hilft. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

    4. Wählen Sie Hinzufügen.

AWS CLI

So fügen Sie das CoreDNS Amazon-EKS-Add-on mit dem hinzu AWS CLI

Ersetzen Sie my-cluster durch den Namen Ihres Clusters und führen Sie dann den folgenden Befehl aus.

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

Wenn Sie die Option --resolve-conflicts OVERWRITE entfernen und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt das Erstellen des Add-ons fehl und Sie erhalten eine Fehlermeldung, die Sie bei der Lösung des Konflikts unterstützt. Stellen Sie vor dem Angeben dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen, da diese Einstellungen mit dieser Option überschrieben werden. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

Aktualisieren des Amazon-EKS-Add-ons

Dieses Verfahren dient zum Aktualisieren des CoreDNS-Amazon-EKS-Add-ons. Wenn Sie das CoreDNS Amazon EKS-Add-on nicht hinzugefügt haben, führen Sie stattdessen das Verfahren in Aktualisieren des selbstverwalteten CoreDNS-Add-ons aus oder fügen Sie das CoreDNS Amazon EKS-Add-on hinzu. Amazon EKS aktualisiert CoreDNS auf Ihrem Cluster nicht automatisch, wenn neue Versionen veröffentlicht werden oder nachdem Sie Ihren Cluster auf eine neue Kubernetes-Nebenversion aktualisiert haben. Um CoreDNS auf einem vorhandenen Cluster zu aktualisieren, müssen Sie das Update initiieren und Amazon EKS aktualisiert dann das Amazon-EKS-Add-on für Sie.

eksctl

So aktualisieren Sie das CoreDNS Amazon EKS-Add-on mithilfe von eksctl

  1. Überprüfen Sie die aktuelle Version Ihres coredns-Amazon-EKS-Add-ons. Ersetzen Sie my-cluster mit Ihrem Clusternamen.

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

    Ausgabe

    NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.0-eksbuild.1 ACTIVE 0 v1.8.3-eksbuild.1
  2. Aktualisieren Sie das Add-on auf die unter UPDATE AVAILABLE in der Ausgabe des vorherigen Schritts zurückgegebene Version.

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

    Wenn Sie die Option --force entfernen und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt die Aktualisierung des Amazon-EKS-Add-ons fehl und Sie erhalten eine Fehlermeldung, die Sie bei der Lösung des Konflikts unterstützt. Stellen Sie vor dem Angeben dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen, da diese Einstellungen mit dieser Option überschrieben werden. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

AWS Management Console

So aktualisieren Sie das CoreDNS Amazon EKS-Add-on mithilfe der AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Clusters (Cluster) für Amazon EKS und dann den Namen des Clusters aus, für den Sie das Amazon-EKS-Add-on CoreDNS aktualisieren möchten.

  3. Wählen Sie die Registerkarte Konfiguration und dann die Registerkarte Add-ons.

  4. Wählen Sie das Kästchen oben rechts in der coredns-Box aus und wählen Sie dann Bearbeiten.

    1. Wählen Sie die Version des Amazon-EKS-Add-ons aus, die Sie verwenden möchten.

    2. Wenn Sie Vorhandene Konfiguration für dieses Add-on im Cluster überschreiben. auswählen, dann können alle Einstellungen für das vorhandene Add-on mit den Einstellungen des Amazon-EKS-Add-ons überschrieben werden. Wenn Sie diese Option nicht aktivieren und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt die Aktualisierung des Add-ons auf ein Amazon-EKS-Add-on fehl und Sie erhalten eine Fehlermeldung, die Ihnen bei der Behebung des Problems hilft. Konflikt. Stellen Sie vor der Auswahl dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

    3. Wählen Sie Aktualisieren.

AWS CLI

So aktualisieren Sie das CoreDNS Amazon EKS-Add-on mithilfe der AWS CLI

  1. Überprüfen Sie die aktuelle Version Ihres CoreDNS-Add-ons. Ersetzen Sie den cluster-name durch Ihren Cluster-Namen.

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

    Ausgabe:

    1.7.0
  2. Bestimmen Sie, welche Versionen des CoreDNS-Add-ons für die Version Ihres Clusters verfügbar sind.

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

    Ausgabe

    1.8.0 True 1.7.0 False

    Die Version mit True darunter ist die Standardversion, die mit neuen Clustern bereitgestellt wird.

  3. Aktualisieren Sie das Add-on auf die Version, bei der True in der Ausgabe des vorherigen Schritts zurückgegeben wurde. Sie können auch auf eine neuere Version aktualisieren, wenn sie in der Ausgabe zurückgegeben wird.

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

    Wenn Sie die Option --resolve-conflicts OVERWRITE entfernen und eine der Amazon-EKS-Add-on-Einstellungen mit Ihren vorhandenen Einstellungen in Konflikt steht, schlägt die Aktualisierung des Add-ons fehl und Sie erhalten eine Fehlermeldung, die Sie bei der Lösung des Konflikts unterstützt. Stellen Sie vor dem Angeben dieser Option sicher, dass das Amazon-EKS-Add-on keine Einstellungen verwaltet, die Sie verwalten müssen, da diese Einstellungen mit dieser Option überschrieben werden. Weitere Informationen zur Amazon EKS-Add-on-Konfigurationsverwaltung finden Sie unter Amazon EKS-Add-ons.

Entfernen des CoreDNS-Amazon-EKS-Add-ons

Beim Entfernen eines Amazon-EKS-Add-ons stehen Ihnen zwei Optionen zur Verfügung:

  • Beibehalten der Add-on-Software auf Ihrem Cluster – Diese Option entfernt die Amazon-EKS-Verwaltung aller Einstellungen und die Möglichkeit für Amazon EKS, Sie über Updates zu benachrichtigen und das Amazon-EKS-Add-on automatisch zu aktualisieren, nachdem Sie ein Update gestartet haben, behält jedoch das Add-on bei. on-Software auf Ihrem Cluster. Diese Option macht das Add-on zu einem selbstverwalteten Add-on und nicht zu einem Amazon-EKS-Add-on. Es gibt keine Ausfallzeiten für das Add-on.

  • Vollständiges Entfernen der Add-on-Software aus Ihrem Cluster – Sie sollten das Amazon-EKS-Add-on nur aus Ihrem Cluster entfernen, wenn auf Ihrem Cluster keine Ressourcen vorhanden sind, die von der Funktionalität des Add-ons abhängig sind. Nachdem Sie das Amazon-EKS-Add-on entfernt haben, können Sie es bei Bedarf erneut hinzufügen.

Wenn dem Add-on ein IAM-Konto zugeordnet ist, wird das IAM-Konto nicht entfernt.

Wählen Sie die Registerkarte mit dem Namen des Tools aus, mit dem Sie das CoreDNS-Amazon-EKS-Add-on aus Ihrem Cluster 1.18 oder höher entfernen möchten.

eksctl

So entfernen Sie das CoreDNS Amazon-EKS-Add-on mit eksctl

Ersetzen Sie my-cluster durch den Namen Ihres Clusters und führen Sie dann den folgenden Befehl aus. Durch das Entfernen von --preserve wird die Add-on-Software aus Ihrem Cluster entfernt.

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

So entfernen Sie das CoreDNS Amazon-EKS-Add-on mit dem AWS Management Console

  1. Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie im linken Navigationsbereich Clusters (Cluster) für Amazon EKS und dann den Namen des Clusters aus, für den Sie das Amazon-EKS-Add-on CoreDNS entfernen möchten.

  3. Wählen Sie die Registerkarte Konfiguration und dann die Registerkarte Add-ons.

  4. Aktivieren Sie das Kontrollkästchen oben rechts im Feld coredns und wählen Sie dann Remove (Entfernen) aus. Geben Sie coredns ein und wählen Sie dann Entfernen aus.

AWS CLI

So entfernen Sie das CoreDNS Amazon-EKS-Add-on mit dem AWS CLI

Ersetzen Sie my-cluster durch den Namen Ihres Clusters und führen Sie dann den folgenden Befehl aus. Durch das Entfernen von --preserve wird die Add-on-Software aus Ihrem Cluster entfernt.

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

Aktualisieren des selbstverwalteten CoreDNS-Add-ons

Wenn Sie einen Cluster der Version 1.17 oder früher oder einen Cluster der Version 1.18 oder höher haben, dem Sie das CoreDNS-Amazon-EKS-Add-on nicht hinzugefügt haben, führen Sie die folgenden Schritte aus, um das Add-on zu aktualisieren. Wenn Sie das CoreDNS Amazon EKS-Add-on hinzugefügt haben, führen Sie stattdessen das Verfahren in Aktualisieren des Amazon-EKS-Add-ons aus.

So aktualisieren Sie das selbstverwaltete CoreDNS-Add-on mit kubectl

  1. Überprüfen Sie die aktuelle Version Ihres CoreDNS-Add-ons.

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

    Ausgabe:

    coredns:v1.8.0
  2. Wenn Ihre aktuelle CoreDNS-Version 1.5.0 oder höher ist, aber älter als die in der Tabelle der CoreDNS-Versionen aufgeführte Version ist, überspringen Sie diesen Schritt. Wenn Ihre aktuelle Version älter als 1.5.0 ist, müssen Sie das ConfigMap für CoreDNS ändern, um das Forward-Add-on anstelle des Proxy-Add-ons zu verwenden.

    1. Öffnen Sie die configmap mit dem folgenden Befehl.

      kubectl edit configmap coredns -n kube-system
    2. Ersetzen Sie proxy in der folgenden Zeile durch forward. Speichern Sie die Datei und schließen Sie den Editor.

      proxy . /etc/resolv.conf
  3. Wenn Sie Ihren Cluster ursprünglich auf Kubernetes 1.17 oder früher bereitgestellt haben, müssen Sie möglicherweise einen eingestellten Begriff aus Ihrem CoreDNS-Manifest entfernen.

    Wichtig

    Sie müssen dies ausführen, bevor Sie auf CoreDNS Version 1.7.0 aktualisieren. Es wird jedoch empfohlen, diesen Schritt auch dann auszuführen, wenn Sie auf eine frühere Version aktualisieren.

    1. Überprüfen Sie, ob Ihr CoreDNS-Manifest die Zeile enthält.

      kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream

      Wenn keine Ausgabe zurückgegeben wird, enthält Ihr Manifest die Zeile nicht und Sie können mit dem nächsten Schritt fortfahren, um CoreDNS zu aktualisieren. Wenn eine Ausgabe zurückgegeben wird, müssen Sie die Zeile entfernen.

    2. Bearbeiten Sie das ConfigMap mit dem folgenden Befehl und entfernen Sie die Zeile in der Datei, die das Wort upstream enthält. Ändern Sie sonst nichts in der Datei. Nachdem die Linie entfernt wurde, speichern Sie die Änderungen.

      kubectl edit configmap coredns -n kube-system -o yaml
  4. Rufen Sie Ihr aktuelles CoreDNS-Image ab:

    kubectl get deployment coredns \ --namespace kube-system \ -o=jsonpath='{$.spec.template.spec.containers[:1].image}'
  5. Wenn Sie auf CoreDNS 1.8.3 aktualisieren, müssen Sie die endpointslices-Berechtigung zu system:coredns-Kubernetes clusterrole hinzufügen.

    kubectl edit clusterrole system:coredns -n kube-system

    Fügen Sie die folgenden Zeilen unter den vorhandenen Berechtigungszeilen im rules-Abschnitt der Datei hinzu.

    ... - apiGroups: - discovery.k8s.io resources: - endpointslices verbs: - list - watch ...
  6. Aktualisieren Sie das Add-on CoreDNS, indem Sie 602401143452 und us-west-2 durch die Werte aus der Ausgabe ersetzen, die in einem vorherigen Schritt zurückgegeben wurde. Ersetzen Sie 1.8.4 durch die empfohlene CoreDNS-Version Ihres Clusters oder höher:

    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