6.20 Деплоймент Kubernetes на примере мастер-узла на Ubuntu-22
Kubernetes – это инструмент для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Он позволяет легко запускать приложения в контейнерах и управлять их жизненным циклом.
Для тестирования и развертывания приложений нам нужен настроенный кластер Kubernetes. В статье мы рассмотрим развертывание кластера на одном сервере (single-node cluster
) и на нескольких узлах (multi-node cluster
), объясним нюансы установки и настройки, а также покажем, как запустить тестовое приложение.
В этой инструкции наш сервер выступит мастер-узлом, к которому затем будут подключаться другие узлы.
Требования к серверу
Перед началом работы необходимо убедиться, что ваш сервер соответствует минимальным требованиям:
- ОС: Ubuntu 22.04 или CentOS 8 (Ubuntu предпочтительнее, т.к. у него лучше поддержка Kubernetes);
- Процессор: 4 ядра и выше;
- ОЗУ: минимум 8 ГБ (для многонодовых кластеров рекомендуется 16 ГБ и выше);
- Диск: минимум 50 ГБ свободного места;
- Сетевое подключение: статический IP и открытые порты (
6443
,10250
,10255
,30000
-32767
и другие). - Kubernetes требует, чтобы
swap
был отключен, иначе kubelet работать не будет.
Для стабильной работы Kubernetes мы рекомендуем сервера на тарифе не менее Cloud-8. Для
Пошаговая инструкция
Kubernetes использует контейнерный движок Docker для запуска контейнеров.
Совет: у нас существует отдельный, более детальный материал по установке и использованию Docker. Ознакомиться с ним можно по [ссылке](а где).
Установка Docker:
- Обновляем пакеты и ставим Docker:
- Проверяем версию Docker:
- Добавляем Docker в автозагрузку:
- Добавляем текущего пользователя в группу Docker (чтобы не использовать sudo при запуске контейнеров):
- Проверяем работу Docker:
Если выводит сообщение о корректной установке — значит работает.
Установка Kubernetes
- Добавляем репозиторий Kubernetes:
- Устанавливаем компоненты Kubernetes:
- Добавляем в автозагрузку:
- Проверяем версию Kubernetes:
Настройка кластера
- Инициализация кластера (только для мастер-узла):
Учтите: параметр --pod-network-cidr
указывает диапазон IP-адресов для будущих подов. Разные сетевые плагины (Flannel
, Calico
и др.) могут требовать разные значения.
После успешной инициализации появится команда для подключения рабочих узлов (kubeadm join
). Сохраняем ее.
- Чтобы работать с кластером, настраиваем
kubectl
:
- Проверяем работоспособность:
Должен появиться мастер-узел (Ready
появится после установки сетевого плагина).
Установка сетевого плагина
Чтобы поды могли обмениваться данными, устанавливаем сетевой плагин. Например, Flannel:
Через минуту проверяем узлы:
Теперь мастер-узел должен быть в состоянии Ready
.
Добавление рабочих узлов
На каждом рабочем узле устанавливаем Docker и Kubernetes, затем выполняем команду kubeadm join
, полученную при инициализации мастер-узла:
Проверяем, что узлы подключились:
Развертывание тестового приложения
Создаем файл deployment.yaml
:
Применяем манифест:
Проверяем:
Если видим работающие поды, значит, все настроено правильно.
Заключение
Теперь у вас есть готовый сервер для тестирования и развертывания приложений на Kubernetes. Мы рассмотрели установку, настройку и запуск тестового приложения.
Дальнейшие шаги могут включать:
- Настроить балансировщик нагрузки (
ingress-nginx
). - Добавить мониторинг (
Prometheus
,Grafana
). - Изучить управление конфигурациями (
ConfigMaps
,Secrets
). - Настроить CI/CD для автоматического развертывания.