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

Обзор развертывания MicroK8s и Nginx на сервере

Предпосылки и предварительные требования

Для успешного развертывания системы необходимо наличие сервера с операционной системой Ubuntu. Пользователь, выполняющий установку, должен обладать правами администратора (sudo) для управления пакетами и службами.

Система требует доступа к интернету для загрузки компонентов через репозитории apt и snap. Для работы веб-сервера и панели управления необходимо открыть соответствующие порты в брандмауэре, включая порт 10443 для доступа к панели управления Kubernetes.

Процесс установки приложения

Установка платформы осуществляется через пакетный менеджер snap. Процесс включает следующие этапы:

  1. Обновление индекса пакетов apt.
  2. Установка пакета snapd для поддержки формата snap.
  3. Установка платформы microk8s из канала, указанного в переменной microk8s_version, с флагом classic.
  4. Добавление пользователя в группу microk8s для предоставления прав на управление кластером без использования sudo для команд kubectl.
  5. Активация дополнительных модулей (аддонов) платформы:
  6. dns для внутренней системы именования.
  7. hostpath-storage для хранения данных на хосте.
  8. dashboard для веб-интерфейса управления.
  9. Ожидание полной готовности кластера с помощью команды microk8s status --wait-ready.
  10. Создание алиаса для команды kubectl, чтобы использовать её без префикса microk8s.

Контейнеры Docker и их запуск

После установки платформы microk8s развертывается веб-сервер с помощью оркестратора контейнеров. Конфигурация контейнеров описана в файле compose.yml.

Используется образ jonasal/nginx-certbot:latest. Контейнер настроен на перезапуск в режиме unless-stopped.

Основные параметры развертывания контейнера nginx: - Режим сети: host (использует сетевой стек хоста). - Переменная окружения CERTBOT_EMAIL установлена на hkadm@hostkey.com. - Дополнительные переменные загружаются из файла /data/nginx/nginx-certbot.env. - Монтирование внешнего тома nginx_secrets в директорию /etc/letsencrypt для хранения SSL-сертификатов. - Монтирование локальной директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d для пользовательских конфигураций.

Для запуска контейнеров используется команда docker compose с указанным файлом конфигурации.

Прокси серверы

В системе развернут прокси-сервер Nginx в контейнере, который также выполняет функции получения и обновления SSL-сертификатов через Certbot.

Конфигурация прокси включает: - Использование внешнего тома nginx_secrets для хранения секретов Let's Encrypt. - Подключение пользовательских конфигурационных файлов из директории /data/nginx/user_conf.d. - Настройку email-адреса для уведомлений от Certbot.

Сервер работает в режиме host, что позволяет ему напрямую слушать порты хоста.

Права доступа и безопасность

Пользователь, выполняющий развертывание, добавляется в группу microk8s. Это действие предоставляет права на выполнение команд управления кластером без необходимости использования sudo.

Для доступа к панели управления Dashboard генерируется токен доступа с помощью команды microk8s kubectl create token default. Полученный токен выводится в консоль для последующего использования.

Доступ к веб-интерфейсу панели управления осуществляется через проброс порта. Команда microk8s kubectl port-forward перенаправляет локальный порт 10443 на порт 443 сервиса kubernetes-dashboard в пространстве имен kube-system.

Запуск, остановка и обновление

Управление платформой microk8s осуществляется через команды microk8s. Проверка статуса готовности выполняется командой microk8s status --wait-ready.

Для управления контейнером nginx используются стандартные команды docker compose: - Запуск: docker compose up -d - Остановка: docker compose down - Обновление образа: docker compose pull с последующим запуском.

После обновления платформы или контейнеров может потребоваться повторная генерация токена доступа к панели управления.

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