3/5 - (2 votes)

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 перед вимкненням живлення.