»Managing Highly-Available Kubernetes Clusters: Declaratively and Automatically«
2019-11-17, 12:00–12:30, Room2

Creating a Kubernetes cluster can look easy, but the story doesn't end here. Often, we have to create several clusters for various environments and besides creating them, we have to manage them, too. Operators want to be able to add new nodes quickly, change cluster properties, or patch the cluster as fast as possible in case of a security vulnerability.

Due to lack of tooling that would allow us to do this regardless of a provider and environment we’re running on, we decided to build an open source tool called KubeOne that can do all that...declaratively and automatically. In this talk you will learn what tools we used and how we connected them.

Benefits of the ecosystem

Nowadays, we have many tools and building blocks for creating and managing clusters, such as kubeadm, Cluster-API, and more... This talk is about choosing the right set of tools and connecting them to create and manage HA clusters. I'm going to talk about the most common used tools and the most common patterns for managing clusters, with a focus on declarative cluster management. Attendees will leave the talk with a detailed knowledge of the most important cluster lifecycle operations, i. e. install, provision, upgrade and destroy.

Participants will learn the following from my talk:

  • How you build a tool like KubeOne
  • How the cluster management API should look like in order to offer a good user experience
  • How such API could be implemented, with a focus on tools that you can use to make this task easier, such as Cluster-API
  • How the declarative cluster management looks like
  • How the cluster provisioning process looks like: what are the most common provisioning steps and what tools can you use to setup and provision the cluster
  • What kubeadm is and how you can use it to provision HA clusters
  • What Cluster-API is, how it works, and how it can be used to manage worker nodes declaratively, using kubectl or by interacting with the API directly
  • How the cluster upgrade process looks like and how to upgrade the cluster as quickly as possible using kubeadm