Amazon EKS-Add-Ons - Amazon EKS

Amazon EKS-Add-Ons

Amazon EKS-Add-Ons werden in Ihrem Cluster unter Verwendung von bewährten Standardkonfigurationen installiert. Weitere Informationen zu Amazon EKS-Add-ons finden Sie unterAmazon EKS-Erweiterungenaus.

Möglicherweise möchten Sie die Konfiguration eines Amazon EKS-Add-Ons anpassen, um erweiterte Funktionen zu aktivieren. Amazon EKS verwendet die serverseitige Funktion Kubernetes, um die Verwaltung eines Add-Ons durch Amazon EKS zu ermöglichen, ohne Ihre Konfiguration für Einstellungen zu überschreiben, die nicht von Amazon EKS verwaltet werden. Weitere Informationen finden Sie unter Serverseitiges Anwenden in der Kubernetes-Dokumentation. Um dies zu erreichen, verwaltet Amazon EKS einen Mindestsatz von Feldern für jedes Add-On, das installiert wird. Sie können alle Felder ändern, die nicht von Amazon EKS oder einem anderen Prozess der Kubernetes-Steuerebene verwaltet werden, z. B.kube-controller-manager, ohne Problem.

Wichtig

Das Ändern eines von Amazon EKS verwalteten Felds verhindert, dass Amazon EKS das Add-On verwaltet und kann dazu führen, dass Ihre Änderungen überschrieben werden, wenn ein Add-On aktualisiert wird.

Prerequisites

  • Ein vorhandener Amazon EKS-Cluster von 1.18 oder höher.

  • Dem Cluster wurde ein Amazon EKS-Add-On hinzugefügt. Weitere Informationen zum Hinzufügen eines Amazon EKS-Add-Ons zu Ihrem Cluster finden Sie unterAmazon EKS-Erweiterungenaus.

Status der Feldverwaltung anzeigen

Sie könnenkubectl, um zu sehen, welche Felder von Amazon EKS für ein Amazon EKS-Add-On verwaltet werden.

So zeigen Sie den Verwaltungsstatus eines Felds an

  1. Ermitteln Sie das Add-On, das Sie überprüfen möchten. Informationen zu allen Bereitstellungen und Daemonsets, die in Ihrem Cluster bereitgestellt werden, finden Sie unterAnzeigen von Workloadsaus.

  2. Führen Sie den folgenden Befehl aus, um die verwalteten Felder für ein Add-On anzuzeigen:

    kubectl get <type>/<add-on-name> -n <add-on-namespace> -o yaml

    Sie können beispielsweise die verwalteten Felder für das CoreDNS Add-On mit dem folgenden Befehl sehen.

    kubectl get deployment/coredns -n kube-system -o yaml

    Die Feldverwaltung wird im folgenden Abschnitt in der zurückgegebenen Ausgabe aufgeführt.

    ... managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: ...

Grundlegendes zur Feldverwaltungssyntax in der Kubernetes API

Wenn Sie Details für ein Kubernetes-Objekt anzeigen, werden sowohl verwaltete als auch nicht verwaltete Felder in der Ausgabe zurückgegeben. Verwaltete Felder können einen der folgenden Typen sein:

  • Vollständig verwaltet— Alle Schlüssel für das Feld werden von Amazon EKS verwaltet. Änderungen an einem beliebigen Wert verursachen einen Konflikt.

  • Teilweise verwaltet— Einige Schlüssel für das Feld werden von Amazon EKS verwaltet. Nur Änderungen an den Schlüsseln, die explizit von Amazon EKS verwaltet werden, verursachen einen Konflikt.

Beide Arten von Feldern sind mitmanager: eksaus.

Jeder Schlüssel ist entweder ein., die das Feld selbst darstellt, das immer einer leeren Menge zugeordnet wird, oder einer Zeichenfolge, die ein Unterfeld oder Element darstellt. Die Ausgabe für die Feldverwaltung besteht aus folgenden Deklarationstypen:

  • f:<name>Wobei gilt,<name>ist der Name eines Feldes in einer Liste.

  • k:<keys>Wobei gilt,<keys>ist eine Karte der Felder eines Listenelements.

  • v:<value>Wobei gilt,<value>ist der exakte json-formatierte Wert eines Listenelements.

  • i:<index>Wobei gilt,<index>ist die Position eines Elements in der Liste.

Weitere Informationen finden Sie unter Storage Classes in der Kubernetes-Dokumentation.

Die folgenden Ausgabeteile für das CoreDNS Add-on veranschaulichen die vorherigen Deklarationen:

  • Vollständig verwaltete Felder— Wenn ein verwaltetes Feld einef:(Feld) angegeben, aber keinek:(Schlüssel), dann wird das gesamte Feld verwaltet. Änderungen an Werten in diesem Feld verursachen einen Konflikt.

    In der folgenden Ausgabe sehen Sie, dass der Container mit dem Namencorednsverwaltet voneksaus. Dieargs,image, undimagePullPolicy-Unterfelder werden auch voneksaus. Änderungen an Werten in diesen Feldern verursachen einen Konflikt.

    ... f:containers: k:{"name":"coredns"}: .: {} f:args: {} f:image: {} f:imagePullPolicy: {} ... manager: eks ...
  • Teilweise verwaltete Felder— Wenn für einen verwalteten Schlüssel ein Wert angegeben ist, werden die deklarierten Schlüssel für dieses Feld verwaltet. Das Ändern der angegebenen Schlüssel führt zu einem Konflikt.

    In der folgenden Ausgabe sehen Sie, dasseksverwaltet dieconfig-volumeundtmpVolumes, die mit demname-Taste.

    ... f:volumes: k:{"name":"config-volume"}: .: {} f:configMap: f:items: {} f:name: {} f:name: {} k:{"name":"tmp"}: .: {} f:name: {} ... manager: eks ...
  • Hinzufügen von Schlüsseln zu teilweise verwalteten Feldern— Wenn nur ein bestimmter Schlüsselwert verwaltet wird, können Sie sicher zusätzliche Schlüssel wie Argumente zu einem Feld hinzufügen, ohne einen Konflikt zu verursachen. Wenn Sie zusätzliche Schlüssel hinzufügen, stellen Sie sicher, dass das Feld nicht zuerst verwaltet wird. Das Hinzufügen oder Ändern eines verwalteten Werts verursacht einen Konflikt.

    In der folgenden Ausgabe sehen Sie, dass sowohl dienamekey undname-Feld verwaltet werden. Das Hinzufügen oder Ändern eines Containernamens verursacht einen Konflikt mit diesem verwalteten Schlüssel.

    ... f:containers: k:{"name":"coredns"}: ... f:name: {} ... manager: eks ...