Перейти к содержанию

Обзор развертывания 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. Процесс установки включает следующие шаги:

  1. Обновить индекс пакетов apt.

  2. Установить пакет snapd, если он еще не установлен.

  3. Установить MicroK8s через Snap:

    snap install microk8s --channel 1.31/stable --classic
    

  4. Добавить текущего пользователя в группу microk8s, чтобы обеспечить выполнение команд без sudo для управления кластером.

  5. Включить необходимые дополнительные модули (addons) для DNS, хранения данных и дашборда:

    microk8s enable dns hostpath-storage dashboard
    

  6. Дождаться готовности кластера:

    microk8s status --wait-ready
    

  7. Создать псевдоним (alias) оболочки для kubectl:

    snap alias microk8s.kubectl 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 сгенерируйте токен с помощью команды:

    microk8s kubectl create token default
    

  • Перенаправление портов (Port Forwarding): Для доступа к дашборду порт 10443 на хосте перенаправляется на порт 443 службы дашборда:

    microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 &
    

  • Управление контейнерами: Контейнеры Docker, управляемые через Compose, могут быть запущены, остановлены или обновлены с помощью стандартных команд docker compose, соответствующих каталогу проекта, содержащему compose.yml.

Доступные порты для подключения

  • 10443: Локальный порт для доступа к дашборду MicroK8s (требуется активный процесс перенаправления портов).

  • 80/443: Стандартные порты HTTP/HTTPS, обрабатываемые контейнером Nginx в режиме сети хоста.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×