Cilium ist eine Netzwerk-, Beobachtungs- und Sicherheitslösung mit einem EBPF-basierten Datenaplane. Es bietet ein einfaches Netzwerk mit Flat Layer 3 mit der Möglichkeit, mehrere Cluster entweder im nativen Routing- oder in einem Overlay -Modus zu überspannen. Es ist L7-Protocol bewusst und kann die Netzwerkrichtlinien auf L3-L7 unter Verwendung eines identitätsbasierten Sicherheitsmodells durchsetzen, das von der Netzwerkadressierung entkoppelt ist.
Cilium implementiert einen verteilten Lastausgleich für den Verkehr zwischen Pods und externe Dienste und kann Kube-Proxy vollständig ersetzen, indem sie effiziente Hash-Tabellen in EBPF verwenden, die eine nahezu unbegrenzte Skala ermöglichen. Es unterstützt auch erweiterte Funktionen wie integriertes Eindring- und Egress -Gateway, Bandbreitenmanagement und Service -Mesh und bietet tiefgreifende Netzwerk- und Sicherheitssichtbarkeit und Überwachung.
Eine neue Linux -Kernel -Technologie namens EBPF ist die Grundlage von Cilium. Es unterstützt das dynamische Einfügen von EBPF -Bytecode in den Linux -Kernel an verschiedenen Integrationspunkten wie: Netzwerk -IO, Anwendungsstücken und TracePoints zur Implementierung von Sicherheits-, Netzwerk- und Sichtbarkeitslogik. EBPF ist hocheffizient und flexibel. Um mehr über EBPF zu erfahren, besuchen Sie EBPF.IO.
Die Cilium -Community unterhält in den letzten drei kleinen Cilium -Versionen geringfügige stabile Veröffentlichungen. Ältere cilium -stabile Versionen aus kleineren Releases werden als EOL betrachtet.
Für Upgrades zu neuen Nebenveröffentlichungen wenden Sie sich bitte an den Cilium Upgrade Guide.
Im Folgenden sind die aktiv gepflegten Release -Zweige zusammen mit ihrer neuesten Patch -Version aufgeführt, entsprechende Bild -Pull -Tags und deren Versionshinweise:
v1.16 | 2024-11-14 | quay.io/cilium/cilium:v1.16.4 | Versionshinweise |
v1.15 | 2024-11-14 | quay.io/cilium/cilium:v1.15.11 | Versionshinweise |
v1.14 | 2024-11-14 | quay.io/cilium/cilium:v1.14.17 | Versionshinweise |
Ciliumbilder werden für AMD64- und AARCH64 -Architekturen verteilt.
Ab Cilium Version 1.13.0 enthalten alle Bilder einen Software -Material (SBOM). Das SBOM wird im SPDX -Format erzeugt. Weitere Informationen dazu finden Sie auf Cilium SBOM.
Für die Entwicklung und Testzwecke veröffentlicht die Cilium -Community Snapshots, Early Release -Kandidaten (RC) und CI -Containerbilder aus der Hauptzweig. Diese Bilder dienen nicht zur Produktion.
Zum Testen von Upgrades zu neuen Entwicklungsveröffentlichungen wenden Sie sich bitte an den neuesten Entwicklungsbau des Cilium Upgrade -Handbuchs.
Im Folgenden finden Sie Zweige zum Testen zusammen mit ihren Snapshots oder RC -Releases, entsprechenden Bild -Pull -Tags und ihrer Versionshinweise, sofern zutreffend:
hauptsächlich | täglich | quay.io/cilium/cilium-ci:latest | N / A |
v1.17.0-pre.2 | 2024-11-01 | quay.io/cilium/cilium:v1.17.0-pre.2 | Pre -Release -Kandidatennotizen |
Fähigkeit, moderne Anwendungsprotokolle wie REST/HTTP, GRPC und KAFKA zu sichern. Traditionelle Firewalls arbeiten in Schicht 3 und 4. Ein Protokoll, das auf einem bestimmten Port ausgeführt wird, ist entweder vollständig vertrauenswürdig oder vollständig blockiert. Cilium bietet die Möglichkeit, einzelne Anwendungsprotokollanforderungen zu filtern, wie z. B.:
Erlauben Sie allen HTTP -Anforderungen mit Methode GET
und Path /public/.*
. Alle anderen Anfragen verweigern.
Ermöglichen Sie, dass service1
zu Kafka Topic topic1
und service2
produzieren, um zu topic1
zu konsumieren1. Alle anderen Kafka -Nachrichten ablehnen.
Erhalten Sie, dass der HTTP-Header X-Token: [0-9]+
in allen Ruheanrufen vorhanden sein wird.
In unserer Dokumentation finden Sie die neuesten Liste der unterstützten Protokolle und Beispiele zur Verwendung der Verwendung in unserer Dokumentation.
Moderne verteilte Anwendungen stützen sich auf Technologien wie Anwendungscontainer, um die Agilität beim Einsatz zu erleichtern und bei Bedarf zu skalieren. Dies führt zu einer großen Anzahl von Anwendungscontainern, die in kurzer Zeit gestartet werden. Typische Container -Firewalls sichern Workloads durch Filterung von IP -Adressen und Zielports für Quellen. Dieses Konzept erfordert, dass die Firewalls auf allen Servern manipuliert werden, wenn ein Behälter überall im Cluster gestartet wird.
Um diese Situation zu vermeiden, die die Skala einschränkt, weist Cilium Gruppen von Anwendungscontainern eine Sicherheitsidentität zu, die identische Sicherheitsrichtlinien teilen. Die Identität wird dann allen von den Anwendungscontainern emittierten Netzwerkpakete zugeordnet, sodass die Identität am empfangenden Knoten validiert werden kann. Die Sicherheitsidentitätsverwaltung wird mit einem Schlüsselwertgeschäft durchgeführt.
Labelbasierte Sicherheit ist das Tool der Wahl für die interne Zugriffskontrolle von Cluster. Um den Zugang zu und aus externen Diensten zu gewährleisten, werden herkömmliche CIDR -basierte Sicherheitsrichtlinien sowohl für Ein- als auch aus dem Ausstieg unterstützt. Dies ermöglicht es, den Zugriff auf und von Anwendungscontainern auf bestimmte IP -Bereiche zu begrenzen.
Ein einfaches Netzwerk mit Flat Layer 3 mit der Möglichkeit, mehrere Cluster zu überspannen, verbindet alle Anwendungscontainer. Die IP -Zuordnung wird durch die Verwendung von Host -Scope -Allokatoren einfach gehalten. Dies bedeutet, dass jeder Host IPS ohne Koordination zwischen Hosts zuweisen kann.
Die folgenden Multi -Knoten -Netzwerkmodelle werden unterstützt:
Überlagerung: Kapselungsbasierte virtuelle Netzwerk, das alle Hosts überspannt. Derzeit sind VXLAN und Geneve eingebacken, aber alle von Linux unterstützten Kapselungsformate können aktiviert werden.
Um diesen Modus zu verwenden: Dieser Modus hat minimale Infrastruktur- und Integrationsanforderungen. Es funktioniert bei fast jeder Netzwerkinfrastruktur, da die einzige Anforderung die IP -Konnektivität zwischen Hosts ist, die normalerweise bereits angegeben ist.
Native Routing: Verwendung der regulären Routing -Tabelle des Linux -Hosts. Das Netzwerk muss in der Lage sein, die IP -Adressen der Anwendungscontainer weiterzuleiten.
Wann dieses Modus verwendet werden: Dieser Modus ist für erweiterte Benutzer gedacht und erfordert ein gewisses Bewusstsein für die zugrunde liegende Netzwerkinfrastruktur. Dieser Modus funktioniert gut mit:
Native IPv6 -Netzwerke
In Verbindung mit Cloud -Netzwerkroutern
Wenn Sie bereits Routing -Dämonen ausführen
Cilium implementiert einen verteilten Lastausgleich für den Verkehr zwischen Anwendungscontainern und externe Dienste und kann Komponenten wie Kube-Proxy vollständig ersetzen. Der Lastausgleich wird in EBPF mit effizienten Hashtabellen implementiert, die eine nahezu unbegrenzte Skala ermöglichen.
Für den Nord-Süd-Lastausgleich wird die EBPF-Implementierung von Cilium für die maximale Leistung optimiert, kann an XDP (Express Data Path) beigefügt werden und unterstützt die direkte Serverrückgabe (DSR) sowie Maglev konsistent, wenn der Lastausgleichsbetrieb nicht ausgeführt wird auf dem Quell -Host.
Für den Ost-West-Lastausgleich führt Cilium eine effiziente Service-zu-Backend-Übersetzung direkt in der Socket-Schicht des Linux-Kernels (z. B. bei TCP Connect-Zeit) durch, sodass die NAT-Operationen pro Paket in unteren Schichten vermieden werden können.
Cilium implementiert das Bandbreitenmanagement durch effiziente EDT-basierte (früheste Abfahrtszeit), die mit EBPF für den Containerverkehr, der einen Knoten ausirdiert, bewertet. Dies ermöglicht die erhebliche Reduzierung von Übertragungsschwanzlatenzen für Anwendungen und die Vermeidung der Verriegelung unter mehreren NICs im Vergleich zu herkömmlichen Ansätzen wie HTB (Hierarchie-Token-Bucket) oder TBF (Token-Bucket-Filter), wie zum Beispiel im Bandbreiten-CNI-Plugin verwendet.
Die Fähigkeit, Sichtbarkeit zu erlangen und Probleme zu beheben, ist für den Betrieb eines verteilten Systems von grundlegender Bedeutung. Während wir gelernt haben, Tools wie tcpdump
und ping
zu lieben und während sie immer einen besonderen Platz in unseren Herzen finden, bemühen wir uns, eine bessere Werkzeuge für die Fehlerbehebung zu bieten. Dies beinhaltet das Werkzeug zur Bereitstellung:
Ereignisüberwachung mit Metadaten: Wenn ein Paket fallen gelassen wird, meldet das Tool nicht nur die Quell- und Ziel -IP des Pakets, das Tool enthält die vollständigen Etiketteninformationen sowohl des Absenders als auch des Empfängers unter vielen anderen Informationen.
Metriken Exportieren über Prometheus: Die wichtigsten Metriken werden über Prometheus zur Integration in Ihre vorhandenen Dashboards exportiert.
Hubble: Eine nach Cilium geschriebene Beobachtbarkeitsplattform. Es bietet Service -Abhängigkeitskarten, operative Überwachung und Alarmierung sowie Anwendungs- und Sicherheitssichtbarkeit anhand von Durchflussprotokollen.
Warum Cilium?
Erste Schritte
Architektur und Konzepte
Cilium installieren
Häufig gestellte Fragen
Beitragen
Berkeley Packet Filter (BPF) ist ein Linux -Kernel -Bytecode -Interpreter, der ursprünglich Filternetzwerkpakete eingeführt wurde, z. B. für TCPDump- und Socket -Filter. Der BPF -Befehlssatz und die umliegende Architektur wurden in letzter Zeit mit zusätzlichen Datenstrukturen wie Hash -Tabellen und -Arrays für den Zustand sowie zusätzliche Aktionen zur Unterstützung von Paket -Mangeln, Weiterleitungen, Kapselung usw. erheblich überarbeitet Damit Programme in C geschrieben und in BPF -Anweisungen zusammengestellt werden können. Ein In-Kernel-Verifizierer stellt sicher, dass BPF-Programme sicher ausgeführt werden können, und ein JIT-Compiler wandelt den BPF-Bytecode in CPU-architekturspezifische Anweisungen für native Ausführungseffizienz um. BPF -Programme können an verschiedenen Hakenpunkten im Kernel durchgeführt werden, z.
BPF entwickelt sich weiterentwickelt und erlangt mit jeder neuen Linux -Version zusätzliche Funktionen. Cilium nutzt BPF, um die Kerndatenpfadfilterung, Begleitung, Überwachung und Umleitung durchzuführen, und erfordert BPF -Funktionen, die sich in jedem Linux -Kernel -Version 4.8.0 oder neuer befinden (der neueste aktuelle stabile Linux -Kernel ist 4.14.x).
Viele Linux -Verteilungen, darunter Coreos, Debian, Dockers Linuxkit, Fedora, OpenSuse und Ubuntu, versenden Kernel -Versionen bereits> = 4.8.x. Sie können Ihre Linux -Kernel -Version überprüfen, indem Sie uname -a
ausführen. Wenn Sie noch keinen kürzlich genügend Kernel ausführen, überprüfen Sie die Dokumentation Ihrer Linux -Verteilung, wie Sie Linux -Kernel 4.9.x oder höher ausführen.
Weitere Informationen zu den erforderlichen Kernelversionen, um die BPF -Laufzeit auszuführen, finden Sie in den Abschnittsvoraussetzungen.
XDP ist ein weiterer Schritt in der Evolution und ermöglicht das Ausführen eines bestimmten Geschmacks von BPF -Programmen vom Netzwerktreiber mit direktem Zugriff auf den DMA -Puffer des Pakets. Dies ist per Definition der früheste mögliche Punkt im Software -Stapel, an dem Programme beigefügt werden können, um einen programmierbaren Hochleistungs -Paket -Prozessor im Linux -Kernel -Netzwerkdatenpfad zu ermöglichen.
Weitere Informationen zu BPF und XDP, die für Entwickler gezielt gezielt wurden, finden Sie im BPF- und XDP -Referenzhandbuch.
Um mehr über Cilium zu erfahren, werfen sich seine Verlängerungen und Anwendungsfälle in der Nähe von Cilium und BPF den weiteren Abschnitt mit weiteren Messwerten an.
Schließen Sie sich dem Cilium Slack -Kanal an, um mit Ciliumentwicklern und anderen Cilium -Nutzern zu chatten. Dies ist ein guter Ort, um sich über Cilium zu lernen, Fragen zu stellen und Ihre Erfahrungen zu teilen.
Eine Liste aller Sigs und deren Besprechungszeiten finden Sie in besonderen Interessengruppen.
Die Cilium Developer -Community hängt im Zoom, um sich zu unterhalten. Jeder ist willkommen.
Wöchentlich, Mittwoch, 17:00 Uhr Europa/Zürich Zeit (CET/CEST), normalerweise entspricht 8:00 Uhr PT oder 11:00 Uhr ET. Notizen treffen und Informationen zoomen
Dritter Mittwoch eines jeden Monats, 9:00 Uhr Japan Zeit (JST). APAC -Meeting -Notizen und Zoom -Informationen
Wir veranstalten eine wöchentliche Community -YouTube -Livestream namens Echo, die (sehr locker!) Für EBPF & Cilium Office -Stunden steht. Besuchen Sie uns live, treffen Sie sich mit früheren Episoden oder besuchen Sie das Echo -Repo und teilen Sie uns Ihre Ideen für Themen mit, die wir behandeln sollten.
Das Cilium -Projekt unterliegt einer Gruppe von Inhaber und Ausschüssen. Wie sie ausgewählt und regiert werden, wird in unserem Governance -Dokument umrissen.
Eine Liste von Anwendern des Cilium -Projekts, die es in der Produktion und ihrer Anwendungsfälle einsetzen, finden Sie in Dateibenutzern.md.
Cilium unterhält eine öffentliche Roadmap. Es gibt einen hochrangigen Blick auf die Hauptprioritäten für das Projekt, die Reife verschiedener Merkmale und Projekte und die Beeinflussung der Projektrichtung.
Die Cilium User Space -Komponenten sind unter der Apache -Lizenz, Version 2.0, lizenziert. Die BPF-Code-Vorlagen sind unter der allgemeinen öffentlichen Lizenz, Version 2.0 (nur) (nur) und die 2-Klausel-BSD-Lizenz (Sie können die Bestimmungen der beiden Lizenz zu Ihrer Option verwenden) doppelt lizenziert).