[Перевод] Сравнение MicroK8s c Managed Kubernetes Clusters, K3s и Minikube

MicroK8s

MicroK8s

Введение

Microk8s — это легкий,  простой в установке дистрибутив Kubernetes,  обеспечивающий полнофункциональный кластер на одной виртуальной машине. В последние годы он завоевал популярность благодаря своей простоте и удобству использования,  особенно в сравнении с другими подобными вариантами Kubernetes,  такими как k3s и minikube. В этой статье мы подробно рассмотрим,  что такое Microk8s,  чем он отличается от управляемых кластеров Kubernetes и какие преимущества он имеет по сравнению с другими дистрибутивами Kubernetes. Мы также поделимся собственным опытом использования Microk8s в различных проектах,  подчеркнув преимущества и пользу,  которые он дает. И наконец,  мы покажем,  как настроить его на вашей виртуальной машине.

Что такое MicroK8s?

Microk8s — это дистрибутив Kubernetes,  разработанный Canonical,  компанией,  создавшей Ubuntu. Он предназначен для создания простого одноузлового кластера Kubernetes,  который может работать на любой машине. Он идеально подходит для разработчиков,  небольших развертываний,  пограничных вычислений,  IoT и других ситуаций,  когда полномасштабный кластер Kubernetes не нужен или нецелесообразен. Microk8s обладает богатым набором функций,  включая автоматические обновления,  встроенное обнаружение сервисов и поддержку различных плагинов для хранения и работы с сетью.

Microk8s по сравнению с управляемыми кластерами Kubernetes

Управляемые кластеры Kubernetes обычно предлагаются облачными провайдерами и имеют то преимущество,  что они полностью управляются провайдером. Это означает,  что они решают все административные задачи,  такие как обновление,  масштабирование,  мониторинг и резервное копирование. Хотя управляемые кластеры удобны,  они часто имеют более высокую цену и могут не подойти для небольших проектов или для тех,  кому не нужны все функции,  предоставляемые полномасштабным кластером Kubernetes.

В отличие от них,  Microk8s разработан как легкое,  автономное и простое в установке решение. Его можно запустить на одной виртуальной машине,  что делает его идеальным решением для небольших проектов или для тех случаев,  когда нужно быстро запустить кластер Kubernetes. Он требует минимальной настройки и идеально подходит для разработчиков,  которые хотят сосредоточиться на своих приложениях,  а не на управлении кластером.

Microk8s против K3s и Minikube

K3s и Minikube — два других популярных облегченных дистрибутива Kubernetes. Хотя оба они предлагают упрощенный опыт работы с Kubernetes,  у них есть несколько ключевых различий по сравнению с Microk8s:

  1. K3s: Разработанный Rancher Labs, K3s предназначен для пограничных вычислений, IoT и других сред с ограниченными ресурсами. Он имеет меньший размер двоичного кода, чем Microk8s, и предлагает более минималистичный набор функций. Однако Microk8s обеспечивает лучшую поддержку различных плагинов для хранения данных и сетей и обладает более полным набором функций из коробки.

  2. Minikube: Minikube специально разработан для локальной разработки, позволяя разработчикам запускать одноузловой кластер Kubernetes на своих локальных машинах. Хотя Minikube отлично подходит для разработки и тестирования, ему не хватает некоторых более продвинутых функций и поддержки плагинов, предоставляемых Microk8s, что делает Microk8s более универсальным вариантом.

В этой таблице представлен обзор ключевых различий между Microk8s,  Managed Kubernetes Clusters,  K3s и Minikube с точки зрения их целевых сценариев использования,  установки,  управления,  стоимости и возможностей. Это поможет вам легко сравнить и понять их уникальные предложения и пригодность для различных сценариев.

ОСОБЕННОСТЬ / АСПЕКТ

MICROK8S

УПРАВЛЯЕМЫЕ КЛАСТЕРЫ KUBERNETES

K3S

MINIKUBE

Целевой сценарий использования

Разработчики, небольшие развертывания, пограничные вычисления, IoT

Большие развертывания, предприятия

Пограничные вычисления, IoT, среды с ограниченными ресурсами

Локальная разработка, тестирование

Установка

Простая, установка одного узла

Управляемая поставщиком установка нескольких узлов

Простая, установка одного узла

Простая, установка одного узла

Управление

Самостоятельное управление, минимум административных задач

Управление провайдера, полная административная поддержка

Самостоятельное управление, минимум административных задач

Самостоятельное управление, минимум административных задач

Стоимость

Бесплатно, с открытым исходным кодом

Платно, цены зависят от провайдера

Бесплатно, с открытым исходным кодом

Бесплатно, с открытым исходным кодом

Автоматические обновления

Да

Да

Да

Нет

Обнаружение услуг

Встроенный

Зависит от провайдера

Встроенный

Встроенный

Плагины для хранения и работы в сети

Полная поддержка

Зависит от провайдера

Ограниченная поддержка

Ограниченная поддержка

Двоичный размер

Малый

N/A

Самый маленький

Малый

Дополнительные возможности

Богатый набор функций из коробки

