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.
CNI für Hybridknoten konfigurieren
Cilium ist das AWS unterstützte Container Networking Interface (CNI) für Amazon EKS-Hybridknoten. Sie müssen ein CNI für Hybridknoten installieren, damit diese für die Verarbeitung von Workloads bereit sind. Hybridknoten werden mit dem Status Not Ready angezeigt, bis ein CNI ausgeführt wird. Sie können das CNI mit Tools Ihrer Wahl, wie beispielsweise Helm, verwalten. Die Anweisungen auf dieser Seite behandeln das Lebenszyklusmanagement von Cilium (Installation, Upgrade, Löschung). Informationen zur Konfiguration von Cilium für Ingress, Load Balancing und Netzwerkrichtlinien finden Sie unter Übersicht über Cilium Ingress und Cilium Gateway, Servicetyp LoadBalancer und Konfiguration von Kubernetes-Netzwerkrichtlinien für Hybridknoten.
Cilium wird nicht unterstützt, AWS wenn es auf Knoten in der Cloud ausgeführt wird. AWS Das Amazon VPC CNI ist nicht mit Hybridknoten kompatibel und das VPC CNI ist mit Anti-Affinität für das Label eks.amazonaws.com/compute-type: hybrid konfiguriert.
Die zuvor auf dieser Seite befindliche Calico-Dokumentation wurde in das EKS-Repository für Hybrid-Beispiele
Versionskompatibilität
Cilium-Versionen v1.17.x und v1.18.x werden für EKS-Hybridknoten für jede in Amazon EKS unterstützte Kubernetes-Version unterstützt.
Anmerkung
Kernelanforderung für Cilium v1.18.3: Aufgrund der Kernelanforderungen (Linux-Kernel >= 5.10) wird Cilium v1.18.3 nicht unterstützt auf:
-
Ubuntu 20.04
-
Red Hat Enterprise Linux (RHEL) 8
Die Systemanforderungen finden Sie unter Systemanforderungen für Cilium.
Informationen zu den von Amazon EKS unterstützten Kubernetes-Versionen finden Sie unter Kubernetes-Versionsunterstützung. EKS-Hybridknoten verfügen über dieselbe Kubernetes-Versionsunterstützung wie Amazon-EKS-Cluster mit Cloud-Knoten.
Unterstützte Funktionen
AWS verwaltet Builds von Cilium für EKS-Hybridknoten, die auf dem Open-Source-Projekt Cilium
AWS bietet technischen Support für die Standardkonfigurationen der folgenden Funktionen von Cilium zur Verwendung mit EKS-Hybridknoten. Wenn Sie beabsichtigen, Funktionen außerhalb des AWS Supports zu nutzen, wird empfohlen, alternativen kommerziellen Support für Cilium in Anspruch zu nehmen oder über das interne Fachwissen zu verfügen, um Fehler zu beheben und Problemlösungen für das Cilium-Projekt bereitzustellen.
| Cilium-Feature | Unterstützt von AWS |
|---|---|
|
Kubernetes-Netzwerkkonformität |
Ja |
|
Konnektivität des zentralen Clusters |
Ja |
|
IP-Familie |
IPv4 |
|
Verwaltung des Lebenszyklus |
Helm |
|
Netzwerkmodus |
VXLAN-Kapselung |
|
IP-Adressverwaltung (IPAM) |
Cilium-IPAM-Cluster-Umfang |
|
Netzwerkrichtlinie |
Kubernetes-Netzwerkrichtlinie |
|
Border Gateway Protocol (BGP) |
Cilium-BGP-Steuerebene |
|
Kubernetes Ingress |
Cilium Ingress, Cilium-Gateway |
|
Zuweisung von LoadBalancer Dienst-IP-Adressen |
Cilium Load Balancer IPAM |
|
Werbung für die LoadBalancer IP-Adresse des Dienstes |
Cilium-BGP-Steuerebene |
|
Ersatz für kube-proxy |
Ja |
Überlegungen zu Cilium
-
Helm-Repository — AWS hostet das Cilium Helm-Diagramm im Amazon Elastic Container Registry Public (Amazon ECR Public) bei Amazon EKS
Cilium/Cilium. Zu den verfügbaren Versionen gehören: -
Cilium v1.17.9:
oci://public.ecr.aws/eks/cilium/cilium:1.17.9-0 -
Zilium v1.18.3:
oci://public.ecr.aws/eks/cilium/cilium:1.18.3-0Die Befehle in diesem Thema verwenden dieses Repository. Beachten Sie, dass bestimmte
helm repo-Befehle für Helm-Repositorys in Amazon ECR Public nicht gültig sind. Sie können daher nicht von einem lokalen Helm-Repository-Namen auf dieses Repository verweisen. Verwenden Sie stattdessen in den meisten Befehlen die vollständige URI.
-
-
Standardmäßig ist Cilium so konfiguriert, dass es im Überlagerungs-/Tunnelmodus mit VXLAN als Kapselungsmethode
ausgeführt wird. Dieser Modus stellt die geringsten Anforderungen an das zugrunde liegende physische Netzwerk. -
Standardmäßig maskiert
Cilium die Quell-IP-Adresse des gesamten Pod-Datenverkehrs, der den Cluster verlässt, mit der IP-Adresse des Knotens. Wenn Sie Masquerading deaktivieren, CIDRs muss Ihr Pod in Ihrem lokalen Netzwerk routingfähig sein. -
Wenn Sie Webhooks auf Hybridknoten ausführen, CIDRs muss Ihr Pod in Ihrem lokalen Netzwerk routingfähig sein. Wenn CIDRs Ihr Pod in Ihrem lokalen Netzwerk nicht routbar ist, wird empfohlen, Webhooks auf Cloud-Knoten im selben Cluster auszuführen. Weitere Informationen finden Sie unter Konfiguration von Webhooks für Hybridknoten und Vorbereitung der Vernetzung für Hybridknoten.
-
AWS empfiehlt, die integrierte BGP-Funktionalität von Cilium zu verwenden, um Ihren Pod in Ihrem lokalen Netzwerk CIDRs routingfähig zu machen. Weitere Informationen zur Konfiguration von Cilium BGP mit Hybridknoten finden Sie unter Konfiguration von Cilium BGP für Hybridknoten.
-
Die standardmäßige IP-Adressverwaltung (IPAM) in Cilium heißt Cluster Scope
. Dabei weist der Cilium-Operator jedem Knoten auf der Grundlage des vom Benutzer konfigurierten Pods IP-Adressen zu. CIDRs
Cilium in Hybridknoten installieren
Verfahren
-
Erstellen Sie eine YAML-Datei mit dem Namen
cilium-values.yaml. Im folgenden Beispiel wird Cilium so konfiguriert, dass es nur in Hybridknoten ausgeführt wird, indem die Affinität für daseks.amazonaws.com/compute-type: hybrid-Label für den Cilium-Agenten und -Operator festgelegt wird.-
Verwenden Sie für die Konfiguration
clusterPoolIpv4PodCIDRListdenselben Pod, den CIDRs Sie für die Remote-Pod-Netzwerke Ihres EKS-Clusters konfiguriert haben. Beispiel,10.100.0.0/24. Der Cilium-Operator weist IP-Adressbereiche aus der konfiguriertenclusterPoolIpv4PodCIDRList-IP-Umgebung zu. Ihr Pod-CIDR darf sich nicht mit Ihrem On-Premises-Knoten-CIDR, Ihrem VPC-CIDR oder Ihrem Kubernetes-Service-CIDR überschneiden. -
Konfigurieren Sie
clusterPoolIpv4MaskSizebasierend auf den von Ihnen benötigten Pods pro Knoten. Beispiel:25für eine /25-Segmentgröße von 128 Pods pro Knoten. -
Ändern Sie
clusterPoolIpv4PodCIDRListoderclusterPoolIpv4MaskSizenicht, nachdem Sie Cilium in Ihrem Cluster bereitgestellt haben. Weitere Informationen finden Sie unter Erweiterung des Cluster-Pools. -
Wenn Sie Cilium im Kube-Proxy-Ersatzmodus ausführen, setzen Sie
kubeProxyReplacement: "true"in Ihren Helm-Werten und stellen Sie sicher, dass Sie keine vorhandene Kube-Proxy-Bereitstellung auf denselben Knoten wie Cilium ausführen. -
Das folgende Beispiel deaktiviert den Envoy Layer 7 (L7)-Proxy, den Cilium für L7-Netzwerkrichtlinien und Ingress verwendet. Weitere Informationen erhalten Sie unter Konfiguration von Kubernetes-Netzwerkrichtlinien für Hybridknoten und Übersicht über Cilium Ingress und Cilium Gateway.
-
Das nachstehende Beispiel konfiguriert
loadBalancer.serviceTopology:truefür die Verteilung des Service-Datenverkehrs, damit dieser korrekt funktioniert, wenn Sie ihn für Ihre Services konfigurieren. Weitere Informationen finden Sie unter Verteilung des Service-Datenverkehrs konfigurieren. -
Eine vollständige Liste der Helm-Werte für Cilium finden Sie in der Helm-Referenz
in der Cilium-Dokumentation. affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid ipam: mode: cluster-pool operator: clusterPoolIPv4MaskSize:25clusterPoolIPv4PodCIDRList: -POD_CIDRloadBalancer: serviceTopology: true operator: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid unmanagedPodWatcher: restart: false loadBalancer: serviceTopology: true envoy: enabled: false kubeProxyReplacement: "false"
-
-
Installieren Sie Cilium auf Ihrem Cluster.
-
CILIUM_VERSIONErsetzen Sie es durch eine Cilium-Version (zum Beispiel1.17.9-0oder1.18.3-0). Es wird empfohlen, die neueste Patch-Version für die Cilium-Nebenversion zu verwenden. -
Stellen Sie sicher, dass Ihre Knoten die Kernel-Anforderungen für die von Ihnen gewählte Version erfüllen. Cilium v1.18.3 erfordert einen Linux-Kernel >= 5.10.
-
Wenn Sie eine bestimmte Kubeconfig-Datei verwenden, verwenden Sie das Flag
--kubeconfigmit dem Helm-Installationsbefehl.helm install cilium oci://public.ecr.aws/eks/cilium/cilium \ --versionCILIUM_VERSION\ --namespace kube-system \ --values cilium-values.yaml
-
-
Bestätigen Sie mit den folgenden Befehlen, dass Ihre Cilium-Installation erfolgreich war Sie sollten die
cilium-operator-Bereitstellung und diecilium-agent-Ausführung auf jedem Ihrer Hybridknoten anzeigen können. Darüber hinaus sollten Ihre Hybridknoten nun den StatusReadyaufweisen. Informationen darüber, wie Sie Cilium BGP so konfigurieren, dass Ihr Pod in Ihrem lokalen Netzwerk angekündigt wird, finden CIDRs Sie unter. Konfiguration von Cilium BGP für Hybridknotenkubectl get pods -n kube-systemNAME READY STATUS RESTARTS AGE cilium-jjjn8 1/1 Running 0 11m cilium-operator-d4f4d7fcb-sc5xn 1/1 Running 0 11mkubectl get nodesNAME STATUS ROLES AGE VERSION mi-04a2cf999b7112233 Ready <none> 19m v1.31.0-eks-a737599
Cilium in Hybridknoten aktualisieren
Lesen Sie vor dem Upgrade Ihrer Cilium-Bereitstellung die Cilium-Upgrade-Dokumentation
-
Stellen Sie sicher, dass Sie die
helm-CLI in Ihrer Befehlszeilenumgebung installiert haben. Installationsanweisungen finden Sie in der Helm-Dokumentation. -
Führen Sie die Vorabprüfung für das Cilium-Upgrade durch. Ersetzen Sie
CILIUM_VERSIONdurch Ihre gewünschte Cilium-Version. Wir empfehlen, die neueste Patch-Version für Ihre Cilium-Nebenversion zu verwenden. Die neueste Patch-Version für eine bestimmte Cilium-Nebenversion finden Sie im Abschnitt Stabile Versionender Cilium-Dokumentation. helm install cilium-preflight oci://public.ecr.aws/eks/cilium/cilium --version CILIUM_VERSION \ --namespace=kube-system \ --set preflight.enabled=true \ --set agent=false \ --set operator.enabled=false -
Stellen Sie nach dem Anwenden von
cilium-preflight.yamlsicher, dass die Anzahl derREADY-Pods mit der Anzahl der ausgeführten Cilium-Pods übereinstimmt.kubectl get ds -n kube-system | sed -n '1p;/cilium/p'NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE cilium 2 2 2 2 2 <none> 1h20m cilium-pre-flight-check 2 2 2 2 2 <none> 7m15s -
Sobald die Anzahl der READY-Pods gleich ist, stellen Sie sicher, dass die Cilium-Bereitstellung vor dem Flug auch als READY 1/1 markiert ist. Wenn „READY 0/1“ angezeigt wird, lesen Sie den Abschnitt zur CNP-Validierung
und beheben Sie Probleme mit der Bereitstellung, bevor Sie mit dem Upgrade fortfahren. kubectl get deployment -n kube-system cilium-pre-flight-check -wNAME READY UP-TO-DATE AVAILABLE AGE cilium-pre-flight-check 1/1 1 0 12s -
Vorabprüfung löschen
helm uninstall cilium-preflight --namespace kube-system -
Bewahren Sie vor dem Ausführen des
helm upgrade-Befehls die Werte für Ihre Bereitstellung in einemexisting-cilium-values.yamlauf oder verwenden Sie--set-Befehlszeilenoptionen für Ihre Einstellungen, wenn Sie den Upgrade-Befehl ausführen. Der Upgrade-Vorgang überschreibt das Cilium ConfigMap, daher ist es wichtig, dass Ihre Konfigurationswerte beim Upgrade übergeben werden.helm get values cilium --namespace kube-system -o yaml > existing-cilium-values.yaml -
Im normalen Cluster-Betrieb sollten alle Cilium-Komponenten in derselben Version ausgeführt werden. Die folgenden Schritte beschreiben, wie Sie alle Komponenten von einer stabilen Version auf eine spätere stabile Version aktualisieren. Beim Upgrade von einer Nebenversion auf eine andere Nebenversion wird empfohlen, zuerst auf die neueste Patch-Version für die vorhandene Cilium-Nebenversion zu aktualisieren. Um Störungen zu minimieren, setzen Sie die Option
upgradeCompatibilityauf die ursprüngliche Cilium-Version, die Sie in diesem Cluster installiert haben.helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium --versionCILIUM_VERSION\ --namespace kube-system \ --set upgradeCompatibility=1.X\ -f existing-cilium-values.yaml -
(Optional) Wenn Sie Ihr Upgrade aufgrund von Problemen zurücksetzen müssen, führen Sie die folgenden Befehle aus.
helm history cilium --namespace kube-system helm rollback cilium [REVISION] --namespace kube-system
Cilium aus Hybridknoten löschen
-
Führen Sie den folgenden Befehl aus, um alle Cilium-Komponenten aus Ihrem Cluster zu deinstallieren. Beachten Sie, dass die Deinstallation des CNI die Integrität von Knoten und Pods beeinträchtigen kann und nicht in Produktions-Clustern durchgeführt werden sollte.
helm uninstall cilium --namespace kube-systemDie von Cilium konfigurierten Schnittstellen und Routen werden standardmäßig nicht entfernt, wenn das CNI aus dem Cluster entfernt wird. Weitere Informationen finden Sie unter dem GitHub Problem
. -
Um die Konfigurationsdateien und Ressourcen auf der Festplatte zu bereinigen, können Sie, wenn Sie die Standardkonfigurationsverzeichnisse verwenden, die Dateien wie im
cni-uninstall.shSkriptim Cilium-Repository unter gezeigt entfernen. GitHub -
Um die benutzerdefinierten Cilium-Ressourcendefinitionen (CRDs) aus Ihrem Cluster zu entfernen, können Sie die folgenden Befehle ausführen.
kubectl get crds -oname | grep "cilium" | xargs kubectl delete