Что значит «Ванильный» Kubernetes?

«Что значит «Ванильный» Kubernetes?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

«Ванильный» Kubernetes — это кластер, развернутый с использованием официальных инструментов и компонентов от CNCF (Cloud Native Computing Foundation) без проприетарных дистрибутивов (вроде OpenShift, Rancher) или обширного набора предустановленных сторонних аддонов.

Из моего опыта, «ванильная» установка обычно включает:

  • Инструмент развертывания: kubeadm — стандартный инструмент для bootstrap кластера.
  • Сетевой плагин CNI: Устанавливаемый отдельно плагин, например, Calico, Flannel или Cilium, соответствующий спецификации CNI.
  • Базовые компоненты: kube-apiserver, etcd, kube-scheduler, kube-controller-manager, kubelet, kube-proxy — все из официальных репозиториев.

Пример развертывания «ванильного» кластера с kubeadm и Calico:

# На control-plane ноде
sudo kubeadm init --pod-network-cidr=192.168.0.0/16

# Установка сетевого плагина Calico
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml

Зачем это нужно? Я использовал «ванильный» Kubernetes для глубокого изучения работы компонентов, для создания кастомных дистрибутивов под специфичные нужды или в средах, где требуется максимальный контроль и минимальное количество сторонних зависимостей. В продакшене поверх «ванильной» основы мы затем добавляем только необходимые инструменты: Helm для управления пакетами, мониторинг (Prometheus Stack), ingress-контроллер и CI/CD-агенты.