Announcing Kubernetes High-Availability for Maestro

Introduction

Today we’re excited to announce brand new support for High Availability (HA) Kubernetes! Here at Cloud 66, we’ve been running Kubernetes both for ourselves, and for our customers (check out Maestro) for quite some time now. Kubernetes is a really great piece of software! You tell it what you want, and it tries its best to make that happen. Sure, the process of telling it what you want can be daunting (and has a steep learning curve) — but the payoff is great! One thing that’s been missing for our customers for a while though is the inclusion of High Availability (HA) on the Master Nodes of their clusters — happily, this is now available on your clusters running Kubes v1.13.x and higher).

Implementation

Under the hood, we primarily use kubeam to provision Kubernetes clusters. This makes sense for us we already control the server provisioning (regardless of your Cloud provider). Some really great resources for cluster provisioning are here in the Kubernetes docs:
https://kubernetes.io/docs/setup/independent/install-kubeadm/

Masters Communication (without a Load Balancer)

When you have a single Master Node (Master) in your cluster, everyone knows who to talk to when they need cluster information. Worker Nodes (Worker) talk to the Master on its available address, and Administrators perform cluster configuration via that same address. However, if you have multiple Masters (to provide fault-tolerance within your cluster) then you have a collection of endpoints that Workers (from within) and Administrators (from without) can possibly talk to.

Masters Communication (without Regenerating Certificates)

One of the problems we’ve faced in the past with our implementation is that as the Master Node address is essentially an IP address, the TLS certificate that Kubernetes uses to secure its communications is signed up-front with this IP address — which causes problems if the IP Address changes.

Conclusion

Setting up HA on your Kubernetes cluster is certainly the next logical step in bringing Kubernetes to the prime-time. That said, the process of configuring and maintaining the cluster still presents some challenges! I’m hopeful that advancements in the Kubernetes project will help to reduce some of those challenges in the future.

DevOps-as-a-Service to help developers build, deploy and maintain apps on any Cloud. Sign-up for a free trial by visting: www.cloud66.com