Установка 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» и нажмите Установить.

Шаг 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В выводе найдите сервис kubernetes-dashboard — его внутренний IP будет в диапазоне сетки подов (пример: 10.152.183.35). Для доступа откройте в браузере указанный URL, например:
Для входа Dashboard потребует токен. Получите его так:
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $tokenПосле входа Dashboard покажет рабочие нагрузки, сервисы и конфигурации.
Шаг 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Найдите порт NodePort (например 30353). Затем откройте в браузере:
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: минимизируйте персональные данные в тестовых кластерах и применяйте политики удаления и журналирования.
Мини‑методология для вывода в прод
- Прототип локально на 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.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone