Aktualisiere das CoreDNS EKSSelbstverwaltetes Amazon-Add-on - Amazon EKS

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.

Aktualisiere das CoreDNS EKSSelbstverwaltetes Amazon-Add-on

Wichtig

Wir empfehlen, den EKS Amazon-Typ des Add-ons zu Ihrem Cluster hinzuzufügen, anstatt den selbstverwalteten Typ des Add-ons zu verwenden. Falls Sie mit dem Unterschied zwischen den Typen nicht vertraut sind, finden Sie weitere Informationen unterEKSAmazon-Add-Ons. Weitere Informationen zum Hinzufügen eines EKS Amazon-Add-ons zu Ihrem Cluster finden Sie unterEin EKS Amazon-Add-on erstellen. Wenn Sie das EKS Amazon-Add-on nicht verwenden können, empfehlen wir Ihnen, ein Problem mit der Begründung einzureichen, warum Sie das nicht können, an das GitHub Container-Roadmap-Repository.

Bevor Sie beginnen, lesen Sie sich die Überlegungen zum Upgrade durch. Weitere Informationen finden Sie unter Wichtig CoreDNS Überlegungen zum Upgrade.

  1. Vergewissern Sie sich, dass Sie das selbstverwaltete Add-On auf Ihrem Cluster installiert haben. Ersetzen my-cluster mit dem Namen Ihres Clusters.

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

    Wenn Sie eine Fehlermeldung erhalten, wird das Add-On als selbstverwaltetes Add-On auf Ihrem Cluster installiert. Führen Sie die verbleibenden Schritte in diesem Verfahren aus. Wenn eine Versionsnummer zurückgegeben wird, haben Sie den EKS Amazon-Typ des Add-ons auf Ihrem Cluster installiert. Um den EKS Amazon-Typ des Add-ons zu aktualisieren, verwenden Sie das unter Aktualisieren des DNS EKS Amazon-Core-Add-ons beschriebene Verfahren, anstatt dieses Verfahren zu verwenden. Falls Sie mit den Unterschieden zwischen den Add-On-Typen nicht vertraut sind, finden Sie weitere Informationen unterEKSAmazon-Add-Ons.

  2. Sehen Sie, welche Version des Container-Images derzeit auf Ihrem Cluster installiert ist.

    kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3

    Eine Beispielausgabe sieht wie folgt aus.

    v1.8.7-eksbuild.2
  3. Wenn Sie aktuell CoreDNS Version ist v1.5.0 oder höher, aber älter als die Version, die in der Tabelle mit den DNSCore-Versionen aufgeführt ist, überspringen Sie diesen Schritt. Wenn Ihre aktuelle Version älter als ist1.5.0, müssen Sie das ConfigMap für ändern CoreDNS um das Forward-Add-on anstelle des Proxy-Add-Ons zu verwenden.

    1. Öffnen Sie das 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
  4. Wenn Sie Ihren Cluster ursprünglich auf bereitgestellt haben Kubernetes 1.17oder früher, dann müssen Sie möglicherweise eine eingestellte Leitung aus Ihrem entfernen CoreDNS Manifest.

    Wichtig

    Sie müssen diesen Schritt abschließen, bevor Sie auf aktualisieren CoreDNS Version1.7.0, aber es wird empfohlen, diesen Schritt auch dann durchzuführen, wenn Sie auf eine frühere Version aktualisieren.

    1. Prüfen Sie, ob Ihr CoreDNS Das Manifest hat die Zeile.

      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 zur Aktualisierung fortfahren CoreDNS. Wenn die 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
  5. Rufen Sie Ihren aktuellen ab CoreDNS Bildversion:

    kubectl describe deployment coredns -n kube-system | grep Image

    Eine Beispielausgabe sieht wie folgt aus.

    602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.8.7-eksbuild.2
  6. Wenn du auf aktualisierst CoreDNS 1.8.3oder später, dann müssen Sie die endpointslices Erlaubnis zu dem hinzufügen system:coredns Kubernetes clusterrole.

    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 [...]
  7. Aktualisiere das CoreDNS Ergänzung durch Ersetzen 602401143452 and region-code mit den Werten aus der Ausgabe, die in einem vorherigen Schritt zurückgegeben wurden. Ersetzen v1.11.3-eksbuild.1 mit dem CoreDNS Version, die in der Tabelle mit den neuesten Versionen für Ihr Kubernetes Version.

    kubectl set image deployment.apps/coredns -n kube-system coredns=602401143452.dkr.ecr.region-code.amazonaws.com/eks/coredns:v1.11.3-eksbuild.1

    Eine Beispielausgabe sieht wie folgt aus.

    deployment.apps/coredns image updated
  8. Überprüfen Sie die Container-Image-Version erneut, um sicherzustellen, dass sie auf die Version aktualisiert wurde, die Sie im vorherigen Schritt angegeben haben.

    kubectl describe deployment coredns -n kube-system | grep Image | cut -d ":" -f 3

    Eine Beispielausgabe sieht wie folgt aus.

    v1.11.3-eksbuild.1