Обзор развертывания MicroK8s¶
Предварительные требования и базовые условия¶
-
Операционная система: Ubuntu Linux.
-
Привилегии: Для выполнения установки и управления системными службами требуются права суперпользователя (root).
-
Менеджер пакетов:
aptдля обновления системы иsnapdдля установки MicroK8s. -
Сеть: Сервер должен иметь исходящий доступ в Интернет для загрузки пакетов и сертификатов.
FQDN (полное доменное имя) итоговой панели¶
На основе предоставленной конфигурации, конкретный FQDN в формате <prefix><Server ID>.hostkey.in:<port> для веб-панели, ориентированной на пользователя, не определен. Дашборд MicroK8s экспонируется локально через перенаправление портов (port forwarding).
Структура файлов и каталогов¶
Развертывание использует следующие пути для хранения данных и конфигурации:
| Путь | Описание |
|---|---|
/snap/bin | Расположение бинарных файлов microk8s и kubectl. |
/data/nginx/nginx-certbot.env | Файл переменных окружения для конфигурации Nginx и Certbot. |
/data/nginx/user_conf.d | Каталог для пользовательских конфигураций Nginx. |
/etc/letsencrypt | Точка монтирования для хранения SSL-сертификатов (через именованный том). |
Процесс установки приложения¶
Кластер MicroK8s устанавливается как пакет Snap из канала 1.31/stable. Процесс установки включает следующие шаги:
-
Обновить индекс пакетов
apt. -
Установить пакет
snapd, если он еще не установлен. -
Установить MicroK8s через Snap:
-
Добавить текущего пользователя в группу
microk8s, чтобы обеспечить выполнение команд безsudoдля управления кластером. -
Включить необходимые дополнительные модули (addons) для DNS, хранения данных и дашборда:
-
Дождаться готовности кластера:
-
Создать псевдоним (alias) оболочки для
kubectl:
Контейнеры Docker и их развертывание¶
Контейнеризированная служба Nginx развертывается с помощью Docker Compose. Конфигурация включает:
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
-
CERTBOT_EMAIL: Установлено значениеhkadm@hostkey.com -
Дополнительные настройки, загруженные из
/data/nginx/nginx-certbot.env
-
-
Томы (Volumes):
-
nginx_secrets: Внешний том, смонтированный в/etc/letsencryptдля SSL-сертификатов. -
/data/nginx/user_conf.d: Смонтирован в/etc/nginx/user_conf.dдля пользовательских конфигураций Nginx.
-
Для управления жизненным циклом контейнера Nginx на основе предоставленного YAML-определения используется инструмент docker-compose.
Прокси-серверы¶
Контейнер Nginx выступает в роли обратного прокси (reverse proxy) и обрабатывает управление SSL-сертификатами с помощью Certbot.
-
Файл конфигурации:
/data/nginx/nginx-certbot.env -
Пользовательские конфигурации: Размещаются в
/data/nginx/user_conf.d -
Хранилище SSL: Управляется через том
nginx_secretsв точке/etc/letsencrypt.
Права доступа и безопасность¶
-
Группа пользователей: Пользователь
rootдобавляется в группуmicrok8sдля управления кластером. -
Межсетевой экран (Firewall): В предоставленных файлах конфигурации не определены конкретные правила межсетевого экрана или ограничения портов.
-
Контроль доступа: Доступ к дашборду Kubernetes предоставляется через токен, генерируемый командой
kubectl.
Запуск, остановка и обновление¶
-
Токен доступа к дашборду: Для доступа к дашборду MicroK8s сгенерируйте токен с помощью команды:
-
Перенаправление портов (Port Forwarding): Для доступа к дашборду порт
10443на хосте перенаправляется на порт443службы дашборда: -
Управление контейнерами: Контейнеры Docker, управляемые через Compose, могут быть запущены, остановлены или обновлены с помощью стандартных команд
docker compose, соответствующих каталогу проекта, содержащемуcompose.yml.
Доступные порты для подключения¶
-
10443: Локальный порт для доступа к дашборду MicroK8s (требуется активный процесс перенаправления портов).
-
80/443: Стандартные порты HTTP/HTTPS, обрабатываемые контейнером Nginx в режиме сети хоста.