Orchestrating Orchestrators - Challenges faced and lessons learned from managing Kubernetes at scale
Kubernetes is notoriously complex to setup, configure, run and manage. It requires the sys-admin to setup 7 binaries in a particular order. I'm working on a feature https://github.com/kubernetes/features/issues/88, which adds another binary, thereby making the confgiuration and setup of kubernetes even harder. As more and more companies are starting to leverage containers in their infrastructure, they are evaluavating kubernetes as an option for running containers in productions. Every organization is overwhelmed by the steep learning curve required to setup a kubernetes cluster.
Kubernetes requires people to use their own DNS service, ingress service, overlay network, and storage solution. The DNS service needs to be configured correctly in order to support all types of workloads. An evaluator is forced to pick between their own DNS service (for eg. consul) and SkyDNS (Kubernetes provided DNS service). They are also tasked with figuring out how to configure the DNS service to work with kuberentes. I will discuss the strenght and weakness of each of these services and how to choose one over the other.
There are too many networking plugins for me to list here. The major ones all provide their own pros and cons. Choosing a networking plugin requires Sys-admins to know all of her needs for networking before choosing the right plugin. This is another pain point, that is hindering the adoption of Kubernetes.
As new features pour into kubernetes, it is really hard to keep track of all the flags required to configure kubernetes, and also keep an updated list of versions between all of the kubernetes binaries. This is another problem that will be discussed. Similarly, all operational and design problems required to run kubernetes at scale will be discussed.
This talk will shed light on considerations and decision points organizations face when using Kubernetes in production. This includes choosing a DNS provider, using an Ingress Controller, and evaluating appropriate storage and networking solutions for Kubernetes clusters. Details around choosing CNI plugins, setting up an overlay network, and implementing storage for Kubernetes Clusters as well will be covered. The conclusion will also discuss best practices for Kubernetes upgrades and rollbacks, cluster configuration, and federating multiple clusters.