Зависит от провайдера

Минималистичный набор функций

Сосредоточен на разработке и тестировании функций

Наш опыт работы с Microk8s

Мы использовали Microk8s для нескольких наших проектов,  и он действительно оправдал наши ожидания от кластера Kubernetes. Установка прошла без проблем,  и мы быстро получили полнофункциональный кластер Kubernetes,  работающий на одной виртуальной машине. Благодаря Microk8s мы смогли сосредоточиться на наших приложениях,  а не на административных задачах,  так как он обеспечивает подлинно безотказную работу.

По нашему опыту,  Microk8s оказался отличным решением для небольших развертываний,  пограничных вычислений и сред разработчиков. Он позволил нам легко развертывать и управлять нашими приложениями без накладных расходов и сложностей,  связанных с полномасштабным кластером Kubernetes».

Что вам понадобится?

  • Операционная система Ubuntu 22.04 LTS.

  • Виртуальный сервер не менее 2 CPU, 4 ГБ памяти и 20 ГБ дискового пространства.

  • Подключение к Интернету.

  • Браузер Firefox.

  1. Установка MicroK8s.

MicroK8s установит минимальный,  легкий Kubernetes,  который можно запускать и использовать практически на любой машине. Его можно установить в мгновение ока:

sudo snap install microk8s --classic --channel=1.29

87d7bdf7d8c9fcca11e4063a3cc7f2b6.png

  1. Вступить в группу

MicroK8s создает группу,  чтобы обеспечить беспрепятственное использование команд,  требующих привилегий администратора. Чтобы добавить текущего пользователя в группу и получить доступ к каталогу кэширования .kube,  выполните следующие три команды:

sudo usermod -a -G microk8s $USER
sudo mkdir -p ~/.kube
sudo chown -f -R $USER ~/.kube

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

su - $USER

ff2fd77df81602e001a6d8a53da33106.png

  1. Проверка состояния

MicroK8s имеет встроенную команду для отображения своего статуса. Во время установки вы можете использовать флаг --wait-ready,  чтобы дождаться инициализации сервисов Kubernetes:

microk8s status --wait-ready

e0090db094a167a4a5587f3c4e6f79df.png

  1. Доступ к Kubernetes

MicroK8s поставляет свою собственную версию kubectl для доступа к Kubernetes. С ее помощью можно выполнять команды для мониторинга и управления Kubernetes. Например,  для просмотра узла:

microk8s kubectl get nodes

…или для просмотра запущенных сервисов:

microk8s kubectl get services

В MicroK8s используется команда kubectl с именем,  чтобы избежать конфликтов с существующими установками kubectl. Если у вас нет существующей установки,  проще добавить псевдоним (добавить в ~/.bash_aliases),  например,  так:

alias kubectl='microk8s kubectl'

3a70a51e5d57e081b099968ed46fa5d7.png

Добавим автозавершение командной строки и алиас k для kubectl:

echo 'alias k=kubectl' >>~/.bashrc
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc

202544a9fc72bf912ac7a9d67c6ae25c.png

  1. Развертывание приложения

Конечно,  Kubernetes предназначена для развертывания приложений и сервисов. Для этого,  как и в случае с любой другой Kubernetes,  можно использовать команду kubectl. Попробуйте установить демонстрационное приложение:

kubectl create deployment nginx --image=nginx

Установка может занять минуту или две,  но вы можете проверить статус:

kubectl get pods

00962781e7f34cc2d2912853edd1ab8a.png

  1. Использование дополнений

MicroK8s использует минимум компонентов для создания чистого,  легкого Kubernetes. Однако множество дополнительных функций можно получить с помощью нескольких нажатий клавиш,  используя «дополнения» — готовые компоненты,  которые обеспечат дополнительные возможности для вашей Kubernetes,  от простого управления DNS до машинного обучения с помощью Kubeflow!

Для начала рекомендуется добавить управление DNS,  чтобы облегчить взаимодействие между сервисами. Для приложений,  которым требуется хранилище,  дополнение hostpath-storage предоставляет пространство для каталогов на хосте. Их легко настроить:

microk8s enable dns
microk8s enable hostpath-storage

e499af18a34a4999db111d84f5fcc553.png

  1. Запуск и остановка MicroK8s

MicroK8s будет работать до тех пор,  пока вы не решите остановить его. Остановить и запустить MicroK8s можно с помощью следующих простых команд:

microk8s stop

… остановит MicroK8s и его службы. Вы можете запустить их снова в любое время,  выполнив команду:

microk8s start

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

Следующие шаги

  • Одного узла недостаточно? Попробуйте настройку кластера MicroK8s.

  • Хотите поэкспериментировать с альфа-версиями Kubernetes?  Смотрите документацию по настройке каналов.

  • Нужно возиться с конфигурацией Kubernetes?  Узнайте, как настроить сервисы Kubernetes.

  • Возникли проблемы? Загляните в наш раздел устранение неполадок.

  • Любите MicroK8s? Хотите внести свой вклад или предложить какую-нибудь функцию?  Дайте нам свой отзыв.

© Habrahabr.ru