Вопрос с собеседования · DevOps

Из каких компонентов состоит кластер Kubernetes?

MiddleKubernetes
Ещё спрашивают так:
  • Что такое control plane и kubelet?
  • Что происходит после kubectl apply?
Коротко

Control plane: kube-apiserver — единственная точка входа, всё общение идёт через него; etcd — хранилище состояния кластера; scheduler — выбирает узел для пода; controller-manager — контроллеры, приводящие фактическое состояние к желаемому. На узлах: kubelet запускает контейнеры через рантайм (containerd) и докладывает о состоянии, kube-proxy реализует Service.

  • Декларативная модель: описываете желаемое состояние, контроллеры в цикле его достигают
  • etcd — самое ценное: потеря без бэкапа — потеря кластера
  • Управляемые кластеры (облачные) берут control plane на себя

А ещё Docker как рантайм убран в 1.24 — образы те же (OCI), рантайм containerd или CRI-O

Подробно

**Путь kubectl apply -f deployment.yaml:**

  1. apiserver проверяет права и схему, сохраняет объект в etcd.
  2. Контроллер Deployment видит новый объект и создаёт ReplicaSet.
  3. Контроллер ReplicaSet создаёт нужное число подов.
  4. Scheduler назначает каждому поду узел с учётом ресурсов, affinity, taints.
  5. kubelet на узле видит назначенный под, скачивает образ, запускает контейнеры, выполняет пробы.
  6. Контроллер Endpoints добавляет готовые поды в Service.

Цикл согласования (reconciliation) — главный принцип: если под упал или узел пропал, контроллер заметит расхождение и создаст новый. Поэтому руками созданный под без контроллера после сбоя не вернётся.

Отказоустойчивость control plane: 3 или 5 узлов etcd (кворум), несколько apiserver за балансировщиком.

Что хотят услышать

  • Компоненты control plane и узла.
  • Декларативная модель и контроллеры.
  • Цепочка событий при деплое.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗etcd запускает контейнеры, а kubelet хранит состояние кластера
  • ✓apiserver — вход, etcd — состояние, scheduler — выбор узла
  • ✗Компоненты общаются с etcd напрямую, apiserver только для kubectl
  • ✗kube-proxy выбирает узел для пода, а scheduler настраивает сеть сервисов

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования