Konfiguration von Add-Ons für Hybridknoten - Amazon EKS

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 auf, 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.

Konfiguration von Add-Ons für Hybridknoten

Auf dieser Seite werden Überlegungen zum Ausführen von AWS Add-Ons und Community-Add-Ons auf Amazon EKS-Hybridknoten beschrieben. Weitere Informationen zu Amazon-EKS-Add-Ons und den Prozessen zum Erstellen, Aktualisieren und Entfernen von Add-Ons aus Ihrem Cluster finden Sie unter Amazon-EKS-Add-ons. Sofern auf dieser Seite nicht anders angegeben, sind die Verfahren zum Erstellen, Aktualisieren und Entfernen von Amazon EKS-Add-Ons für Amazon EKS-Cluster mit Hybridknoten identisch wie für Amazon EKS-Cluster mit Knoten, die in der AWS Cloud laufen. Nur die auf dieser Seite aufgeführten Add-Ons wurden auf Kompatibilität mit Amazon EKS Hybrid Nodes geprüft.

Die folgenden AWS Add-Ons sind mit Amazon EKS Hybrid Nodes kompatibel.

AWS Add-on Kompatible Add-On-Versionen

kube-proxy

v1.25.14-eksbuild.2 und höher

CoreDNS

v1.9.3-eksbuild.7 und höher

AWS Distribution für OpenTelemetry (ADOT)

v0.102.1-eksbuild.2 und höher

CloudWatch Agent für Beobachtbarkeit

v2.2.1-eksbuild.1 und höher

EKS Pod Identity Agent

  • v1.3.3-eksbuild.1 und höher, mit Ausnahme von Bottlerocket

  • v1.3.7-eksbuild.2 und höher für Bottlerocket

Knotenüberwachungsagent

v1.2.0-eksbuild.1 und höher

CSI-Snapshot-Controller

v8.1.0-eksbuild.1 und höher

AWS Privater CA-Konnektor für Kubernetes

v1.6.0-eksbuild.1 und höher

Die folgenden Community-Add-Ons sind mit Amazon EKS Hybrid Nodes kompatibel. Weitere Informationen zu Community-Add-Ons finden Sie unter Community-Add-Ons.

Community-Add-On Kompatible Add-On-Versionen

Kubernetes-Metriken-Server

v0.7.2-eksbuild.1 und höher

cert-manager

v1.17.2-eksbuild.1 und höher

Prometheus-Knoten-Exporter

v1.9.1-eksbuild.2 und höher

kube-state-metrics

v2.15.0-eksbuild.4 und höher

Externes DNS

v0.19.0-eksbuild.1 und höher

Zusätzlich zu den Amazon-EKS-Add-Ons in den obigen Tabellen sind der Amazon Managed Service für Prometheus Collector und der AWS Load Balancer Controller für Anwendungseingang (HTTP) und Load Balancing (TCP/UDP) mit Hybridknoten kompatibel.

Es gibt AWS Add-Ons und Community-Add-Ons, die nicht mit Amazon EKS Hybrid Nodes kompatibel sind. Die neuesten Versionen dieser Add-Ons verfügen über eine Anti-Affinitätsregel für die standardmäßige eks.amazonaws.com/compute-type: hybrid-Kennzeichnung, das auf Hybridknoten angewendet wird. Dadurch wird verhindert, dass sie auf Hybridknoten ausgeführt werden, wenn sie in Ihren Clustern bereitgestellt werden. Wenn Sie Cluster mit sowohl Hybridknoten als auch Knoten haben, die in der AWS Cloud ausgeführt werden, können Sie diese Add-Ons in Ihrem Cluster auf Knoten bereitstellen, die in der AWS Cloud ausgeführt werden. Das Amazon VPC CNI ist nicht mit Hybridknoten kompatibel, und Cilium und Calico werden als Container Networking Interfaces (CNIs) für Amazon EKS-Hybridknoten unterstützt. Weitere Informationen finden Sie unter CNI für Hybridknoten konfigurieren.

AWS Add-Ons

In den folgenden Abschnitten werden die Unterschiede zwischen der Ausführung kompatibler AWS Add-Ons auf Hybridknoten im Vergleich zu anderen Amazon EKS-Compute-Typen beschrieben.

kube-proxy und CoreDNS

