• База знань
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

Стаття також доступна російською (перейти до перегляду).

Minikube - опис, інсталяція, налаштування

Вступ

Розробка та управління розгалуженими додатками нині не уявляється без використання контейнерного середовища, котре прийшло на зміну середовищу віртуальних машин. Однак складність його організації вимагає наявності інструментарію для здійснення координації роботи контейнерів або їх оркестрування. Одним з таких інструментів є Kubernetes, котрий здатний виконувати вказані функції як у розгалужених системах, так і локальних. Програмний інструмент Minikube є засобом забезпечення роботи Kubernetes саме у межах локального середовища. Для цього він і був створений. Розглянемо його використання у контейнерному середовищі Docker, розгорнутому на VPS-сервері під керуванням ОС Ubuntu 22.04.

Технічні вимоги до апаратного та програмного забезпечення сервера

Для забезпечення роботи будь-якого програмного забезпечення (ПЗ) висуваються певні вимоги до апаратної та програмної частини комп’ютеру, котрі в даному випадку є наступними:

CPU, од RAM, Gb Disk, Gb OC Віртуальне середовище Додаткові умови
≥ 2 ≥ 2 ≥ 20 Linux, macOS, Windows Docker, VirtualBox VMware Fusion, QEMU, Hyperkit, Podman, Hyper-V, KVM, Parallels Наявність облікового запису користувача с правами Адміністратора

Підготовка програмного середовища сервера

Як вже зазначалося, для демонстрації роботи з програмою Minikube на нашому VPS-сервері Ubuntu буде використане віртуальне середовище Docker. Окрім того, будуть встановлені деякі з інструментів, необхідних для управління кластерами Kubernetes та виконані інші додаткові умови. У зв’язку з цим визначимо наступні кроки, які ми повинні виконати на сервері:

  • Створення користувача з правами sudo;
  • Розгортання Docker-середовища;
  • Встановлення програмного інструменту kubectl.

Створення користувача із правами sudo

Для початку створимо користувача із ім’ям testing_minikube. Для цього введемо у терміналі:

$ adduser testing_minikube

Створення нового користувача

Користувач успішно створений. Додамо його до групи з правами sudo:

$ adduser testing_minikube sudo

Додавання користувача до групи sudo

Результат: «Adding user testing_minikube to group sudo Done.», тобто користувача додано до групи sudo.

Змінимо поточний робочий акаунт Ubuntu за допомогою наступної команди:

$ su -l testing_minikube

Зміна робочого акаунту

Розгортання Docker-середовища

Розгортання та роботу із середовищем Docker ми вже розглядали в одній із попередніх наших статей, де були вказані конкретні кроки по його інсталяції та налаштуванню і тому тут не будемо їх розглядати, а лише продемонструємо активність служби Docker на нашому сервері.

Щоб переконатися, що процес активний, перевіримо статус служби. Для цього введемо в терміналі наступну команду:

$ sudo systemctl status docker

Перевірка активності процесу

Отже, процес активний.

Для того, щоб у подальшому у нас не виникало проблем із цією службою, додамо поточного користувача до групи docker. Для цього введемо в терміналі:

$ sudo usermod -aG docker testing_minikube && newgrp docker

Додавання користувача до групи docker

Користувача додано до групи.

Встановлення Kubectl

Це інструмент командної строки Kubernetes, що, зокрема, дозволяє запускати команди управління ресурсами кластерів. У нашому випадку він буде виконувати свої функції у локальному середовищі. Слід зазначити, що бажано використовувати останню версію програми, щоб у подальшому не виникало колізій.

Завантажимо останню версію kubectl за допомогою наступної команди:

$ curl -LO https://dl.k8s.io/release/`curl -LS https://dl.k8s.io/release/stable.txt`/bin/linux/amd64/kubectl

Завантаження kubectl

Після цього зробимо виконуючимся бінарний файл програми:

$ chmod +x ./kubectl

Бінарний файл програми

Перенесемо файл до каталогу із змінної оточення PATH:

$ sudo mv ./kubectl /usr/local/bin/kubectl

Перенос файлу до каталогу

Перевіримо, чи це остання версія програми:

$ kubectl version --client

перевірка версії застосунку

Результат – «Client Version: v1.29.1», тобто версія остання.

Розгортання Minikube

Встановити програму можна кількома шляхами, зокрема, шляхом завантаження бінарного файлу із сайту сховища або встановлення програмного пакету Debian.

Завантажимо бінарний файл:

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube

Завантаження бінарного файлу

Файл завантажено. Для того, щоб він став доступним для запуску із будь-якого місця введемо наступну команду в терміналі:

$ sudo mkdir -p /usr/local/bin/

Встановлення доступності запуску файлу

Запустимо процес інсталяції:

$ sudo install minikube /usr/local/bin/

Запуск інсталяції minikube

Програма успішно встановлена.

Використання Minikube для управління кластером

Запуск та створення кластеру

У випадку, якщо б на нашій машині, окрім Docker було встановлено кілька віртуальних середовищ, наприклад, VirtualBox, QEMU або інші, то ми повинні були б у командній строчці за допомогою опції --vm-driver вказати драйвер обраного середовища. Так, для VirtualBox команда виглядала б наступним чином:

$ minikube start --vm-driver=virtualbox

Активуємо засіб, при цьому одразу ж буде створений новий кластер. Для цього наберемо в терміналі:

$ minikube start

Запуск minikube

За результатами виконання команди бачимо, що відбулися, зокрема, наступні зміни:

  • Драйвер docker був обраний в автоматичному режимі (Automatically selected the docker driver);
  • Запущена Панель управління вузлом minikube у межах кластеру minikube;
  • Ініціювався процес створення базового образу кластеру;
  • Відбулося завантаження системи Kubernetes v1.28.3;
  • Відбулося створення docker-контейнеру;
  • Ініціювався процес конфігурування Kubernetes v1.28.3 для роботи на базі платформи Docker 24.0.7;
  • Kubectl був налаштований на використання кластеру minikube та простору імен, встановленого за замовчуванням.

Перевіримо стан кластеру minikube за допомогою наступної управляючої конструкції:

$ minikube status

Перевірка стану кластеру minikube

Вивід команди:

minikube

type: Control Plane

host: Running

kubelet: Running

apiserver: Running

kubeconfig: Configured

Таким чином, ми з’ясували, що програмний засіб успішно працює із встановленим віртуальним середовищем (гіпервізором) Docker та здатен виконувати свої функції.

Використання можливостей kubectl

Переглянемо поточний стан сервісів кластеру. Для цього введемо в терміналі:

$ kubectl get po -A

Перевірка стану сервісів кластеру

Вивід команди:

NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5dd5756b68-52jmj 1/1 Running 0 11m
kube-system etcd-minikube 1/1 Running 13m
kube-system kube-apiserver-minikube 1/1 Running 12m
kube-system kube-controller-manager-minikube 1/1 Running 12m
kube-system kube-proxy-rvrln 1/1 Running 11m 
kube-system kube-scheduler-minikube 1/1 Running 12m 
kube-system  storage-provisioner 1/1 Running 2 (4m18s ago) 11m

Ми бачимо поточний стан всіх складових сервісів та додаткову інформацію про них.

Тепер створимо образ розгортання із ім’ям test-minikube. Для цього введемо в терміналі:

$ kubectl create deployment test-minikube --image=kicbase/echo-server:1.0

Створення образу  test-minikube

Відкриємо образ через порт:

$ kubectl expose deployment test-minikube --type=NodePort --port=8080

Відкриття образу через порт

Результат – «service/test-minikube exposed», тобто сервіс test-minikube відкритий.

Завжди можна «викликати» потрібний образ або сервіс за допомогою наступної команди

$ kubectl get services test-minikube

Окрім того, можна ініціювати запуск веб-браузеру для доступу до будь-якого сервісу. У нашому випадку команда буде виглядати наступним чином:

$ minikube service test-minikube

Для переадресації порту також можна скористатися можливостями kubectl:

$ kubectl port-forward service/test-minikube 7080:8080

В результаті, сервіс стане доступним за посиланням http://localhost:7080/.

Панель керування Kubernetes

Іноді буває необхідним отримати більш повну інформацію про стан кластеру у зручному веб-форматі. Для цієї мети розробниками передбачено використання Панелі керування, створення котрої активується в автоматичному режимі ще на етапі створення кластеру.

Спробуємо отримати до неї доступ за допомогою наступної управляючої конструкції:

$ minikube dashboard

Доступ до панелі Kubernetes

Таким чином за допомогою посилання http://127.0.0.1:40353/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ ми завжди можемо скористатися можливостями Панелі керування Kubernetes.

Керуючі команди Minikube

Для управлінням роботою кластеру Minikube має доволі зручні засоби у вигляді простих і зрозумілих команд. Скористаємося ними.

Призупинимо роботу кластеру без втручання у вже розгорнуті додатки:

$ minikube pause

Зупинка роботи кластеру

Результат – робота вузла minikube призупинена; призупинена робота 18-ти контейнерів ... .

Відмінимо паузу:

$ minikube unpause

Відміна паузи

Переглянемо список доступних сервісів Kubernetes:

$ minikube addons list

Список сервісів Kubernetes

Зупинимо роботу кластеру:

$ minikube stop

Зупинка роботи кластеру

Видалимо кластер:

$ minikube delete

Видалення кластеру

Результат:

* Deleting "minikube" in docker ...
* Deleting container "minikube" ...
* Removing /home/testing_minikube/.minikube/machines/minikube ...
* Removed all traces of the "minikube" cluster.

В результаті будуть видалені всі ознаки існування кластеру.

Ми продемонстрували лише частину можливостей сервісів Minikube та Kubectl, їх же набагато більше, слідкуйте за нашими статтями, буде продовження :)

Запрошуємо Вас скористатися нашим VPS хостингом. Дата-центр FREEhost.UA пропонує вже готові шаблони VPS з Ubuntu та VPS з Docker. Всього через кілька хвилин після підтвердження замовлення Ви зможете скористатися повністю налаштованим сервером. Широка лінійка конфігурацій серверів дозволить обрати ресурси ресурси які потрібні для вирішення саме вашого завдання, а цілодобова підтримка допоможе у вирішенні питань.

Підписуйтесь на наш телеграм-канал https://t.me/freehostua, щоб бути в курсі нових корисних матеріалів.

Дивіться наш канал Youtube на https://www.youtube.com/freehostua.

Ми у чомусь помилилися, чи щось пропустили?

Напишіть про це у коментарях, ми з задоволенням відповімо та обговорюємо Ваші зауваження та пропозиції.

Дата: 06.02.2024
Автор: Олександр Ровник
Голосування

Авторам статті важлива Ваша думка. Будемо раді його обговорити з Вами:

comments powered by Disqus
navigate
go
exit
Дякуємо, що обираєте FREEhost.UA