DEV Community

Simone Morellato
Simone Morellato

Posted on

How to Deploy Envoy Across Multiple Kubernetes Clusters

In this video :

Image description

Colin dives into Project Sveltos, an open-source add-on controller for managing Kubernetes clusters, and how you can use it to deploy Envoy across multiple Kubernetes clusters.

Don't have time to watch, here is a quick blog version of the video:

🚀 What is Project Sveltos?

Project Sveltos allows you to deploy and manage applications across multiple Kubernetes clusters from a single management cluster. This simplifies the process of ensuring that all your clusters have the same configurations and features. You can deploy Sveltos using raw YAML files or Helm charts, making it accessible and flexible for various environments.

Installing Sveltos in a management cluster

🔧 Getting Started with Sveltos

The first step in using Sveltos is to register your clusters. Once Sveltos is installed in your management cluster, you can begin by checking how many clusters are currently registered. Initially, you will only see the management cluster itself.

Next, you can register additional clusters, such as development and staging environments. For each cluster, you will need to specify its API endpoint and credentials through a kubeconfig file. Additionally, you can apply labels to each cluster to help Sveltos identify specific configurations or purposes.

Registering clusters with Sveltos

📦 Creating Namespaces Across Clusters

Once your clusters are registered, you might find that certain namespaces do not exist in your development or staging environments. To create these namespaces, you can use a config map that contains the YAML representation of the namespace you want to create. By applying a cluster profile that references this config map, Sveltos can automatically create the required namespaces across all registered clusters that match the specified labels.

Creating namespaces using a config map

🌐 Deploying Envoy Gateway Simultaneously

After successfully creating namespaces, let's take it a step further and deploy the Envoy Gateway to all three clusters at once. By using a cluster profile specifically for Envoy Gateway, you can apply it to any clusters that match the defined labels.

In this case, you will add a new label to each cluster, indicating that they will be using the Envoy Gateway. Once the labels are applied, you can then deploy the Helm chart for Envoy Gateway across all specified clusters simultaneously.

Deploying Envoy Gateway across multiple clusters

💡 Use Cases and Flexibility

One of the most exciting features of Sveltos is its flexibility in managing multiple clusters. You can easily scale this process to handle fleets of clusters across different regions or environments. For instance, if you wanted to deploy additional applications like https://coder.com/ or https://www.postgresql.org/, you can do so seamlessly across your development clusters.

This capability makes Sveltos a powerful tool for teams looking to streamline their Kubernetes management and ensure consistency across their infrastructure.

📣 Conclusion

In conclusion, Project Sveltos is revolutionizing how DevOps teams manage multiple Kubernetes clusters. With its ability to automate the deployment of applications and configurations, teams can save time and reduce the risk of inconsistencies. If you're interested in learning more, check out the GitHub repository for the demo YAML files used in this project.

Thanks for joining Colin today!

Top comments (0)