Гид по технологиям

Установка MicroK8s на Ubuntu

6 min read DevOps Обновлено 05 Jan 2026
Установка MicroK8s на Ubuntu
Установка MicroK8s на Ubuntu

Кратко

MicroK8s — лёгкий, сертифицированный Kubernetes для разработки, тестирования и edge‑устройств. В этой инструкции показано, как установить MicroK8s на Ubuntu, настроить доступ, включить ключевые аддоны, запустить простой сервис и проверить панель управления. Подойдёт для локальной разработки и обучения.

Важное: команды в статье требуют прав администратора; на рабочей машине используйте осторожно.

Почему стоит выбрать MicroK8s?

MicroK8s — это «микро» версия Kubernetes, собранная для минимального потребления ресурсов и простоты использования. Коротко о плюсах:

  • Лёгкий запуск на ноутбуке, сервере или edge‑устройстве без виртуальной машины.
  • Поддержка x86 и ARM архитектур.
  • Сертифицирован CNCF, т. е. совместим с upstream Kubernetes.
  • Быстрая активация стандартных аддонов (DNS, dashboard, storage).

Когда MicroK8s подходит: обучение, локальная разработка, быстрые PoC, edge‑сценарии.

Когда лучше выбрать другое решение: крупномасштабные многузловые production‑кластеры с сложным сетевым или HA‑требованием — лучше рассмотреть Charmed Kubernetes, k3s или управляемые облачные сервисы.

Что вам нужно перед началом

  • Ubuntu 18.04 / 20.04 / 22.04 или новее.
  • Доступ к пользователю с sudo.
  • Если есть аппаратный брандмауэр или нестандартная сеть — подготовьте правила для контейнерной сети (cni0).

Шаг 1: Установка MicroK8s на Ubuntu

Установите через snap:

sudo snap install microk8s --classic

Альтернатива: установите через графический Центр приложений Ubuntu — найдите «microk8s» и нажмите Установить.

Корабль с грузовыми контейнерами и логотипом Kubernetes

Шаг 2: Настройка брандмауэра для MicroK8s

MicroK8s использует отдельную сетевую подсеть для подов. Разрешите входящий и исходящий трафик на интерфейсе cni0:

sudo ufw allow in on cni0 && sudo ufw allow out on cni0

Затем разрешите маршрутизируемый трафик:

sudo ufw default allow routed

Важно: если вы используете иной брандмауэр — примените эквивалентные правила. Для защищённых production‑сред настройте правила тоньше.

Шаг 3: Добавление пользователя в группу microk8s

По умолчанию команды microk8s требуют sudo. Для удобства разработки можно добавить текущего пользователя в группу microk8s и изменить владельца каталога kube:

sudo usermod -aG microk8s $USER
sudo chown -f -R $USER ~/.kube
newgrp microk8s

После этого вы сможете запускать microk8s команды без sudo в текущей сессии.

Шаг 4: Включение важных аддонов

MicroK8s идёт с минимальным набором. Включите часто используемые аддоны:

microk8s enable dns dashboard storage
  • DNS часто нужен другим аддонам и приложениям — рекомендуется включать всегда.
  • Dashboard даёт графический интерфейс для наблюдения и управления.
  • Storage обеспечивает локальные классы хранения для PersistentVolume.

Проверить статус и список доступных аддонов:

microk8s status

Шаг 5: Просмотр панели MicroK8s

Получите список всех объектов, чтобы узнать IP и порты сервисов:

microk8s kubectl get all --all-namespaces

Вывод с перечнем неймспейсов MicroK8s

В выводе найдите сервис kubernetes-dashboard — его внутренний IP будет в диапазоне сетки подов (пример: 10.152.183.35). Для доступа откройте в браузере указанный URL, например:

https://10.152.183.35:443

Для входа Dashboard потребует токен. Получите его так:

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token

Аутентификация панели Kubernetes

После входа Dashboard покажет рабочие нагрузки, сервисы и конфигурации.

Панель Kubernetes на Ubuntu

Шаг 6: Создание сервиса в MicroK8s

Запустим простое приложение microbot и выставим его наружу:

microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1
microk8s kubectl scale deployment microbot --replicas=2
microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service

Проверьте статус:

microk8s kubectl get all --all-namespaces

Вывод команд с сервисами MicroK8s

Найдите порт NodePort (например 30353). Затем откройте в браузере:

http://localhost:30353

Сервис microbot в браузере

Kubernetes или Docker: что выбрать?

Kubernetes — инструмент оркестрации множества контейнеров и управления жизненным циклом приложений на уровне кластера. Docker (сам по себе) удобен для сборки и запуска отдельных контейнеров. Выбор зависит от масштаба и потребностей:

  • Малые однофункциональные сервисы или локальная отладка: Docker достаточно.
  • Многосервисные приложения, автоматическое масштабирование и управление сетями: Kubernetes.

