Если вы на пути изучения Kubernetes, начните с лабораторной среды. Использование лабораторной среды позволит вам правильно развернуть и получить рабочую среду Kubernetes и это является одним из лучших способов проведения экспериментов и обучения.
В этой статье рассмотрим установку Minikube на Windows Hyper-V Server 2019, его конфигурацию и работу с приложениями и их развертываниями.
Что такое Minikube?
Minikube это простой и быстрый способ создать локальный кластер Kubernetes. Он работает на MacOs, Lunix и Windows системах. Также это отличный вариант для разработчиков и тех, кто еще плохо знаком или только начинает изучать Kubernetes.
Некоторые возможности и особенности решения Minikube:
- Кроссплатформенность, т.е. поддерживает все основные ОС: Linux, macOS и Windows;
- В зависимости от возможностей, можно развернуть в виртуальной машине, контейнере или на железо;
- Поддержка Docker;
- Наличие драйверов для VmWare, VirtualBox, Docker, KVM, Hyper-V и др.;
- Поддержка последних версий Kubernetes;
- Docker API для быстрого развертывания образов;
- Использование дополнений (addons);
- Minikube обладает интегрированной поддержкой Dashboard Kubernetes
Установка Minikube
Для работы в Minikube на Hyper-v нужно выполнить следующие действия:
- Проверить соответствие минимальным требованиям
- Предварительно настроить Hyper-v server
- Выбрать диспетчер пакетов для установки Minikube
- Установить Minikube
- Запустить кластер Kubernetes
- Подключиться к кластеру, посмотреть дашборд
1. Проверка соответствия минимальным требованиям:
Для развертывания и использования Minikube в соответствии с его документацией должны удовлетворяться следующие требования:
- 2 GB свободной оперативной памяти
- 2 или более CPU
- От 20 GB или более свободного дискового пространства
- Наличие интернет
- Docker container или виртуальная машина, например, VirtualBox или Hyper-V
2. Настройка Hyper-v server
Какой-то специальной настройки Hyper-v не требует, должны выполняться стандартные требования для работы Hyper-v: 64-разрядный процессор с преобразованием адресов второго уровня (SLAT), достаточный объем оперативной памяти и быстрые диски. Поддержка виртуализации в BIOS/UEFI (у Intel - Intel VT, у AMD - AMD-V). Чтобы виртуальные системы имели доступ в интернет, нужно заранее создать внешний виртуальный коммутатор.
Вначале посмотрим доступные сетевые адаптеры:
Get-NetAdapter
Найденное имя адаптера добавим в команду ниже.
Создать новый внешний сетевой адаптер можно командой PowerShell
New-VMSwitch -name ExternalSwitch -NetAdapterName "Ethernet 2" -AllowManagementOS $true
В противном случае при первом запуске Minikube покажет ошибку:
! StartHost failed, but will try again: creating host: create: precreate: no External vswitch nor Default Switch found. A valid vswitch must be available for this command to run.
Попросит выполнить minikube delete
и отправит читать документацию: https://docs.docker.com/machine/drivers/hyper-v/
3. Диспетчер пакетов
В этой статье используется Windows Server 2019, и мы будем использовать Chocolatey, так как другой диспетчер пакетов - Windows Package Manager поддерживает только Windows 10.
Из PowerShell выполним команды:
iwr https://chocolatey.org/install.ps1 -outfile C:install.ps1 c:install.ps1
4. Инсталляция Minikube
После установки Chocolatey нужно выполнить команду:
choco install minikube
5. Запуск
Если после выполнения команды minikube start
он не запускается, значит нужно установить соответствующие драйвера и провайдер
Для запуска с привилегированными правами, выполним:
runas /noprofile /user:администратор powershell
В нашем случае для Hyper-V выполняем:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Проверим установку компонентов:
Get-WindowsFeature –Name –hyper-v
Выяснилось, что актуальная версия Minikube не работает c Hyper-v, понизим версию командой
choco install minikube --version 1.6.2 --allow-downgrade
затем удалим minikube delete
и снова запустим
minikube start
6. Подключение
Проверить, что VM запущена, поможет команда PowerShell
Get-vm
Просмотреть, что окружение запущено можно командой kubectl get po –A
Подготовим хостовую систему для работы браузеров, установив дополнительные компоненты:
Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0
И перезагрузим сервер, затем выполним команду minikube dashboard
На сервер предварительно скопирован браузер Firefox, в нем откроем ссылку и убедимся в работоспособности.