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.
Erweiterungen
In diesem Thema wird beschrieben, wie Sie Amazon EKS Add-Ons für Ihre Amazon EKS-Cluster mithilfe von eksctl verwalten. EKS Add-Ons ist eine Funktion, mit der Sie Kubernetes-Betriebssoftware über die EKS-API aktivieren und verwalten können. Dadurch wird der Prozess der Installation, Konfiguration und Aktualisierung von Cluster-Add-Ons vereinfacht.
Warnung
Beginnend mit eksctl v0.184.0 (und v0.201.0 für Metrics-server) installiert eksctl Standard-Addons (vpc-cni, coredns, kube-proxy, metrics-server) als EKS-Addons anstelle von selbstverwalteten Addons. Das bedeutet, eksctl update addon dass Sie eksctl utils update-* Befehle anstelle von Befehlen verwenden sollten.
Sie können Cluster ohne Standard-Netzwerk-Addons erstellen, wenn Sie alternative CNI-Plugins wie Cilium und Calico verwenden möchten.
EKS unterstützt Add-ons jetzt den Empfang von IAM-Berechtigungen über EKS Pod Identity Associations, sodass sie sich mit AWS-Services außerhalb des Clusters verbinden können
Addons erstellen
Eksctl bietet mehr Flexibilität bei der Verwaltung von Cluster-Addons:
In Ihrer Konfigurationsdatei können Sie die gewünschten Addons und (falls erforderlich) die Rolle oder Richtlinien angeben, die an sie angehängt werden sollen:
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: example-cluster region: us-west-2 iam: withOIDC: true addons: - name: vpc-cni # all below properties are optional version: 1.7.5 tags: team: eks # you can specify at most one of: attachPolicyARNs: - arn:aws:iam::account:policy/AmazonEKS_CNI_Policy # or serviceAccountRoleARN: arn:aws:iam::account:role/AmazonEKSCNIAccess # or attachPolicy: Statement: - Effect: Allow Action: - ec2:AssignPrivateIpAddresses - ec2:AttachNetworkInterface - ec2:CreateNetworkInterface - ec2:DeleteNetworkInterface - ec2:DescribeInstances - ec2:DescribeTags - ec2:DescribeNetworkInterfaces - ec2:DescribeInstanceTypes - ec2:DetachNetworkInterface - ec2:ModifyNetworkInterfaceAttribute - ec2:UnassignPrivateIpAddresses Resource: '*'
Sie können höchstens eines vonattachPolicy, attachPolicyARNs und serviceAccountRoleARN angeben.
Wenn keine dieser Optionen angegeben ist, wird das Addon mit einer Rolle erstellt, der alle empfohlenen Richtlinien zugeordnet sind.
Anmerkung
Um Richtlinien an Addons anzuhängen, muss OIDC Ihr Cluster aktiviert sein. Wenn es nicht aktiviert ist, ignorieren wir alle angehängten Richtlinien.
Sie können dann entweder diese Addons während des Cluster-Erstellungsprozesses erstellen lassen:
eksctl create cluster -f config.yaml
Oder erstellen Sie die Addons explizit nach der Cluster-Erstellung mithilfe der Konfigurationsdatei oder der CLI-Flags:
eksctl create addon -f config.yaml
eksctl create addon --name vpc-cni --version 1.7.5 --service-account-role-arn <role-arn>
eksctl create addon --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'
Tipp
Verwenden Sie das --namespace-config Flag, um Addons in einem benutzerdefinierten Namespace anstelle des Standard-Namespace bereitzustellen.
Wenn bei der Erstellung des Addons bereits eine selbstverwaltete Version des Addons auf dem Cluster existiert, können Sie wählen, wie potenzielle configMap Konflikte gelöst werden sollen, indem Sie die resolveConflicts Option über die Konfigurationsdatei festlegen, z.
addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: overwrite
Beim Erstellen des Addons unterstützt das resolveConflicts Feld drei verschiedene Werte:
-
none- EKS ändert den Wert nicht. Die Erstellung schlägt möglicherweise fehl. -
overwrite- EKS überschreibt alle Konfigurationsänderungen zurück auf die EKS-Standardwerte. -
preserve- EKS ändert den Wert nicht. Die Erstellung schlägt möglicherweise fehl. (Ähnlich wienone, aber anders als preserve beim Aktualisieren von Addons).
Aktivierte Addons auflisten
Sie können sehen, welche Addons in Ihrem Cluster aktiviert sind, indem Sie Folgendes ausführen:
eksctl get addons --cluster <cluster-name>
oder
eksctl get addons -f config.yaml
Die Version des Addons festlegen
Das Einstellen der Version des Addons ist optional. Wenn das version Feld leer gelassen wird, eksctl wird die Standardversion für das Addon aufgelöst. Weitere Informationen darüber, welche Version die Standardversion für bestimmte Addons ist, finden Sie in der AWS-Dokumentation zu EKS. Beachten Sie, dass die Standardversion möglicherweise nicht unbedingt die neueste verfügbare Version ist.
Die Addon-Version kann auf eingestellt werden. latest Alternativ kann die Version mit dem angegebenen EKS-Build-Tag wie v1.7.5-eksbuild.1 oder v1.7.5-eksbuild.2 festgelegt werden. Sie kann auch auf die Release-Version des Addons gesetzt werden, z. B. v1.7.5 oder1.7.5, und das eksbuild Suffix-Tag wird erkannt und für Sie festgelegt.
Im folgenden Abschnitt erfahren Sie, wie Sie verfügbare Addons und deren Versionen ermitteln können.
Addons entdecken
Sie können herausfinden, welche Addons auf Ihrem Cluster installiert werden können, indem Sie Folgendes ausführen:
eksctl utils describe-addon-versions --cluster <cluster-name>
Dadurch wird die Kubernetes-Version Ihres Clusters ermittelt und danach gefiltert. Wenn Sie sehen möchten, welche Addons für eine bestimmte Kubernetes-Version verfügbar sind, können Sie alternativ Folgendes ausführen:
eksctl utils describe-addon-versions --kubernetes-version <version>
Sie können Addons auch entdecken, indem Sie nach ihren, filtern. type owner and/or publisher Um zum Beispiel Addons für einen bestimmten Besitzer und Typ zu sehen, kannst du Folgendes ausführen:
eksctl utils describe-addon-versions --kubernetes-version 1.22 --types "infra-management, policy-management" --owners "aws-marketplace"
Die publishers Flagstypes, owners und und sind optional und können zusammen oder einzeln angegeben werden, um die Ergebnisse zu filtern.
Das Konfigurationsschema für Addons ermitteln
Nachdem Sie das Addon und die Version erkannt haben, können Sie die Anpassungsoptionen anzeigen, indem Sie das zugehörige JSON-Konfigurationsschema abrufen.
eksctl utils describe-addon-configuration --name vpc-cni --version v1.12.0-eksbuild.1
Dadurch wird ein JSON-Schema der verschiedenen Optionen zurückgegeben, die für dieses Addon verfügbar sind.
Arbeiten mit Konfigurationswerten
ConfigurationValueskann in der Konfigurationsdatei während der Erstellung oder Aktualisierung von Addons bereitgestellt werden. Nur JSON- und YAML-Formate werden unterstützt.
Zum Beispiel. ,
addons: - name: coredns configurationValues: |- replicaCount: 2
addons: - name: coredns version: latest configurationValues: "{\"replicaCount\":3}" resolveConflicts: overwrite
Anmerkung
Beachten Sie, dass es zu Konfigurationskonflikten kommen kann, wenn die Addon-Konfigurationswerte geändert werden.
Thus, we need to specify how to deal with those by setting the `resolveConflicts` field accordingly. As in this scenario we want to modify these values, we'd set `resolveConflicts: overwrite`.
Zusätzlich ruft der Befehl get jetzt auch das Addon ab. ConfigurationValues z.B.
eksctl get addon --cluster my-cluster --output yaml
- ConfigurationValues: '{"replicaCount":3}' IAMRole: "" Issues: null Name: coredns NewerVersion: "" Status: ACTIVE Version: v1.8.7-eksbuild.3
Verwenden eines benutzerdefinierten Namespaces
Ein benutzerdefinierter Namespace kann in der Konfigurationsdatei bei der Erstellung von Addons bereitgestellt werden. Ein Namespace kann nicht aktualisiert werden, sobald ein Addon erstellt wurde.
Verwenden der Konfigurationsdatei
addons: - name: aws-ebs-csi-driver version: latest namespaceConfig: namespace: custom-namespace
Verwenden Sie das CLI-Flag
Alternativ können Sie einen benutzerdefinierten Namespace mit dem --namespace-config Flag angeben:
eksctl create addon --cluster my-cluster --name aws-ebs-csi-driver --namespace-config 'namespace=custom-namespace'
Der Befehl get ruft auch den Namespace-Wert für das Addon ab
- ConfigurationValues: "" IAMRole: "" Issues: null Name: aws-ebs-csi-driver NamespaceConfig: namespace: custom-namespace NewerVersion: "" PodIdentityAssociations: null Status: ACTIVE Version: v1.47.0-eksbuild.1
Addons aktualisieren
Sie können Ihre Addons auf neuere Versionen aktualisieren und ändern, welche Richtlinien angehängt sind, indem Sie Folgendes ausführen:
eksctl update addon -f config.yaml
eksctl update addon --name vpc-cni --version 1.8.0 --service-account-role-arn <new-role>
Anmerkung
Die Namespace-Konfiguration kann nicht aktualisiert werden, sobald ein Addon erstellt wurde. Das --namespace-config Flag ist nur während der Addon-Erstellung verfügbar.
Ähnlich wie bei der Erstellung von Addons haben Sie beim Aktualisieren eines Addons die volle Kontrolle über die Konfigurationsänderungen, die Sie möglicherweise zuvor an diesen Add-Ons vorgenommen haben. configMap Insbesondere können Sie sie beibehalten oder überschreiben. Diese optionale Funktionalität ist über dasselbe Feld in der Konfigurationsdatei verfügbarresolveConflicts. z. B.
addons: - name: vpc-cni attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy resolveConflicts: preserve
Für das Addon-Update akzeptiert das resolveConflicts Feld drei verschiedene Werte:
-
none- EKS ändert den Wert nicht. Das Update schlägt möglicherweise fehl. -
overwrite- EKS überschreibt alle Konfigurationsänderungen zurück auf die EKS-Standardwerte. -
preserve- EKS behält den Wert bei. Wenn Sie diese Option wählen, empfehlen wir, alle Feld- und Wertänderungen auf einem Nicht-Produktions-Cluster zu testen, bevor Sie das Add-on auf Ihrem Produktionscluster aktualisieren.
Löschen von Addons
Du kannst ein Addon löschen, indem du folgenden Befehl ausführst:
eksctl delete addon --cluster <cluster-name> --name <addon-name>
Dadurch werden das Addon und alle damit verbundenen IAM-Rollen gelöscht.
Wenn Sie Ihren Cluster löschen, werden auch alle mit Addons verknüpften IAM-Rollen gelöscht.
Flexibilität bei der Clustererstellung für Standard-Netzwerk-Addons
Wenn ein Cluster erstellt wird, installiert EKS automatisch VPC CNI, CoreDNS und Kube-Proxy als selbstverwaltete Addons. Um dieses Verhalten zu deaktivieren und andere CNI-Plugins wie Cilium und Calico zu verwenden, unterstützt eksctl jetzt das Erstellen eines Clusters ohne Standard-Netzwerk-Addons. Um einen solchen Cluster zu erstellen, setzen Sie Folgendes ein: addonsConfig.disableDefaultAddons
addonsConfig: disableDefaultAddons: true
eksctl create cluster -f cluster.yaml
Um einen Cluster nur mit CoreDNS und Kube-Proxy und nicht mit VPC-CNI zu erstellen, geben Sie die Addons explizit an und legen Sie sie fest, wie in: addons addonsConfig.disableDefaultAddons
addonsConfig: disableDefaultAddons: true addons: - name: kube-proxy - name: coredns
eksctl create cluster -f cluster.yaml
Im Rahmen dieser Änderung installiert eksctl jetzt Standard-Addons als EKS-Addons statt als selbstverwaltete Addons bei der Clustererstellung, sofern nicht explizit auf true gesetzt. addonsConfig.disableDefaultAddons Daher können eksctl utils update-* Befehle nicht mehr zum Aktualisieren von Addons für Cluster verwendet werden, die mit eksctl v0.184.0 und höher erstellt wurden:
-
eksctl utils update-aws-node -
eksctl utils update-coredns -
eksctl utils update-kube-proxy
Stattdessen sollte jetzt verwendet werden. eksctl update addon
Weitere Informationen finden Sie unter Amazon EKS führt Flexibilität bei der Clustererstellung für Netzwerk-Add-Ons ein