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
  1. Вступить в группу

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

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

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

su - $USER
  1. Проверка состояния

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

microk8s status --wait-ready
  1. Доступ к 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
  1. Развертывание приложения

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

kubectl create deployment nginx --image=nginx

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

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

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

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

microk8s enable dns
microk8s enable hostpath-storage
  1. Запуск и остановка MicroK8s

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

microk8s stop

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

microk8s start

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

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

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

  • Нужно развернуть Kubeflow? Узнайте, как это сделать в статье Charmed KubeFlow.

Комментарии (7)


  1. blindmen
    09.04.2024 22:45
    +6

    Странное сравнение, даже нет сравнение минимальных требований у испытуемых. Спасибо что нет ссылки на телеграм канал)


    1. ZubikIT Автор
      09.04.2024 22:45

      Сравнение минимальных требований есть на официальном сайте, можно там посмотреть.


  1. dymsia
    09.04.2024 22:45

    Введение эффективно контекстуализирует тему статьи, представляя Microk8s как легкий и простой в установке дистрибутив Kubernetes. Оно ясно объясняет преимущества использования Microk8s, такие как его популярность, простота в сравнении с другими дистрибутивами Kubernetes, и подходит для различных сценариев использования от разработки до пограничных вычислений. Отличным аспектом введения является обещание подробного рассмотрения Microk8s, его сравнения с другими вариантами Kubernetes, опыта использования и инструкций по настройке, что делает статью обещающей и информативной для читателей, заинтересованных в этой теме. Спасибо !


  1. ddruganov
    09.04.2024 22:45
    +1

    Из этой статьи я понял, что надо брать k3s


  1. ChizhM
    09.04.2024 22:45

    "Кластер на одной виртуальной машине" - оксюморон какой-то.


    1. StanEgo
      09.04.2024 22:45

      Для дев-среды весьма логично. Интеграционные тесты могут и несколько кластеров на одной машине поднимать.


    1. ZubikIT Автор
      09.04.2024 22:45

      Ознакомьтесь пожалуйста со статьей Кластер MicroK8s