Создание кластера Kubernetes на DigitalOcean
Быстрые ссылки
- Зачем использовать управляемый Kubernetes?
- Создание кластера
- Выбор размера кластера
- Первичное подключение к кластеру
- Управление кластером
- Дополнительные параметры управления
- Когда управляемый Kubernetes не подходит
- Чек‑лист и критерии приёмки

Зачем использовать управляемый Kubernetes?
Kubernetes — платформа для оркестрации контейнеризованных приложений. Вы можете установить Kubernetes на собственном железе (например, MicroK8s или K3s), но это требует времени на настройку и обслуживание. Управляемый сервис снимает с вас заботы об управляющей плоскости (control plane), обновлениях и базовой интеграции с облачной инфраструктурой.

DigitalOcean Managed Kubernetes позволяет создать кластер за несколько минут, поддерживает полный Kubernetes API, автоскейлинг нод и автоматические обновления версий Kubernetes. Управляющая плоскость предоставляется бесплатно — вы платите только за ноды (Droplets).
Стоимость базовых нод начинается от 10 USD/мес за экземпляр (1 vCPU, 1–2 GB RAM в зависимости от типа). Если вы следуете шагам этой инструкции, имейте в виду, что на аккаунте будут накапливаться затраты — для экспериментов используйте минимальные, низкобюджетные ноды.
Создание кластера
- Войдите в свой аккаунт DigitalOcean.
- Нажмите зелёную кнопку “Create” в правом верхнем углу и выберите “Kubernetes”.

Выберите версию Kubernetes. На момент написания доступны релизы 1.17, 1.18 и 1.19. Рекомендуется использовать самую новую стабильную версию, если нет совместимых ограничений.
Выберите дата‑центр (регион). Лучше выбирать регион ближе к вашим пользователям или месту размещения других сервисов.

- Перейдите к разделу выбора вместимости кластера — “Choose cluster capacity”.
Выбор размера кластера
Ноды группируются в Node Pools — наборы нод с одинаковыми характеристиками. Для простоты начните с одного Node Pool.
- “Machine Type” — выбираете семейство Droplet’ов (Basic, General Purpose и т.д.). Для тестов подойдёт Basic.
- “Node Plan” — конкретный размер Droplet. Для экономии используйте минимальный (1 vCPU, 1 GB RAM) за 10 USD/мес, помеченный как «development plan». Для продакшена выберите более мощный тип и учтите требования памяти/CPU приложений.

Укажите количество нод в пуле. По умолчанию — 3. Для локальной разработки можно использовать 1 ноду, но будьте готовы к недоступности сервисов во время обновлений Kubernetes. Наличие нескольких нод повышает отказоустойчивость и позволяет горизонтально масштабировать нагрузки.

После настройки дайте кластеру имя и нажмите “Create cluster”. Процесс занимает до нескольких минут.
Первичное подключение к кластеру
На странице кластера отображается карусель с шагами “Getting Started” — скачайте kubectl и doctl, если ещё не установили.
# Пример проверки нод с указанием kubeconfig
kubectl --kubeconfig=kubeconfig-path.yaml get nodes
Скачайте kubeconfig для вашего кластера и используйте флаг –kubeconfig, либо настройте переменную окружения KUBECONFIG. Обратите внимание: сертификат для скачанного файла истекает через неделю — потребуется повторно загрузить его или настроить doctl для автоматического получения конфигурации.
# Пример получения конфигурации через doctl
doctl kubernetes cluster kubeconfig save 
Для управления сертификатами используйте опцию автоматического управления сертификатами в doctl (см. раздел с инструкциями на портале) — это избавит вас от ручного обновления.

Из интерфейса вы также можете установить 1‑Click Apps — преднастроенные приложения (NGINX Ingress, Linkerd и др.). Установка обычно занимает несколько минут.
Управление кластером
- Вкладка “Nodes” показывает все Node Pools и ноды внутри них.

- Добавить новый пул нод можно кнопкой “Add Node Pool”. Правка существующего пула — через меню (три точки) и опцию “Resize or Autoscale”.

