Hilf mit, diese Seite zu verbessern
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.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, 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.
Auf dieser Seite werden Überlegungen zum Ausführen von Webhooks mit Hybridknoten beschrieben. Webhooks werden in Kubernetes-Anwendungen und Open-Source-Projekten wie dem Load AWS Balancer Controller und dem CloudWatch Observability Agent verwendet, um Mutations- und Validierungsfunktionen zur Laufzeit auszuführen.
Wenn Sie Webhooks auf Hybridknoten ausführen, muss Ihr lokaler Pod-CIDR in Ihrem lokalen Netzwerk routingfähig sein und Sie müssen Ihren EKS-Cluster mit Ihrem Remote-Pod-Netzwerk konfigurieren, damit die EKS-Steuerebene mit den Webhooks kommunizieren kann, die auf Hybridknoten ausgeführt werden.
Es gibt verschiedene Techniken, mit denen Sie Ihren lokalen Pod-CIDR in Ihrem lokalen Netzwerk routingfähig machen können, darunter Border Gateway Protocol (BGP), statische Routen oder andere benutzerdefinierte Routing-Lösungen. BGP ist die empfohlene Lösung, da sie skalierbarer und einfacher zu verwalten ist als alternative Lösungen, die eine benutzerdefinierte oder manuelle Routenkonfiguration erfordern. AWS unterstützt die BGP-Funktionen von Cilium und Calico für die Werbung für CIDRs Hybridknoten-Pods. Weitere Informationen finden Sie unter CNI für Hybridknoten konfigurieren.
Wenn Sie Ihren lokalen Pod-CIDR in Ihrem lokalen Netzwerk nicht routingfähig machen können und Webhooks ausführen müssen, wird empfohlen, Webhooks auf EC2 Instances auszuführen, die sich im selben EKS-Cluster wie Ihre Hybridknoten befinden.
Überlegungen zu Clustern im gemischten Modus
Cluster im gemischten Modus sind als EKS-Cluster definiert, die sowohl über Hybridknoten als auch über Knoten verfügen, die in der AWS Cloud ausgeführt werden. Beachten Sie bei der Ausführung eines Clusters im gemischten Modus die folgenden Empfehlungen:
-
Führen Sie das VPC-CNI auf Knoten in der AWS Cloud und entweder Cilium oder Calico auf Hybridknoten aus. Cilium und Calico werden nicht unterstützt, AWS wenn sie auf Knoten in der Cloud ausgeführt werden. AWS
-
Wenn für Ihre Anwendungen Pods erforderlich sind, die auf Knoten in der AWS Cloud ausgeführt werden, um direkt mit Pods zu kommunizieren, die auf Hybridknoten laufen („Ost-West-Kommunikation“), und Sie das VPC-CNI auf Knoten in AWS Cloud und Cilium oder Calico im Overlay-/Tunnelmodus auf Hybridknoten verwenden, muss Ihr lokales Pod-CIDR in Ihrem lokalen Netzwerk routbar sein.
-
Führen Sie mindestens ein CoreDNS-Replikat auf Knoten in der AWS Cloud und mindestens ein CoreDNS-Replikat auf Hybridknoten aus. Konfigurationsschritte finden Sie unter Konfigurieren von Add-Ons und Webhooks für Cluster im gemischten Modus.
-
Konfigurieren Sie Webhooks so, dass sie auf Knoten in der Cloud ausgeführt werden. AWS Unter Konfiguration von Webhooks für Add-Ons erfahren Sie, wie Sie die von Community-Add-Ons verwendeten Webhooks AWS und Community-Add-Ons bei der Ausführung von Clustern im gemischten Modus konfigurieren.
-
Wenn Sie Application Load Balancers (ALB) oder Network Load Balancers (NLB) für Workload-Verkehr auf Hybridknoten verwenden, müssen die mit dem ALB oder NLB verwendeten IP-Ziele routbar sein. AWS
-
Das Metrics Server-Add-on erfordert Konnektivität von der EKS-Steuerebene zur Pod-IP-Adresse des Metrics Servers. Wenn Sie das Metrics Server-Add-on auf Hybridknoten ausführen, muss Ihr lokales Pod-CIDR in Ihrem lokalen Netzwerk routingfähig sein.
-
Um Metriken für Hybridknoten mithilfe von Amazon Managed Service for Prometheus (AMP) Managed Collectors zu sammeln, muss Ihr lokaler Pod-CIDR in Ihrem lokalen Netzwerk routingfähig sein. Sie können alternativ den AMP Managed Collector für Metriken und Knoten auf der EKS-Kontrollebene verwenden, die in der AWS Cloud ausgeführt werden, und das AWS Add-on Distro for OpenTelemetry (ADOT), um Metriken für Hybridknoten zu sammeln.
Konfigurieren Sie Add-Ons und Webhooks für Cluster im gemischten Modus
Um die mutierenden und validierenden Webhooks zu sehen, die auf Ihrem Cluster ausgeführt werden, können Sie den Ressourcentyp Erweiterungen im Bereich Ressourcen der EKS-Konsole für Ihren Cluster anzeigen oder Sie können die folgenden Befehle verwenden. EKS meldet auch Webhook-Metriken im Cluster-Observability-Dashboard, weitere Informationen finden Sie unter. Überwachen Sie Ihren Cluster mit dem Observability-Dashboard
kubectl get mutatingwebhookconfigurations
kubectl get validatingwebhookconfigurations
CoreDNS-Replikate konfigurieren
Wenn Sie einen Cluster im gemischten Modus mit Hybridknoten und Knoten in der AWS Cloud ausführen, wird empfohlen, mindestens ein CoreDNS-Replikat auf Hybridknoten und mindestens ein CoreDNS-Replikat auf Ihren Knoten in der Cloud zu haben. AWS Mit den folgenden Schritten kann der CoreDNS-Dienst so konfiguriert werden, dass er das nächstgelegene CoreDNS-Replikat bevorzugt, um Latenz- und Netzwerkprobleme in einem Cluster-Setup im gemischten Modus zu vermeiden.
-
Fügen Sie beispielsweise für jeden Ihrer Hybridknoten ein Topologiezonen-Label hinzu.
topology.kubernetes.io/zone: onprem
Dies kann alternativ in dernodeadm init
Phase erfolgen, indem Sie das Label in Ihrernodeadm
Konfiguration angeben. Beachten Sie, dass auf Knoten, die in der AWS Cloud ausgeführt werden, automatisch ein Topologiezonen-Label angewendet wird, das der Availability Zone (AZ) des Knotens entspricht.kubectl label node
hybrid-node-name
topology.kubernetes.io/zone=zone
-
Fügen
podAntiAffinity
Sie der CoreDNS-Bereitstellungskonfiguration mit dem Topologiezonenschlüssel hinzu. Sie können die CoreDNS-Bereitstellung alternativ während der Installation mit EKS-Add-Ons konfigurieren.kubectl edit deployment coredns -n kube-system
spec: template: spec: affinity: ... podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: matchExpressions: - key: k8s-app operator: In values: - kube-dns topologyKey: kubernetes.io/hostname weight: 100 - podAffinityTerm: labelSelector: matchExpressions: - key: k8s-app operator: In values: - kube-dns topologyKey: topology.kubernetes.io/zone weight: 50 ...
-
Zur Konfiguration des kube-DNS-Dienstes hinzufügen
trafficDistribution
.kubectl edit service kube-dns -n kube-system
spec: ... trafficDistribution: PreferClose
Konfigurieren Sie Webhooks für Add-Ons
Die folgenden Add-Ons verwenden Webhooks und werden für die Verwendung mit Hybridknoten unterstützt.
-
AWS Load Balancer Balancer-Controller
-
CloudWatch Agent für Beobachtbarkeit
-
AWS Distribution für OpenTelemetry (ADOT)
In den folgenden Abschnitten finden Sie Informationen zur Konfiguration der Webhooks, die von diesen Add-Ons für die Ausführung auf Knoten in der Cloud verwendet werden. AWS
AWS Load Balancer Balancer-Controller
Um den Load AWS Balancer Controller auf Knoten in der AWS Cloud in einem Cluster-Setup im gemischten Modus auszuführen, fügen Sie Ihrer Helm-Wertekonfiguration Folgendes hinzu oder geben Sie die Werte mithilfe der EKS-Add-On-Konfiguration an.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
CloudWatch Observability-Agent
Das CloudWatch Observability Agent-Add-on verfügt über einen Operator, der Webhooks verwendet. Um den Operator auf Knoten in der AWS Cloud in einem Cluster-Setup im gemischten Modus auszuführen, bearbeiten Sie die CloudWatch Observability Agent-Operatorkonfiguration. Die Möglichkeit, die Bedieneraffinität während der Installation mit Helm- und EKS-Add-Ons zu konfigurieren, ist für eine future Version geplant (siehe containers-roadmap
kubectl edit -n amazon-cloudwatch deployment amazon-cloudwatch-observability-controller-manager
spec:
...
template:
...
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
AWS Distribution für (ADOT) OpenTelemetry
Das Add-on AWS Distro for OpenTelemetry (ADOT) hat einen Operator, der Webhooks verwendet. Um den Operator auf Knoten in der AWS Cloud in einem Cluster-Setup im gemischten Modus auszuführen, fügen Sie Ihrer Helm-Wertekonfiguration Folgendes hinzu oder geben Sie die Werte mithilfe der EKS-Add-On-Konfiguration an.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
Wenn Ihr Pod-CIDR in Ihrem lokalen Netzwerk nicht routbar ist, konfigurieren Sie die benutzerdefinierte Ressourcendefinition (CRD) von ADOT Collector so, dass sie auf Ihren Hybridknoten ausgeführt wird, sodass sie die Metriken von Ihren Hybridknoten und den darauf ausgeführten Workloads abrufen kann.
kubectl -n opentelemetry-operator-system edit opentelemetrycollectors.opentelemetry.io adot-col-prom-metrics
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: In
values:
- hybrid
Sie können den ADOT-Collector so konfigurieren, dass er nur Metriken von Hybridknoten und den Ressourcen, die auf Hybridknoten ausgeführt werden, scannt, indem Sie in der ADOT Collector-CRD-Konfiguration jeweils Folgendes relabel_configs
hinzufügen. scrape_configs
relabel_configs:
- action: keep
regex: hybrid
source_labels:
- __meta_kubernetes_node_label_eks_amazonaws_com_compute_type
Für das ADOT-Add-on ist die Installation des Cert-Managers für die TLS-Zertifikate erforderlich, die vom ADOT-Operator-Webhook verwendet werden. CERT-Manager führt auch Webhooks aus und Sie können ihn so konfigurieren, dass er auf Knoten in AWS der Cloud mit der folgenden Konfiguration für Helm-Werte ausgeführt wird.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
webhook:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
cainjector:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid
startupapicheck:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: eks.amazonaws.com/compute-type
operator: NotIn
values:
- hybrid