Photo by Paolo Chiabrando on Unsplash
Controlling Data Flows in Kubernetes with Software-Defined Networking
Tailored
Without software-defined networking (SDN), Kubernetes cannot be used effectively in a multitenant environment or run in a permanently scalable way. Traditional virtual local area network (VLAN)-based networks are not fit for this purpose. If you are planning to set up a Kubernetes cluster, the question inevitably arises as to which SDN approach is the one that best meets your intended use case.
Architecture Must Match the Tool
Flannel [1], Calico [2], and Cilium [3] are currently the best-known network plugins used to set up SDN in the Kubernetes ecosystem. Despite their differences, they have one key aspect in common: All three are Container Network Interface (CNI)-compliant and use the same interface to connect to Kubernetes. The interface is deliberately kept neutral; it merely stipulates that pods must be able to communicate with one another but does not dictate the technical approach for doing so.
The three tools implement this basic principle in different ways. Flannel focuses on plain vanilla connectivity, making sure every pod can talk to every other pod. Calico supplements this model with routing logic and security rules that can be derived directly from Kubernetes objects. Cilium takes things a step further and shifts large parts of the networking and security logic into the host system's kernel, the goal being to transport data streams while also analyzing their content and controlling them in a targeted way.
However, Flannel, Calico, and Cilium should not be viewed as successive stages of development in which one option is necessarily more modern or better. The projects represent different architectural choices and address different requirements. Simply comparing the individual features would fall short of the
...
Buy this article as PDF
(incl. VAT)
Buy ADMIN Magazine
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Most Popular
Focus On Self-Hosting
• Reliable Network Storage with TrueNAS Community Edition
• Self-Hosted File Syncing with Seafile
• Wiring the Modern Stack with Node-RED
• Self-Hosted Collaboration with Forgejo
• Self-Hosted PaaS with Coolify
• Build and Host Docker Images
• Self-Hosted Pritunl VPN Server with MFA
Support Our Work
ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
