Про Kubernetes написано огромное количество статей. Установка, настройка, мониторинг и безопасность все эти аспекты рассматриваются достаточно подробно. При этом, отдельным пунктом идет создание и настройка контейнеров. И если для решения глобальных задач  администрирования нужен Kubernetes уровня продакшен, то для работы с контейнерами промышленные мощности как правило не требуются, по крайней мере до этапа нагрузочного тестирования. Например, программисту нужно создать контейнер со своим приложением. Для этого ему будет вполне достаточно Minikube который позволит работать с контейнерами локально.

В этой статье мы рассмотрим использование minikube для работы с контейнерами. Поговорим о том, чем Minikube отличается от «большого» Kubernetes. Но начнем мы с процесса установки Minikube.

Куб на столе

Прежде всего рассмотрим процесс установки Minikube под Windows. Здесь стоит сразу отметить следующий момент: Kubernetes изначально был разработан для развертывания и использования в средах Linux. Однако значительное число пользователей (и не только разработчики приложений) используют ОС Windows в качестве своей рабочей среды. Некоторое время назад  Microsoft представила WSL (Windows Subsystem for Linux) - подсистему Windows для Linux, попытавшись таким образом сделать грань между средами Windows и Linux менее заметной. Насколько им это удалось можно поспорить, но для работы Minikube нам потребуется установить и активировать функционал WSL.

Для этого необходимо запустить консоль Powershell с правами локального администратора и выполнить следующую команду:

wsl --install

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

Приведенная выше команда работает только в том случае, если WSL вообще не установлен, если вы запустите wsl --install и увидите текст справки WSL, значит WSL у вас уже есть. В таком случае можно запустить wsl --list --online, чтобы просмотреть список доступных дистрибутивов, и запустите wsl --install -d <Имя дистрибутива> для установки дистрибутива.

Узнать установленную версию WSL можно с помощью команды

wsl –l –v

Дистрибутивом, установленным в WSL по умолчанию является Ubuntu. Если вы хотите сменить дистрибутив, то необходимо воспользоваться сначала командой

wsl --list --online

Для поиска доступных дистрибутивов. Как видно, список небольшой но почти все основные дистрибутивы в нем присутствуют.

Затем командой:

wsl --install -d <Distribution Name>

Установите нужный дистрибутив. И командой:

wsl --set-default <Distribution Name>

Заменить дистрибутив по-умолчанию на нужный.

Но вернемся к Minikube. Для его работы помимо WSL также требуется Docker Desktop for Windows.

Docker Desktop - это приложение для работы с контейнерами и микросервисами  и совместного использования их. Он предоставляет простой графический интерфейс пользователя, который позволяет вам управлять вашими контейнерами, приложениями и изображениями непосредственно с вашего компьютера. Docker Desktop можно использовать как самостоятельно, так и в качестве дополнительного инструмента к CLI.

На этом шаге мы уже можем работать с контейнерами и в качестве проверки вы можете выполнить в консоли команду

docker run -d -p 80:80 docker/getting-started

И после успешной загрузки образа в окне Docker Desktop выбираем контейнер, далее Open terminal и попадаем в командную строку контейнера.

Как видно, все достаточно просто. Перейдем к установке непосредственно Minikube.

На сайте Kubernetes есть несколько вариантов установки куба под Винду, но самыми простыми можно назвать два варианта установки. Первый вариант - это установка с помощью установщика Windows, из файла minikube-installer.exe. Эта установка выполняется по принципу Next-Next.

Альтернативой является ручная установка. Для ручной установки Minikube в Windows, загрузите minikube-windows-amd64, переименуйте его в minikube.exe и добавьте его в директорию исполняемых файлов.

Чтобы убедиться в том, что гипервизор и Minikube были установлены корректно, выполните следующую команду, которая запускает локальный кластер Kubernetes:

minikube start

В случае, если вам нужно использовать другой гипервизор, а не тот, с которым minikube пытается запуститься, используйте опцию --vm-driver с командой minikube start укажите имя установленного вами гипервизора в нижнем регистре  <driver_name> .

minikube start --vm-driver=<driver_name>

Например, для запуска драйвера Docker необходимо указать:

minikube start --vm-driver=docker

После того, как команда minikube start отработала успешно, выполните команду для проверки состояния кластера:

minikube status

 

Linux

В Линуксе установка Minikube не столь “интересна”. Проще всего, пожалуй, скачать пакет по прямой ссылке и выставив права на выполнение запустить.

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \

  && chmod +x minikube

Далее все достаточно просто. Запускаем кластер

minikube start

И смотрим статусы:

minikube status

Если ваш кластер запущен корректно, то в выводе команды minikube status должно быть что-то вроде этого:

Теперь, когда вы убедились, что Minikube работает с выбранным вами гипервизором, вы можете продолжить использовать Minikube или остановить кластер. Чтобы остановить кластер выполните команду ниже:

minikube stop

Отличия minikube

В случае, если вы используете Minikube для работы с контейнерами, которые затем пойдут в продакшен, то важно учесть некоторые моменты. Minikube запускает одноузловой кластер Kubernetes внутри виртуальной машины (например, Virtualbox) в локальной среде разработки.

Результатом установки Minikube является локальный кластер Kubernetes, который вы можете использовать вместе с клиентом kubectl. Minikube поддерживает наиболее типичные функции Kubernetes, такие как DNS, Dashboards, CNI, NodePorts, Config Maps и т.д. Кроме того, как уже упоминалось, в Minikube можно использовать несколько гипервизоров, таких как Virtualbox, KVM и т. д. Большой Kubernetes это серьезная система оркестрации, предназначенный для управления крупными контейнерными инфраструктурами со множеством библиотек. Minikube вряд ли вам позволит заменить Kubernetes в продакшене, так как он не обладает таким богатым набором инструментов как k8s. Поэтому рекомендуется использовать Minikube для локальной разработки и настройки контейнеров для последующей передачи в кластер Kubernetes.

Заключение

В этой статье мы рассмотрели процесс установки и базовой настройки Minikube для Windows и Linux. В следующих статьях мы углубимся в тему микросервисов и также рассмотрим настройку Volumes, Storages и StatefulSet.

Также хочу порекомендовать бесплатный вебинар, где мы комплексно рассмотрим основные векторы по обеспечению безопасности kubernetes кластера и подробно остановимся на каждом из них. Затронем тему безопасности docker-образов, безопасность в рантайме, network и application security.

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


  1. web3_Venture
    03.02.2023 17:18

    Что насчет других вариантов microk8s  k0s, kind, k3s и Minikube etc ?


    1. shurup
      03.02.2023 18:12
      +1

      Здесь было их сравнение.


  1. inkvizitor68sl
    03.02.2023 17:44

    Minikube запускает одноузловой кластер

    Эм? minikube запускает какой угодно кластер, но внутри одной ОС (хотя и в этом я уже не уверен, может доделали).