• База знаний
  • /
  • Блог
  • /
  • 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