Важно: часто используют оба инструмента вместе — Docker для образов, Kubernetes для оркестрации.

Когда MicroK8s не подойдёт

  • Если нужна полноценная многузловая production‑кластер‑инфраструктура с высокой доступностью под управлением оператора — лучше Charmed Kubernetes или управляемое решение облака.
  • Если на машине крайне ограничены ресурсы и требуется микро‑раниц, возможно стоит рассмотреть k3s.

Альтернативные подходы

  • Minikube — удобен для локальной разработки с VM или драйвером контейнеров.
  • k3s — лёгкий Kubernetes от Rancher, оптимизированный для edge и IoT.
  • Docker Desktop (включает Kubernetes) — удобно для разработчиков на Mac/Windows.

Выбор зависит от ОС, требуемой лёгкости и сценариев развертывания.

Ментальные модели и эвристики

  • Под «кластером» думайте как о сетке из нод, где каждый под — экземпляр приложения.
  • Аддоны MicroK8s — это плагины: включаете только то, что нужны.
  • Для локальной разработки держите количество реплик маленьким и используйте NodePort или порт‑форвардинг вместо Ingress/LoadBalancer.

Чек‑лист по ролям

Разработчик:

  • Установлен microk8s и добавлен пользователь в группу.
  • Включён dns и storage.
  • Деплой и масштабирование тестируются локально.

SRE / Инженер по DevOps:

  • Проверены правила брандмауэра и сетевые политики.
  • Настроены резервные копии манифестов и секретов.
  • Определены SLI/SLO для критичных сервисов.

Инженер безопасности:

  • Ограничены RBAC‑правa доступа к dashboard и API.
  • Секреты хранятся в зашифрованном формате (External Secrets или Sealed Secrets).
  • Включён аудит Kube API при необходимости.

Критерии приёмки

  • MicroK8s установлен и запуск microk8s status возвращает “running”.
  • Dashboard доступен по внутреннему IP и можно войти с помощью полученного токена.
  • Тестовый сервис microbot доступен в браузере по NodePort.
  • Команды kubectl выполняются без sudo для добавленного пользователя.

Руководство по устранению проблем (микро‑runbook)

Проблема: microk8s не запускается

  • Проверить статус сервиса: sudo systemctl status snap.microk8s.daemon-kubelite
  • Просмотреть логи: journalctl -u snap.microk8s.daemon-kubelite -n 200

Проблема: DNS не работает внутри кластера

  • Убедиться, что addon dns включён: microk8s status –wait-ready
  • Проверить поды kube‑dns или coredns: microk8s kubectl -n kube-system get pods

Проблема: Dashboard недоступен

  • Получить список сервисов: microk8s kubectl -n kube-system get svc
  • Проверить токен и права сервиса account.

Тестовые случаи и критерии приёмки

  • Деплой микросервиса: создать deployment, масштабировать до 2 реплик и проверить, что оба pod’а в состоянии Running.
  • Экспорт сервиса NodePort: получить порт и получить 200 OK с корневого URL.
  • Перезапуск node: проверить, что поды перезапустятся и вернутся в Ready.

Безопасность и соответствие конфиденциальности

  • По умолчанию Dashboard имеет доступ к API — ограничьте доступ с помощью RBAC и NetworkPolicy.
  • Не храните личные данные в незашифрованных секрете в Kubernetes.
  • При требовании GDPR: минимизируйте персональные данные в тестовых кластерах и применяйте политики удаления и журналирования.

Мини‑методология для вывода в прод

  1. Прототип локально на MicroK8s. 2. Подготовить манифесты и CI/CD для деплоя. 3. Мигрировать на управляемый кластер или Charmed Kubernetes для production. 4. Настроить мониторинг, логирование и бэкапы.

Краткий глоссарий (1 строка)

  • Pod — минимальная единица в Kubernetes, один или несколько контейнеров, которые делят сеть и тома.
  • Node — хост (виртуальный или физический), на котором запускаются pod’ы.
  • Deployment — контроллер для управления репликами приложения.
  • Service — объект, обеспечивающий сетевой доступ к pod’ам.

Короткое объявление (для почты или Slack, 100–200 слов)

Развернул руководство по быстрой установке MicroK8s на Ubuntu — лёгкий и сертифицированный Kubernetes для локальной разработки и edge. В инструкции: установка через snap, правила брандмауэра, добавление пользователя в группу microk8s, включение ключевых аддонов (DNS, dashboard, storage), запуск тестового сервиса microbot и доступ к Dashboard. Также включены чек‑листы для разработчика, SRE и инженера по безопасности, runbook для типичных проблем и краткие рекомендации по миграции в production. Подойдёт для тех, кто хочет быстро начать работать с Kubernetes без тяжёлой инфраструктуры.


Если нужно, подготовлю отдельную инструкцию по настройке Ingress, cert‑manager и интеграции с CI/CD.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство