Sobes.tech
Junior

What does the term 'vanilla Kubernetes' mean?

sobes.tech AI

Answer from AI

The term "vanilla Kubernetes" refers to Kubernetes without additional overlays, extensions, or specialized distributions. Essentially, it is a pure, "out-of-the-box" version that complies with the upstream Kubernetes project specifications.

Main characteristics of vanilla Kubernetes:

  • No vendor lock-in: Not tied to a specific cloud provider or vendor.
  • Basic set of components: Includes only key components such as kube-apiserver, etcd, kube-controller-manager, kube-scheduler, kubelet, and kube-proxy.
  • Standard integrations: Uses standard interfaces, such as Container Network Interface (CNI), Container Storage Interface (CSI), and Container Runtime Interface (CRI).
  • Manual installation and configuration: Often requires a deeper understanding of internal workings for deployment and management compared to managed services.
  • Maximum flexibility: Allows fine-tuning every aspect of the cluster.

Examples of "non-vanilla" Kubernetes include:

  • Managed cloud provider services (AKS, EKS, GKE).
  • Distributions with their own build or additional tools (OpenShift, Rancher).
  • Clusters deployed using third-party tools that add significant abstractions or automation on top of basic Kubernetes.

Choosing vanilla Kubernetes is justified when maximum control over the cluster is required, when avoiding vendor lock-in is necessary, or when there are specific requirements that are difficult to implement in ready-made distributions. However, it requires more time and resources for deployment, maintenance, and security.