Сравнение MicroK8s c Managed Kubernetes Clusters, K3s и Minikube
Введение
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:
K3s: Разработанный Rancher Labs, K3s предназначен для пограничных вычислений, IoT и других сред с ограниченными ресурсами. Он имеет меньший размер двоичного кода, чем Microk8s, и предлагает более минималистичный набор функций. Однако Microk8s обеспечивает лучшую поддержку различных плагинов для хранения данных и сетей и обладает более полным набором функций из коробки.
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.
Установка MicroK8s.
MicroK8s установит минимальный, легкий Kubernetes, который можно запускать и использовать практически на любой машине. Его можно установить в мгновение ока:
sudo snap install microk8s --classic --channel=1.29
Вступить в группу
MicroK8s создает группу, чтобы обеспечить беспрепятственное использование команд, требующих привилегий администратора. Чтобы добавить текущего пользователя в группу и получить доступ к каталогу кэширования .kube, выполните следующие три команды:
sudo usermod -a -G microk8s $USER
sudo mkdir -p ~/.kube
sudo chown -f -R $USER ~/.kube
Вам также нужно будет повторно войти в сессию, чтобы произошло обновление группы:
su - $USER
Проверка состояния
MicroK8s имеет встроенную команду для отображения своего статуса. Во время установки вы можете использовать флаг --wait-ready
, чтобы дождаться инициализации сервисов Kubernetes:
microk8s status --wait-ready
Доступ к Kubernetes
MicroK8s поставляет свою собственную версию kubectl
для доступа к Kubernetes. С ее помощью можно выполнять команды для мониторинга и управления Kubernetes. Например, для просмотра узла:
microk8s kubectl get nodes
...или для просмотра запущенных сервисов:
microk8s kubectl get services
В MicroK8s используется команда kubectl
с именем, чтобы избежать конфликтов с существующими установками kubectl. Если у вас нет существующей установки, проще добавить псевдоним (добавить в ~/.bash_aliases
), например, так:
alias kubectl='microk8s kubectl'
Добавим автозавершение командной строки и алиас k
для kubectl
:
echo 'alias k=kubectl' >>~/.bashrc
echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc
source ~/.bashrc
Развертывание приложения
Конечно, Kubernetes предназначена для развертывания приложений и сервисов. Для этого, как и в случае с любой другой Kubernetes, можно использовать команду kubectl
. Попробуйте установить демонстрационное приложение:
kubectl create deployment nginx --image=nginx
Установка может занять минуту или две, но вы можете проверить статус:
kubectl get pods
Использование дополнений
MicroK8s использует минимум компонентов для создания чистого, легкого Kubernetes. Однако множество дополнительных функций можно получить с помощью нескольких нажатий клавиш, используя "дополнения" - готовые компоненты, которые обеспечат дополнительные возможности для вашей Kubernetes, от простого управления DNS до машинного обучения с помощью Kubeflow!
Для начала рекомендуется добавить управление DNS
, чтобы облегчить взаимодействие между сервисами. Для приложений, которым требуется хранилище, дополнение hostpath-storage
предоставляет пространство для каталогов на хосте. Их легко настроить:
microk8s enable dns
microk8s enable hostpath-storage
Запуск и остановка MicroK8s
MicroK8s будет работать до тех пор, пока вы не решите остановить его. Остановить и запустить MicroK8s можно с помощью следующих простых команд:
microk8s stop
... остановит MicroK8s и его службы. Вы можете запустить их снова в любое время, выполнив команду:
microk8s start
Обратите внимание, что если вы оставите MicroK8s запущенным, он автоматически перезапустится после перезагрузки. Если вы не хотите, чтобы это произошло, просто не забудьте выполнить команду microk8s stop
перед выключением питания.
Следующие шаги
Одного узла недостаточно? Попробуйте настройку кластера MicroK8s.
Нужно развернуть Kubeflow? Узнайте, как это сделать в статье Charmed KubeFlow.