Что такое MicroK8s?
MicroK8s — это минимальный, сертифицированный в CNCF дистрибутив, достаточно легкий для запуска Kubernetes при очень низком расходе ресурсов процессора и объеме занимаемой памяти. По сравнению с таким же мощным, но относительно тяжелым Minikube, он запускается очень быстро.
Несмотря на наличие всех основных компонентов Kubernetes, в MicroK8s также неизменно добавление одной командой типичных дополнений: DNS, Helm, реестра, хранилища и т. д.
В целом, это отличный инструмент локальной разработки Kubernetes: у MicroK8s низкий объем требуемых ресурсов, легкая установка и быстрый запуск.
Установка
MicroK8s запускается на macOS всего 2 командами:
brew install ubuntu/microk8s/microk8s
microk8s install
На Linux это так же просто, но — в зависимости от уже имеющейся настройки — могут понадобиться дополнительные этапы:
sudo apt-get -y update
sudo snap install core
sudo snap install microk8s --classic
sudo usermod -a -G microk8s $USER
sudo chown -f -R $USER ~/.kube
sudo microk8s config > ~/.kube/config

После установки MicroK8s запускается автоматически. На установку MicroK8s и ожидание готовности кластера уходит всего пара минут.
Командой microk8s status --wait-ready
проверяется состояние кластера MicroK8s. Проверка завершается, только когда он готов к работе:

microk8s status --wait-ready
Любые «отключенные» дополнения (на скриншоте обозначены как disabled) при желании легко добавляются.
Дэшборд, CoreDNS, Istio и любое другое поддерживаемое дополнение кластера Kubernetes включается командой:
microk8s enable dashboard dns istio
Приятный бонус: вместе с MicroK8s устанавливается kubectl
, доступный через microk8s kubectl
. В MicroK8s, как и любом другом кластере, запускаются любые команды:

Команда microk8s kubectl
громоздкая (один kubectl уже длинно), официально рекомендуется создать псевдоним, например alias mkctl="microk8s kubectl"
.
Если для настройки кластера MicroK8s использовать все команды, в файле ~/.kube/config
также должна быть запись:

Если ее нет, конфигурация для кластера MicroK8s получается двумя способами:
# Через "kubectl"
mkctl config view --minify --raw
# Напрямую через microk8s
microk8s config
Убедимся, что все готово к работе. Все ресурсы для всех пространств имен получаются командой:
# Получить все ресурсы для всех пространств имен
mkctl get all --all-namespaces
# Сокращенно
mkctl get all -A

Остановка кластера
Кластер желательно запускать только во время активной работы компьютера. Если при ее завершении кластер работает, при загрузке машины он запускается автоматически. Поэтому перед выключением компьютера кластер нужно останавливать, и он не запустится автоматически при перезагрузке.
MicroK8s останавливается одной командой, выполняемой всего за пару секунд:
microk8s stop

Удаление
MicroK8s удаляется с компьютера тоже одной простой командой:
sudo snap remove microk8s
Читайте также:
- Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap
- Мониторинг кластера Kubernetes без зависимостей
- Базовые команды при работе с узлами K8s
Читайте нас в Telegram, VK и Дзен
Перевод статьи Pascal Zwikirsch: Kubernetes: Installing MicroK8s On Your Local Machine In 5 Minutes