In this project, we extend Kubernetes to make use of SRv6. The integration of SRv6 in Kubernetes can be very beneficial when Kubernetes is used in large scale and/or distributed multi-datacenter scenarios.
We have focused on the Calico CNI plugin, one of the most used networking plugin of Kubernetes. Calico supports different data planes, we have considered the Calico-VPP data plane because VPP natively provides support for SRv6 operations with very high performance.
We have developed and released a new overlay type in Calico-VPP, called SRv6 overlay. The SRv6 overlay can be used instead of the IP-in-IP overlay. The SRv6 overlay supports:
- Encapsulation of both IPv4 and IPv6 pods networking
- Traffic Engineering of the overlay tunnels
We have deployed the proposed SRv6 overlay in two replicable virtual testbeds, which we refer to as basic testbed and full testbed. The basic testbed only demonstrates SRv6 tunneling equivalent to IP-in-IP tunneling. The full testbed demonstrates Traffic Engineering capabilities.
In the full testbed we consider two solutions to distribute the SRv6 Traffic Engineering policies:
- use BGP, for which we have developed a new component called SRv6 Policy Injector (SRv6 PI)
- use Kubernetes control plane
Walkthrough
We have described the steps to replicate the testbeds and execute the experiments in this walkthrough document. We report its table of content:
- Basic Testbed: SRv6 basic scenario (no Traffic Engineering)
- Environment Setup
- Configure and install Calico VPP
- Test SRv6 connectivity between pods
- Full Testbed: SRv6 overlay with Traffic Engineering (SRv6-TE)
- Environment Setup
- SRv6-TE overlay with BGP
- Configure and deploy
- Test SRv6 connectivity between pods
- Test SRv6-TE edit policies
- SRv6-TE overlay with Kubernetes control plane
- Configure and deploy
- Test SRv6 connectivity between pods
- Test SRv6-TE edit policies
Scientific papers
- F. Lombardo, S. Salsano, A. Abdelsalam, C. Filsfils,
“Extending Kubernetes Networking to make use of Segment Routing over IPv6 (SRv6)”,
Submitted paper, January 2023