EKS installiert Kube-Proxy und CoreDNS standardmäßig als selbstverwaltete Add-Ons, wenn Sie einen EKS-Cluster mit der AWS API und AWS SDKs, auch über die CLI, erstellen. AWS Sie können diese Add-Ons nach der Cluster-Erstellung mit Amazon-EKS-Add-Ons überschreiben. Weitere Informationen zu Verwaltung von kube-proxy in Amazon-EKS-Clustern und CoreDNS für DNS in Amazon EKS-Clustern verwalten finden Sie in der EKS-Dokumentation. Wenn Sie einen Cluster im gemischten Modus mit Hybridknoten und Knoten in der AWS Cloud ausführen, AWS empfiehlt es sich, mindestens ein CoreDNS-Replikat auf Hybridknoten und mindestens ein CoreDNS-Replikat auf Ihren Knoten in der Cloud zu haben. AWS Konfigurationsschritte finden Sie unter CoreDNS-Replikate konfigurieren.

CloudWatch Beobachtbarkeitsagent

Der CloudWatch Observability-Agent-Operator verwendet Webhooks. Wenn Sie den Operator auf Hybridknoten ausführen, muss Ihr On-Premises-Pod-CIDR in Ihrem On-Premises-Netzwerk routingfähig sein, und Sie müssen Ihren EKS-Cluster mit Ihrem Pod-Netzwerk aus der Ferne konfigurieren. Weitere Informationen finden Sie unter Konfiguration von Webhooks für Hybridknoten.

Metriken auf Knotenebene sind für Hybridknoten nicht verfügbar, da CloudWatch Container Insights von der Verfügbarkeit des Instance Metadata Service (IMDS) für Metriken auf Knotenebene abhängt. Für Hybridknoten sind Metriken auf Cluster-, Workload-, Pod- und Container-Ebene verfügbar.

Nachdem Sie das Add-on mithilfe der unter Installieren des CloudWatch Agenten mit Amazon CloudWatch Observability beschriebenen Schritte installiert haben, muss das Zusatz-Manifest aktualisiert werden, bevor der Agent erfolgreich auf Hybridknoten ausgeführt werden kann. Bearbeiten Sie die amazoncloudwatchagents-Ressource im Cluster, um die RUN_WITH_IRSA-Umgebungsvariable wie unten angezeigt hinzuzufügen.

kubectl edit amazoncloudwatchagents -n amazon-cloudwatch cloudwatch-agent
apiVersion: v1 items: - apiVersion: cloudwatch.aws.amazon.com/v1alpha1 kind: AmazonCloudWatchAgent metadata: ... name: cloudwatch-agent namespace: amazon-cloudwatch ... spec: ... env: - name: RUN_WITH_IRSA # <-- Add this value: "True" # <-- Add this - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName ...

Amazon Managed Prometheus Managed Collector für Hybridknoten

Ein verwalteter Kollector von Amazon Managed Service für Prometheus (AMP) besteht aus einem Scraper, der Metriken aus den Ressourcen in einem Amazon-EKS-Cluster erkennt und erfasst. AMP verwaltet den Scraper für Sie, sodass Sie sich nicht selbst um Instances, Agenten oder Scraper kümmern müssen.

Sie können die von AMP verwalteten Kollektoren ohne zusätzliche Konfiguration für Hybridknoten verwenden. Die metrischen Endpunkte für Ihre Anwendungen auf den Hybridknoten müssen jedoch von der VPC aus erreichbar sein, einschließlich der Routen von der VPC zum Remote-Pod-Netzwerk CIDRs und der offenen Ports in Ihrer lokalen Firewall. Darüber hinaus muss Ihr Cluster über einen privaten Cluster-Endpunktzugriff verfügen.

Folgen Sie den Schritten unter Verwenden eines AWS verwalteten Collectors im Amazon Managed Service for Prometheus Benutzerhandbuch.

AWS Distribution für OpenTelemetry (ADOT)

Sie können das Add-on AWS Distro for OpenTelemetry (ADOT) verwenden, um Metriken, Protokolle und Ablaufverfolgungsdaten von Ihren Anwendungen zu sammeln, die auf Hybridknoten ausgeführt werden. ADOT verwendet Zulassungs-Webhooks, um die Anfragen für benutzerdefinierte Kollektor-Ressourcen zu verändern und zu validieren. Wenn Sie den ADOT-Operator in Hybridknoten ausführen, muss Ihr On-Premises-Pod-CIDR in Ihrem On-Premises-Netzwerk routingfähig sein und Sie müssen Ihren EKS-Cluster mit Ihrem dezentralen Pod-Netzwerk konfigurieren. Weitere Informationen finden Sie unter Konfiguration von Webhooks für Hybridknoten.

Folgen Sie den Schritten unter Erste Schritte mit AWS Distro zur OpenTelemetry Verwendung von EKS-Add-Ons in der AWS Dokumentation von Distro. OpenTelemetry

AWS Load Balancer Balancer-Controller

