
We are delighted to announce Isovalent Enterprise for Cilium 1.14, introducing Cilium Multi-Network!
Isovalent Enterprise for Cilium is the hardened, enterprise-grade, and 24×7-supported version of the eBPF-based cloud networking platform Cilium. In addition to all features available in the open-source version of Cilium, the enterprise edition includes advanced networking, security, and observability features popular with enterprises and telco providers.
The highlight of this new enterprise release is undoubtedly native support for Multi-Network: the ability to connect a Kubernetes Pod to multiple network interfaces.
This is tremendously useful for a variety of use cases:
- Network Segmentation: Connecting Pods with multiple network interfaces can be used to segment network traffic. For example, you can have one interface for internal connectivity over a private network and another for external connectivity to the Internet.
- Multi-Tenancy: In a multi-tenant Kubernetes cluster, you can use Multi-Network alongside Cilium Network Policies to isolate network traffic between tenants by assigning different interfaces to different tenants or namespaces.
- Service Chaining: Service chaining is a network function virtualization (NFV) use case where multiple networking functions or services are applied to traffic as it flows to and from a Pod. Multi-Network can help set up the necessary network interfaces for these services.
- IoT (Internet of Things) and Edge Computing: For IoT and edge computing scenarios, Multi-Network can be used alongside Cilium Network Policies to impose network isolation on multi-tenant edge devices.
Importantly, Multi-Network with Isovalent Enterprise for Cilium is totally compatible with Cilium Network Policies and Hubble – meaning you don’t have to compromise on security and observability while using this feature!
Multi-Network Lab
In this lab, learn about the new Isovalent Enterprise for Cilium 1.14 feature - Multi-Network!
Start Multi-Network LabBut there’s more! Isovalent Enterprise for Cilium also includes all the features introduced in Cilium 1.14.
Let’s review some of the Cilium 1.14 highlights before diving into Multi-Network!
What is new in Cilium & Isovalent Enterprise for Cilium 1.14 ?
- Mutual Authentication: improve your security posture with zero effort (more details)
- Envoy DaemonSet: a new option to deploy Envoy as a DaemonSet instead of embedded inside the Cilium agent (more details)
- WireGuard Improvements: encryption with Cilium is getting better – you can now encrypt the traffic from node-to-node and also use Layer 7 policies alongside WireGuard (more details)
- Gateway API Update: our leading Gateway API implementation is updated with support for the latest Gateway API version, additional route type support and multiple labs (more details)
- L2 Announcements: Cilium can now natively advertise External IPs to local networks over Layer 2, reducing the need to install and manage tools such as MetalLB (more details)
- BGP Enhancements: introducing support for better operational tools and faster failover (more details)
- Multi-Pool IPAM: introducing support to allocate IPs to Pods from multiple IPAM pools. Multi-Pool IPAM is a requirement for the Multi-Network feature described below (more details)
- BIG TCP for IPv4: after the introduction of BIG TCP support for IPv6 in Cilium 1.13, here comes IPv4 support. Ready for a 50% throughput improvement? (more details)
What is Multi-Network (Beta) in Isovalent Enterprise for Cilium 1.14?
Kubernetes is built on the premise that a Pod should belong to a single network. While this approach may work for most use cases, enterprises and telcos often require a more sophisticated and flexible networking model for their advanced deployments.
There are many use cases where a Pod may require attachments to multiple networks with different properties via different interfaces. This is what Multi-Network in Isovalent Enterprise for Cilium 1.14 delivers.
Network Segmentation
In a typical Kubernetes environment, Pods will be attached to a single flat network, often with direct outbound Internet access. Certain organisations that operate within regulatory requirements often require more granularity. For example, there are cases where platform operators want certain Pods to have a public-facing interface to access the Internet and an internal private one. This becomes possible with Cilium Multi-Network.
It enables operators to build networking zones within their cluster to provide different levels of access and another method to enforce micro-segmentation.
Multi-Tenancy Isolation
Kubernetes environments are commonly shared by multiple organizations. Each tentant would share cluster resources and would be segregated using namespaces, resource quotas and limits, RBAC, and network policies.
Sometimes though, there’s a regulatory need to address a compliance requirement that segmentation not only happens in software but also in hardware.
Using Multi-Network alongside Cilium Network Policies, you can isolate network traffic between tenants by assigning different interfaces to tenants or namespaces.
Service Chaining
Most Telcos are adopting a Container Network Function (CNF) model where network functions are no longer enforced in hardware appliances but as virtual functions. With Cilium Multi-Network, operators can direct traffic to and from Pod to networks for service chaining.
Cilium Multi-Network Walkthrough
A Multi-Network model, where Pods have multiple network interfaces, imply the following requirements:
- Multiple pools of IPs the network interfaces can get their IPs from
- Multiple networks to which the network interfaces can be attached to
- Being able to apply different security policies depending on which network interface is being used
- Being able to observe the traffic using Hubble and discern between which network interface the traffic is coming from.
Let’s walk through an entire example on how Cilium Multi-Network addresses each requirement:
Multi-Pool IPAM and Multi-Network
Cilium 1.14 introduced the Multi-Pool IP Address Management (IPAM) mode, where multiple pools of IP ranges can be created.
With Multi-Pool IPAM, you can deploy a CiliumPodIPPool
specifying the network range that will be allocated. The example below uses the 192.168.16.0/20
prefix.
The pool can then be attached directly to a network by using the IsovalentPodNetwork
CRD. This CRD describes a virtual network a Pod can attach to.
When using the Multi-Network feature, you can use the network.v1alpha1.isovalent.com/pod-networks=secondary_network
annotation to attach your Pod to secondary_network
and get an IP address from the pool attached to the network (you will see more details about it shortly).
Let’s try:
The Pod has received an IP from the correct pool and network and as you can see below, the 192.168.16.32/27
network was carved out for the kind-worker2
node.
One of the benefits of Multi-Pool is that it can dynamically allocate more CIDR blocks as demand for IPs grows.
Let’s verify this with a Deployment of 60 Pods attached to this network: