Учебный конструктор · Kubernetes углублённо
Kubernetes глубже — Helm, Ingress и операторы
Знаешь Pod и Deployment? Тогда этот конструктор — следующий шаг. 5 разделов: все ресурсы K8s с YAML-примерами и командами, архитектура кластера (интернет → Ingress → Service → Pod), Helm как пакетный менеджер, kubectl cheatsheet с фильтром и стратегии деплоя (Rolling/Blue-Green/Canary).
Не знаком с базами K8s? → начни с конструктора Docker и K8s. Нужен CI/CD поверх K8s? → CI/CD и автоматизация. Незнакомые слова → словарь внизу.
📖 Словарь: простыми словами
Встретил незнакомое слово выше — найди его здесь. Коротко — суть; разверни — подробное объяснение с аналогией.
Control Planeмозг кластера
etcd, API server, Scheduler, Controller Manager — принимают решения и хранят состояние.
Worker Nodeрабочий узел кластера
Машина, на которой запускаются Pod. Содержит kubelet (агент), kube-proxy (сеть) и container runtime (containerd).
Namespaceвиртуальная изоляция внутри кластера
Логическое разделение кластера на группы. Один кластер может использоваться разными командами через namespace.
Label / Selectorметки для выбора объектов
Labels — пары ключ:значение на ресурсах. Selector — фильтр по labels. Service находит Pod по selector, не по имени.
Reconciliation loopмеханизм выравнивания desired → actual
K8s постоянно сравнивает желаемое состояние (spec) с реальным (status) и исправляет расхождения. Это делает K8s самовосстанавливающимся.
etcdбаза данных состояния кластера
Distributed key-value store, где K8s хранит всё: Pod, Service, ConfigMap, Secret. Потеря etcd = потеря кластера. Бэкапы критичны.
CNI (Container Network Interface)плагин сети для Pod
Интерфейс для сетевых плагинов (Cilium, Calico, Flannel). Отвечает за выдачу IP Pod, маршрутизацию, NetworkPolicy.
CRI (Container Runtime Interface)интерфейс для запуска контейнеров
K8s не запускает контейнеры сам — через CRI делегирует containerd/CRI-O. Docker в K8s deprecated с 1.20.
Taint / Tolerationпометить узел как нежелательный для подов
Taint отпугивает Pod с узла. Toleration позволяет Pod терпеть taint. Используется для выделенных GPU-узлов, control-plane.
Affinity / Anti-affinityпредпочтения размещения подов
nodeAffinity — на каких узлах. podAntiAffinity — не рядом с другими Pod того же сервиса (HA). podAffinity — рядом (минимизация задержки).
KEDAмасштабирование по внешним событиям
Kubernetes Event-Driven Autoscaling: HPA по метрикам очереди (RabbitMQ, Kafka), API-запросам и другим внешним источникам.
GitOpsGit как единственный источник истины конфигурации
Состояние кластера описано в Git. ArgoCD/Flux следят и автоматически синхронизируют кластер с репозиторием. PR = деплой.
Дальше по теме
Эти инструменты связаны с текущим — так задачи стыкуются на практике.
Все инструменты — в каталоге.