Meet the new Kubernetes tool: Cross-cluster connectivity with Submariner
We just keep finding amazing Kubernetes tools to highlight! Submariner is a new open source project for Kubernetes that allows for multi-network connectivity between clusters. It is currently in the pre-alpha stage, but one day you may be connecting your Kubernetes workloads.
New Kubernetes projects keep appearing across the horizon. It’s easy to see why. Kubernetes dominates and has become the new standard. On March 12th, Rancher Labs announced a new open source project: Submariner. Submariner allows for network connectivity between Kubernetes clusters.
Note: This is currently in pre-alpha stage. Thus, users are encouraged to avoid it for production purposes. You can report any bugs and issues that you find or help contribute. Let’s see what’s under the hood!
Cross-cluster network connectivity
Submariner has an open and flexible architecture.
“Submariner is a tool built to connect overlay networks of different Kubernetes clusters. While most testing is performed against Kubernetes clusters that have enabled Flannel/Canal, Submariner should be compatible with any CNI-compatible cluster network provider, as it utilizes off-the-shelf components such as strongSwan/Charon to establish IPsec tunnels between each Kubernetes cluster.”
The two main components are: submariner (Deployment) and submariner-route-agent (DaemonSet).
You must have at least three unique Kubernetes cluster IDs. If you have two of the same ID, each pod will perform a reconciliation process to try and ensure that it is the sole endpoint for the cluster. Of course, this will not work if two have the same ID. Just like a real submarine, it accounts for potential failure. Upon failure, another Submariner pod gains active leadership.
The announcement blog on Rancher.com listed some more key features:
- Compatibility and connectivity with existing clusters
- Secure paths
- Various connectivity mechanisms
- Centralized broker
- Flexible service discovery
- CNI compatibility
Check out a representation of the architecture here.
Dive under with Submariner
Before you take the dive, check what you need. Prerequisites include:
- At least 3 Kubernetes clusters. One of these clusters will be used as the central broker that is accessible by all of your connected clusters.
- Different cluster/service CIDR’s
- Direct IP connectivity between instances through the internet
- Knowledge of each cluster’s network configuration
- Helm version that supports crd-install hook (v2.12.1 and newer)
While this is a very new tool, the future for Submariner looks optimistic. We will certainly keep an eye on it and its roadmap and developments.
Rancher Lab’s other open source Kubneretes tool – Rancher – finds success in managing multiple clusters. So far, Rancher helped over 2 million containers deploy and over 20,000 teams use Rancher daily.
If you would like to learn more, an online meetup will occur on March 20th, 1:00 PM US Eastern Time. Book your spot for a Q&A session and more information about Submariner straight from its developer Chris Kim, and Rancher Co-Founder Shannon Williams. You will leave the meetup knowing use cases for Submariner, how to developer an architectural design for it, and how to setup and manage high available microservices.
Does this sound like a worthwhile project to you? Is your future full of inter-clusters communication?