🚀 Акция: 2 месяца бесплатно при оплате VPS на год — только до конца месяца

Выбрать тариф →
Блог eMatch · Руководство

Kubernetes
для начинающих:
первый кластер
за вечер

Пошаговый гайд: от установки kubectl до масштабируемого приложения без даунтайма. Разберём Pod, Deployment и Service, а в конце развернём реальное веб-приложение на кластере eMatch K8s.

Панель управления кластером Kubernetes в eMatch
Время чтения: 14 минут
Часть 1 из 6

Что такое Kubernetes и зачем он нужен

Kubernetes (K8s) — это открытая платформа оркестрации контейнеров. Она берёт на себя рутину: запускает контейнеры, перезапускает упавшие, распределяет нагрузку и масштабирует приложение по запросу.

Проблема, которую решает K8s

Представьте интернет-магазин в «Чёрную пятницу». Нагрузка растёт в 8 раз, один сервер не справляется. Без оркестратора вы вручную поднимаете новые инстансы, перенастраиваете балансировщик и молитесь, чтобы ничего не упало в процессе.

Kubernetes делает это автоматически: HPA (Horizontal Pod Autoscaler) следит за CPU и памятью, добавляет реплики при росте нагрузки и убирает их, когда трафик спадает. Приложение остаётся быстрым, а вы платите только за реально используемые ресурсы.

На платформе eMatch managed Kubernetes кластер создаётся за 4 минуты — вы получаете готовый control plane, etcd и три worker-ноды без настройки.

Узнать о K8s от eMatch
Архитектура кластера Kubernetes: master и worker ноды
Часть 2 из 6

Основные концепции: Pod, Deployment, Service

Три объекта, без которых не обходится ни одно приложение в Kubernetes. Разберём каждый на конкретных примерах.

Pod — минимальная единица

Pod содержит один или несколько контейнеров, которые делят сеть и хранилище. Чаще всего в Pod живёт ровно один контейнер — например, ваш Node.js бэкенд. Pod недолговечен: если он упал, K8s создаст новый с новым IP.

k run nginx --image=nginx

Deployment — декларативное состояние

Deployment говорит Kubernetes: «хочу 3 реплики моего приложения с образом app:v2». K8s сам следит, чтобы это соответствовало реальности. Если нода упала, Deployment поднимет Pod'ы на других нодах.

replicas: 3 · strategy: RollingUpdate

Service — стабильный адрес

Service даёт приложению постоянное DNS-имя и IP, даже если Pod'ы меняются. ClusterIP — внутри кластера, NodePort — снаружи через порт ноды, LoadBalancer — внешний IP с автоматическим балансировщиком.

type: LoadBalancer · port 80
Часть 3 из 6

Установка kubectl и подключение к кластеру

kubectl — это CLI-утилита, через которую вы общаетесь с Kubernetes API. Ставится за минуту на macOS, Linux и Windows.

Три шага до первого подключения

1. Установка. На macOS через Homebrew: brew install kubectl. На Linux — скачиваем бинарник с официального зеркала Kubernetes. На Windows — через winget или Chocolatey.

2. Конфиг. В личном кабинете eMatch откройте раздел «Кластеры K8s» → ваш кластер → «Скачать kubeconfig». Сохраните файл в ~/.kube/config — kubectl найдёт его автоматически.

3. Проверка. Команда kubectl get nodes должна показать три worker-ноды в статусе Ready. Если видите их — поздравляем, вы внутри кластера.

Полная инструкция в документации
Терминал с командой kubectl get nodes — три ноды в статусе Ready
Часть 4 из 6

Деплой первого приложения в кластер

Разворачиваем веб-приложение из публичного образа nginx с двумя репликами и внешним балансировщиком.

Манифест deployment.yaml

Создайте файл deployment.yaml с описанием Deployment на 2 реплики и контейнером nginx:1.27. Примените командой kubectl apply -f deployment.yaml. Через 5–8 секунд Pod'ы перейдут в статус Running.

Затем добавьте Service типа LoadBalancer в файл service.yaml. После kubectl apply -f service.yaml eMatch выделит внешний IP-адрес — он появится в колонке EXTERNAL-IP через 20–30 секунд. Откройте его в браузере — увидите стартовую страницу nginx.

Важно: образы лучше хранить в Container Registry от eMatch — подтягивание из приватного реестра в той же зоне работает в 4 раза быстрее, чем из Docker Hub.

Примеры манифестов
Деплой приложения в Kubernetes через kubectl apply
Часть 5 из 6

Масштабирование и обновление без даунтайма

2 → 10 Реплик одной командой kubectl scale
0 сек Даунтайм при rolling update
maxSurge 25% Новые Pod'ы создаются параллельно
< 90 сек Откат к предыдущей версии

Масштабирование вручную и автоматически

Команда kubectl scale deployment nginx --replicas=10 мгновенно поднимает 10 Pod'ов. Но интереснее — Horizontal Pod Autoscaler. Он следит за метриками и сам добавляет реплики, когда CPU переваливает за 70%.

Для обновления образа достаточно kubectl set image deployment/nginx nginx=nginx:1.28. Стратегия RollingUpdate по умолчанию создаёт новый Pod, проверяет readinessProbe, и только потом удаляет старый. Пользователи ничего не замечают.

Если что-то пошло не так — kubectl rollout undo deployment/nginx откатит к предыдущей ревизии за полторы минуты. История ревизий хранится в ReplicaSet'ах.

График масштабирования Pod'ов в Kubernetes при росте нагрузки
Часть 6 из 6

Ресурсы для дальнейшего изучения

Подборка материалов, которые помогут пройти путь от новичка до уверенного K8s-инженера.

Официальная документация

kubernetes.io/ru/docs — лучший старт. Раздел «Интерактивный тур» показывает объекты K8s прямо в браузере, без установки. Концепции, туториалы, reference по API — всё на русском.

Перейти →

Kubernetes Patterns

Книга Биляка и Бодвига — 80 практических паттернов: от Sidecar и Init Container до CronJob и StatefulSet. Доступна бесплатно в Open Source-репозитории авторов на GitHub.

Скачать →

База знаний eMatch

В нашем блоге — более 40 статей про K8s: настройка Ingress, CSI-драйверы, Helm-чарты, RBAC, backup etcd. Новые материалы выходят каждую неделю, подписка — через RSS и Telegram.

Читать блог →
Готовый кластер за 4 минуты

Попробуйте Kubernetes на eMatch

Managed K8s с автоматическими обновлениями, мониторингом Prometheus и встроенным Ingress-контроллером. От 4 990 ₽/мес за кластер из 3 worker-нод.