Neu in Cilium
Cilium liefert etwa alle sechs Monate eine Minor-Linie: 1.18 im Juli 2025, 1.19 im Februar 2026, 1.20 im Juli 2026. Leitlinie der letzten drei Releases ist der Ausbau der Gateway API, die Stabilisierung von IPv6 und Multi-Pool-IPAM sowie das konsequente Entfernen alter Flags und v2alpha1-CRDs.
Zuletzt geprüft: 1. Oktober 2026. Jeder Eintrag stammt aus den Release Notes des Projekts, verlinkt am Seitenende. Das ist eine kuratierte Auswahl, kein vollständiger Changelog.
1.20
29.07.2026- Breaking Gateway API v1.6.1 ist Mindestvoraussetzung
Cilium 1.20 verlangt Gateway-API-CRDs ab v1.6.1, weil TLSRoute von v1alpha2 auf v1 gehoben wurde. Wer TLSRoute nutzt, muss die Experimental-Variante aus v1.6.1 installieren: mit der Standard-Variante liest der API-Server bestehende TLSRoute-Objekte nicht mehr aus etcd, sie verschwinden faktisch aus dem Cluster. Vor dem Upgrade sichern.
- neu Gateway API deutlich breiter
ListenerSets erlauben Applikationsteams eigene Listener an einem Gateway, das dem Plattformteam gehört. Dazu kommen BackendTLSPolicy für TLS bis zum Backend, TCPRoute und UDPRoute für Nicht-HTTP-Dienste sowie der ExternalAuth-Filter für externe Authentifizierung vor der Anwendung.
- neu Kubernetes ClusterNetworkPolicy
Cilium unterstützt die clusterweite Upstream-Policy-API (network-policy-api, v1alpha2) mit den Tiers Admin und Baseline. Sie ist opt-in über k8sClusterNetworkPolicy.enabled=true, die CRD wird separat installiert. Volle Konformität verlangt policyCIDRMatchMode=pods,nodes (Beta), weil die API CIDR-Regeln auch auf Pod- und Node-IPs anwendet; pods kostet je getroffenem Pod eine zusätzliche Identity. Regeln der Admin-Tier haben Vorrang vor NetworkPolicy, CiliumNetworkPolicy und CiliumClusterwideNetworkPolicy und lassen sich von diesen nicht übersteuern. Das ist bei einer Migration weg von CCNP zu beachten.
- GA MCS-API stabil
Die Multi-Cluster-Services-API verliert den Beta-Status, den sie in 1.19 noch trug, und nutzt jetzt die v1beta1-CRDs (v1alpha1 bleibt unterstützt). Sie steht gleichrangig neben den annotationsbasierten Global Services: MCS-API für den SIG-Multicluster-Standard mit clusterset.local-DNS, Global Services für feinere Kontrolle je Cluster. Aktiviert wird sie per clustermesh.mcsapi.enabled, der alte Wert clustermesh.enableMCSAPISupport ist entfernt. Für clusterset.local braucht es CoreDNS ab 1.12.2 (Default ab Kubernetes 1.35).
- Breaking Cluster-Mesh-Zertifikate gelten nur noch ein Jahr
Automatisch erzeugte Cluster-Mesh-Zertifikate laufen seit 1.20 standardmäßig nach einem Jahr ab, wie die Hubble-Zertifikate. Mit der Default-Methode helm werden sie nur beim Re-Rendern des Charts erneuert, also beim Upgrade. Wer nicht mindestens jährlich upgradet, stellt auf cronJob oder certmanager um oder setzt clustermesh.apiserver.tls.auto.certValidityDuration.
- Breaking NodePort-Verbindungen aus Pods werden ohne Socket-LB sofort balanciert
Mit kube-proxy-Replacement und abgeschaltetem Socket-LB oder socketLB.hostNamespaceOnly=true werden In-Cluster-Verbindungen von Pods zu NodePort-Services jetzt schon beim Verlassen des Client-Pods auf ein Backend balanciert, nicht erst am Ziel-Node. Die Egress-Policy des Clients muss deshalb die Service-Backends erlauben, die Ingress-Policy der Backends den Client-Pod. Betroffen ist etwa jeder Betrieb mit Istio, dessen Cilium-Anleitung socketLB.hostNamespaceOnly=true verlangt.
- Breaking Alte Strict-Mode-Schlüssel entfernt
Die Helm-Werte encryption.strictMode.enabled, .cidrs und .allowRemoteNodeIdentities sind samt Agent-Flags (--enable-encryption-strict-mode, --encryption-strict-mode-cidr, --encryption-strict-mode-allow-remote-node-identities) entfernt. Ersatz sind encryption.strictMode.egress.enabled, .egress.cidrs und .egress.allowRemoteNodeIdentities. Values vor dem Upgrade umstellen.
- Breaking proxylib, Kafka-Policies und CiliumNodeConfig v2alpha1 entfernt
Envoy Go Extensions und Kafka-aware Policies sind raus, nachdem sie in 1.18 beziehungsweise 1.19 deprecated wurden. Policies mit kafka, l7 oder l7proto unter toPorts[].rules müssen vor dem Upgrade bereinigt werden. CiliumNodeConfig muss auf cilium.io/v2 stehen.
- läuft aus Mutual Authentication läuft aus
Die Out-of-band-mTLS-Funktion ist deprecated und wird in einer künftigen Version entfernt, ein Termin steht nicht im Upgrade-Guide. Als Alternative nennt der Upgrade-Guide die ztunnel-Verschlüsselung und bittet um Rückmeldung, ob sie die Anwendungsfälle abdeckt. Der ztunnel-Pfad nutzt wahlweise eine interne CA oder SPIRE-Identitäten, wird selbst aber weiterhin als Beta geführt.
1.19
03.02.2026- Breaking ClusterMesh-Policies gelten per Default nur lokal
policy-default-local-cluster steht ab 1.19 auf true. Ingress- und Egress-Selektoren wählen damit nur noch Endpoints im lokalen Cluster, sofern die Policy nicht ausdrücklich Cluster benennt. Wer ClusterMesh und Netzwerk-Policies kombiniert, prüft vorher mit cilium clustermesh inspect-policy-default-local-cluster --all-namespaces, welche Policies betroffen sind.
- Breaking BGPv1 und CiliumBGPPeeringPolicy entfernt
Die alte BGP-Control-Plane samt CiliumBGPPeeringPolicy ist raus. Die Migration auf die v2-CRDs CiliumBGPClusterConfig, CiliumBGPPeerConfig, CiliumBGPAdvertisement und CiliumBGPNodeConfigOverride muss vor dem Upgrade abgeschlossen sein.
- GA Multi-Pool IPAM von Beta auf Stable
Der Beta-Hinweis fällt aus der Dokumentation, der Modus unterstützt jetzt auch IPsec und Direct Routing. Damit ist die Zuteilung von PodCIDRs aus mehreren Pools über Workload-Annotationen und Node-Labels produktionstauglich.
- Breaking kube-proxy-Replacement-Flags und Altlasten entfernt
Die Einzelschalter --enable-node-port, --enable-host-port und --enable-external-ips sind weg, die Funktionen hängen jetzt an --kube-proxy-replacement=true. Ebenfalls entfernt: --enable-session-affinity, --enable-internal-traffic-policy, --enable-svc-source-range-check, Custom Calls, der PCAP-Recorder und --enable-ipv4-egress-gateway.
- neu Strict Mode für Ingress, DNS-Policies matchen tiefer
encryption-strict-mode-ingress verwirft unverschlüsselten Pod-zu-Pod-Verkehr und setzt WireGuard mit Tunneling voraus. DNS-Policies matchen ** jetzt echt über mehrere Subdomain-Ebenen statt wie bisher als einfaches *. Bestehende Muster mit ** am Anfang matchen dadurch breiter als vorher.
1.18
29.07.2025- neu Load-Balancing-Control-Plane neu gebaut
Die Service-Load-Balancing-Ebene im Agent wurde neu strukturiert, um Speicherverbrauch zu senken und künftige LB-Funktionen aufsetzen zu können.
- GA CiliumCIDRGroup, CiliumLoadBalancerIPPool und BGP-CRDs auf v2
Diese CRDs werden auf die stabile v2-API gehoben. Für CiliumCIDRGroup und die BGP-CRDs ist v2alpha1 ab hier deprecated, für CiliumLoadBalancerIPPool erst ab 1.19. Manifeste auf apiVersion: cilium.io/v2 umstellen, das Feld spec.transport.localPort in CiliumBGPPeerConfig entfällt ersatzlos.
- Breaking Kernel ab 5.10, External Workloads entfernt
Die Serie setzt Linux 5.10 oder einen gleichwertigen Distributionskernel voraus, etwa 4.18 auf RHEL 8.6. Die External-Workloads-Funktion ist entfernt, Reste räumt kubectl delete crd ciliumexternalworkloads.cilium.io ab.
- Breaking ENI-Modus maskiert IPv4 nicht mehr per Default
Der Helm-Wert enableIPv4Masquerade wechselt im eni-Modus von true auf false. Wer das Verhalten braucht, setzt ihn ausdrücklich auf true oder hält upgradeCompatibility unter 1.18.
- neu IPv6-Underlay und mehrere Egress-Gateways
Der Tunnel-Datapath läuft auf einem IPv6-Underlay, auch zusammen mit transparenter IPsec-Verschlüsselung, und das kube-proxy-Replacement übersetzt Services auf diesem Underlay. Egress-Gateway-Policies können Verkehr auf mehrere Gateway-Nodes verteilen und IPv6-Bereiche matchen.