Sie können den Load AWS Balancer Controller und den Application Load Balancer (ALB) oder den Network Load Balancer (NLB) mit dem Zieltyp ip für Workloads auf Hybridknoten verwenden. Die mit dem ALB oder NLB verwendeten IP-Ziele müssen routbar sein. AWS Der AWS Load Balancer Balancer-Controller verwendet auch Webhooks. Wenn Sie den Load AWS Balancer Controller-Operator auf Hybridknoten ausführen, muss Ihr lokales Pod-CIDR in Ihrem lokalen Netzwerk routingfähig sein und Sie müssen Ihren EKS-Cluster mit Ihrem Remote-Pod-Netzwerk konfigurieren. Weitere Informationen finden Sie unter Konfiguration von Webhooks für Hybridknoten.

Um den Load AWS Balancer Controller zu installieren, folgen Sie den Schritten unter AWS Application Load Balancer oderAWS Network Load Balancer.

Für den Eingang mit ALB müssen Sie die folgenden Annotationen angeben. Weitere Informationen finden Sie unter Anwendungen und HTTP-Datenverkehr mit Application Load Balancers weiterleiten.

alb.ingress.kubernetes.io/target-type: ip

Für den Lastenausgleich mit NLB müssen Sie die folgenden Annotationen angeben. Weitere Informationen finden Sie unter Weiterleitung von TCP- und UDP-Datenverkehr mit Network Load Balancers.

service.beta.kubernetes.io/aws-load-balancer-type: "external" service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"

EKS Pod Identity Agent

Anmerkung

Um das Add-On für EKS Pod Identity Agent erfolgreich in Hybridknoten mit Bottlerocket bereitzustellen, stellen Sie sicher, dass Ihre Bottlerocket-Version mindestens v1.39.0 ist. Der Pod-Identity-Agent wird in früheren Bottlerocket-Versionen in Hybridknoten-Umgebungen nicht unterstützt.

Der ursprüngliche Amazon EKS Pod Identity Agent DaemonSet ist auf die Verfügbarkeit von EC2 IMDS auf dem Knoten angewiesen, um die erforderlichen AWS Anmeldeinformationen zu erhalten. Da IMDS ab Version 1.3.3-eksbuild.1 auf Hybridknoten nicht verfügbar ist, stellt das Pod Identity Agent-Add-on optional einen bereit, der die erforderlichen Anmeldeinformationen bereitstellt. DaemonSet Hybridknoten, auf denen Bottlerocket ausgeführt wird, benötigen eine andere Methode zum Mounten der Anmeldeinformationen. Ab Version 1.3.7-eksbuild.2 stellt das Pod Identity Agent-Add-on optional eine bereit, die speziell auf Bottlerocket-Hybridknoten abzielt. DaemonSet In den folgenden Abschnitten wird DaemonSets der Prozess zur Aktivierung der optionalen Option beschrieben.

Ubuntu/RHEL/AL2023

  1. Um den Pod Identity-Agenten auf Ubuntu/RHEL/Al 2023 Hybridknoten zu verwenden, legen Sie enableCredentialsFile: true im Hybrid-Abschnitt der nodeadm Konfiguration wie unten gezeigt fest:

    apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: hybrid: enableCredentialsFile: true # <-- Add this

    Dadurch wird nodeadm so konfiguriert, dass eine Anmeldeinformationsdatei erstellt wird, die auf dem Knoten unter /eks-hybrid/.aws/credentials konfiguriert wird und von eks-pod-identity-agent-Pods verwendet wird. Diese Anmeldeinformationsdatei enthält temporäre AWS Anmeldeinformationen, die regelmäßig aktualisiert werden.

  2. Nachdem Sie die nodeadm-Konfiguration auf jedem Knoten aktualisiert haben, führen Sie den folgenden nodeadm init-Befehl mit Ihrem nodeConfig.yaml aus, um Ihre Hybridknoten mit Ihrem Amazon-EKS-Cluster zu verbinden. Wenn Ihre Knoten dem Cluster bereits zuvor beigetreten sind, führen Sie den nodeadm init-Befehl dennoch erneut aus.

    nodeadm init -c file://nodeConfig.yaml
  3. Installieren Sie eks-pod-identity-agent mit aktivierter Unterstützung für Hybridknoten, entweder über die AWS CLI oder AWS-Managementkonsole.

    1. AWS CLI: Führen Sie auf dem Computer, den Sie zur Verwaltung des Clusters verwenden, den folgenden Befehl aus, um die Installation eks-pod-identity-agent mit aktivierter Unterstützung für Hybridknoten zu installieren. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

      aws eks create-addon \ --cluster-name my-cluster \ --addon-name eks-pod-identity-agent \ --configuration-values '{"daemonsets":{"hybrid":{"create": true}}}'
    2. AWS-Managementkonsole: Wenn Sie das Pod Identity Agent-Add-on über die AWS Konsole installieren, fügen Sie der optionalen Konfiguration Folgendes hinzu, um DaemonSet das Add-on für Hybridknoten bereitzustellen.

      {"daemonsets":{"hybrid":{"create": true}}}