При выборе фиксированного размера указываете точное количество нод. Для автоскейлинга задаётся диапазон минимум‑максимум: платформа автоматически добавляет/удаляет ноды по загрузке.

Во вкладке “Insights” доступны ключевые метрики кластера (CPU, сеть и т.д.). Можно выбрать объект для детального анализа — ноду или пул.

Дополнительные параметры управления
DigitalOcean интегрирует Kubernetes Dashboard — официальный веб‑интерфейс. Кнопка “Kubernetes Dashboard” открывает интерфейс в новой вкладке и предварительно подставляет токен аутентификации.

Автоматические обновления кластера включаются во вкладке “Settings” — опция “Enable automatic upgrades”. Можно задать допустимое окно для установки обновлений.

Кнопка “Destroy” удаляет кластер и связанные с ним вычислительные ресурсы. Обратите внимание: некоторые объекты (например, тома блоков, балансировщики) могут оставаться и потребовать ручного удаления.
Важно: не редактируйте свойства нод напрямую через интерфейс Droplets — используйте Kubernetes API/интерфейс, чтобы сохранить соответствие ожиданий control plane.
Важно: нижеприведённые команды и операции изменяют биллинг вашего аккаунта. Для тестов используйте минимальные ноды и удаляйте ненужные ресурсы.
Когда управляемый Kubernetes не подходит
- Если вам нужен полный контроль над управляющей плоскостью по соображениям соответствия уникальным требованиям безопасности или сети.
- Когда инфраструктура ограничена и вы не можете использовать облачные Droplets.
- Для очень лёгких локальных экспериментов без реальной облачной интеграции лучше использовать K3s или MicroK8s.
Альтернативы:
- K3s — лёгкий и минималистичный Kubernetes от Rancher.
- MicroK8s — однокомандный локальный дистрибутив от Canonical.
- Полностью самоуправляемый kubeadm для тонкой настройки control plane.
Мини‑методология: быстрый план развертывания
- Оцените требования приложения: CPU, RAM, сетевые правила, хранение.
- Выберите регион и версию Kubernetes.
- Создайте Node Pool с минимальными параметрами и 3 ноды для теста (или 1 нода для разработки).
- Скачайте kubeconfig через doctl и проверьте доступ: kubectl get nodes.
- Установите Ingress и систему наблюдаемости (Prometheus/Grafana или Marketplace 1‑Click Apps).
- Настройте автоскейлинг, резервные копии и политики обновлений.
- Протестируйте поведение при обновлениях и отказах.
Чек‑лист ролей (кто что делает)
Разработчик:
- Убедился, что манифесты приложений корректны (Limits/Requests, Liveness/Readiness).
- Протестировал локально и в dev‑окружении.
Оператор/DevOps:
- Настроил Node Pools и автоскейлинг.
- Включил автоматические обновления и проверил окно обновлений.
- Настроил резервное копирование данных и постоянных томов.
Безопасность/Compliance:
- Проверил доступы к кластеру и RBAC.
- Настроил политики сетевой безопасности (NetworkPolicy).
Критерии приёмки
- Кластер создаётся в выбранном регионе и версии Kubernetes без ошибок.
- kubectl получает список нод: kubectl get nodes возвращает все ожидаемые ноды.
- Развёрнутые приложения проходят smoke‑тесты (Liveness/Readiness OK).
- Метрики видны во вкладке Insights и/или в системе мониторинга.
- Произведён тест обновления (patch/major) с минимальным временем простоя.
План действий при инциденте и откате
- Оповестите заинтересованные стороны и включите режим инцидента в системе оповещений.
- Воспользуйтесь kubectl describe / logs для обнаружения причины.
- Если проблема связана с новой версией приложения, откатите Deployment к предыдущей ревизии:
kubectl rollout undo deployment/- Если проблема на уровне нод, срежиссируйте drain и замену ноды:
kubectl drain --ignore-daemonsets --delete-local-data
# затем удалить ноду в DigitalOcean и позволить Autoscaler создать новую - При необходимости восстановите данные из резервной копии.
Безопасность: базовые твердые практики
- Включите RBAC и минимизируйте права сервисных аккаунтов.
- Используйте NetworkPolicy для ограничения трафика между пулом подов.
- Не храните секреты в открытом виде; используйте Secret‑хранилище или интеграции (Vault).
- Ограничьте доступ к kubeconfig и ротацию токенов.
- Регулярно применяйте CVE‑патчи и следите за обновлениями компонентов.
Приватность и соответствие (коротко)
Хранение данных и логи подчиняются политикам региона. Если у вас есть требования GDPR или локального законодательства, подтвердите, что выбранный регион и используемые сервисы соблюдают необходимые правила хранения и обработки персональных данных.
Совместимость и рекомендации по версиям
- Перед апгрейдом проверьте совместимость API версий ваших манифестов и используемых CRD.
- Тестируйте обновления сначала в staging‑окружении.
- Используйте поддержку DigitalOcean, если требуется перенос между версиями с депрецированными API.
Решение: как выбрать план нод (диаграмма)
flowchart TD
A[Нужна высокая устойчивость?] -->|Да| B{Требуется >1 нода}
A -->|Нет| C[Используйте single-node для разработки]
B --> D{Нужна высокая производительность?}
D -->|Да| E[Выбрать General Purpose/CPU-Optimized]
D -->|Нет| F[Выбрать Basic / меньший размер]
E --> G[Установить минимум 3 ноды]
F --> GПримеры команд и полезные сниппеты
- Получить ноды:
kubectl get nodes -o wide- Проверить состояние подов в namespace:
kubectl get pods -n - Подробные логи пода:
kubectl logs -f pod/- Массовая перезагрузка DaemonSet:
kubectl rollout restart daemonset -n Риски и mitigations (матрица)
| Риск | Вероятность | Влияние | Митигирование |
|---|---|---|---|
| Потеря данных при удалении кластера | Низкая | Высокое | Резервные копии томов, экспорт PV перед удалением |
| Несовместимость при апгрейде k8s | Средняя | Среднее | Тестирование в staging, чтение changelog |
| Утечка kubeconfig | Низкая | Высокое | Хранение в защищённом хранилище, ротация токенов |
| Пиковая нагрузка перегружает ноды | Средняя | Среднее | Настройка HPA/VPA и Cluster Autoscaler |
Тесты приёмки и кейсы
- Развёртывание приложения с resource limits: проход.
- Отказ одной ноды: приложение автоматически перезапускается на других нодах.
- Обновление minor/patch версии Kubernetes: минимальный простой.
Короткое объявление (для соцсетей, 100–200 слов)
Создали новый кластер Kubernetes на DigitalOcean за несколько минут: выбрали версию, регион и настройку Node Pool, подключились через kubectl/doctl и установили стандартные 1‑Click приложения. Инструкция охватывает выбор нод, автоскейлинг, безопасность, бэкапы и план отката. Подходит для быстрых тестов и малых продакшен‑сценариев. Для экспериментов используйте минимальные ноды и не забывайте про автоматическое обновление и резервные копии.
Краткое резюме
- Управляемый Kubernetes экономит время на обслуживании управляющей плоскости.
- DigitalOcean предоставляет control plane бесплатно — платите за Droplets.
- Начните с одного Node Pool и минимальных нод для тестов, затем масштабируйте.
- Настройте RBAC, NetworkPolicy и резервные копии до продакшена.
Ключевые ссылки и команды
- kubectl –kubeconfig=kubeconfig-path.yaml get nodes
- doctl kubernetes cluster kubeconfig save
Критерии приёмки:
- Кластер доступен, ноды в Ready.
- Метрики и логи собираются.
- Smoke‑тесты приложений проходят успешно.
Спасибо за внимание — используйте этот план как шаблон и адаптируйте под свои требования.
Похожие материалы
Установка Windows Media Center на Windows 10
Как стать менеджером социальных сетей — обязанности и чек-листы
Как подключить Beats к Mac — инструкция
Данные акций в Google Sheets — Smart Chip и GOOGLEFINANCE
Как отправлять фото в HD в WhatsApp