Bottlerocket

  1. Um den Pod-Identity-Agenten auf Bottlerocket-Hybridknoten zu verwenden, fügen Sie dem Befehl, der für die Benutzerdaten des Bottlerocket-Bootstrap-Containers verwendet wird, das --enable-credentials-file=true-Flag hinzu, wie in Hybridknoten mit Bottlerocket verbinden beschrieben.

    1. Wenn Sie den SSM-Anmeldeinformations-Anbieter verwenden, sollte Ihr Befehl wie folgt aussehen:

      eks-hybrid-ssm-setup --activation-id=<activation-id> --activation-code=<activation-code> --region=<region> --enable-credentials-file=true
    2. Wenn Sie den Anmeldeinformationsanbieter IAM Roles Anywhere verwenden, sollte Ihr Befehl folgendermaßen aussehen:

      eks-hybrid-iam-ra-setup --certificate=<certificate> --key=<private-key> --enable-credentials-file=true

      Dadurch wird das Bootstrap-Skript so konfiguriert, dass auf dem Knoten unter /var/eks-hybrid/.aws/credentials eine Anmeldeinformationsdatei erstellt wird, die von eks-pod-identity-agent-Pods verwendet wird. Diese Anmeldeinformationsdatei enthält temporäre AWS Anmeldeinformationen, die regelmäßig aktualisiert werden.

  2. Installieren Sie eks-pod-identity-agent mit aktivierter Unterstützung für Bottlerocket-Hybridknoten, entweder über die AWS CLI oder. AWS-Managementkonsole

    1. AWS CLI: Führen Sie auf dem Computer, den Sie zur Verwaltung des Clusters verwenden, den folgenden Befehl aus, um die Installation eks-pod-identity-agent mit aktivierter Unterstützung für Bottlerocket-Hybridknoten zu installieren. Ersetzen Sie my-cluster mit dem Namen Ihres Clusters.

      aws eks create-addon \ --cluster-name my-cluster \ --addon-name eks-pod-identity-agent \ --configuration-values '{"daemonsets":{"hybrid-bottlerocket":{"create": true}}}'
    2. AWS-Managementkonsole: Wenn Sie das Pod Identity Agent-Add-On über die AWS Konsole installieren, fügen Sie der optionalen Konfiguration Folgendes hinzu, um die auf Bottlerocket-Hybridknoten DaemonSet abzielenden Pakete bereitzustellen.

      {"daemonsets":{"hybrid-bottlerocket":{"create": true}}}

CSI-Snapshot-Controller

Ab Version v8.1.0-eksbuild.2 wendet das CSI-Snapshot-Controller-Add-on eine Soft-Anti-Affinitätsregel für Hybridknoten an und bevorzugt es, deployment dass der Controller EC2 in derselben AWS Region wie die Amazon EKS-Steuerungsebene ausgeführt wird. Die gemeinsame Platzierung deployment in derselben AWS Region wie die Amazon EKS-Steuerebene verbessert die Latenz.

Community-Erweiterungen

In den folgenden Abschnitten werden die Unterschiede zwischen der Ausführung kompatibler Community-Add-Ons in Hybridknoten und anderen Amazon-EKS-Rechentypen beschrieben.

Kubernetes-Metriken-Server

Die Steuerebene muss die Pod-IP des Metriken-Servers erreichen (oder die Knoten-IP, wenn hostNetwork aktiviert ist). Wenn Sie den Metriken-Server nicht im hostNetwork-Modus ausführen, müssen Sie daher beim Erstellen Ihres Amazon-EKS-Clusters ein Pod-Netzwerk aus der Ferne konfigurieren und Ihre Pod-IP-Adressen routingfähig machen. Die Implementierung des Border Gateway Protocol (BGP) mit dem CNI ist eine gängige Methode, um die IP-Adressen Ihrer Pods routingfähig zu machen.

cert-manager

cert-manager verwendet Webhooks. Wenn Sie cert-manager in Hybridknoten ausführen, muss Ihr On-Premises-Pod-CIDR in Ihrem On-Premises-Netzwerk routingfähig sein und Sie müssen Ihren EKS-Cluster mit Ihrem Pod-Netzwerk aus der Ferne konfigurieren. Weitere Informationen finden Sie unter Konfiguration von Webhooks für Hybridknoten.