Minikube: Полное руководство с аддонами и сравнением с k3s

Minikube — это инструмент, который позволяет запускать локальный кластер Kubernetes на вашем компьютере. Он предназначен для разработки, тестирования и обучения, предоставляя возможность работать с Kubernetes без необходимости развертывания полноценного кластера в облаке или на физических серверах. Minikube поддерживает различные гипервизоры (VirtualBox, Docker, HyperKit и др.), что делает его универсальным решением для локальной разработки.
Minikube vs k3s
Minikube
- Цель: Локальная разработка и тестирование Kubernetes.
- Архитектура: Использует виртуальную машину или контейнер для запуска Kubernetes.
- Ресурсы: Требует больше ресурсов, чем k3s.
- Использование: Идеально для разработчиков, тестирующих приложения в условиях, близких к продакшену.
k3s
- Цель: Легковесный Kubernetes для edge-устройств и IoT.
- Архитектура: Упрощенная архитектура, удалены некоторые компоненты.
- Ресурсы: Требует меньше ресурсов, чем Minikube.
- Использование: Подходит для устройств с ограниченными мощностями.
Установка Minikube на MacOS ARM
- Установите Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Установите Minikube:
brew install minikube
- Установите Docker:
brew install --cask docker
- Запустите Docker: Откройте Docker через приложение и завершите настройку.
- Запустите Minikube:
minikube start --driver=docker
- Проверьте статус Minikube:
minikube status
Основные команды Minikube
- Запуск кластера:
minikube start --driver=docker
- Остановка кластера:
minikube stop
- Удаление кластера:
minikube delete
- Проверка статуса:
minikube status
- Получение IP-адреса кластера:
minikube ip
- Открытие Dashboard:
minikube dashboard
- Подключение к ноде:
minikube ssh
- Создание туннеля для доступа к сервисам:
minikube tunnel
Аддоны Minikube
Minikube поддерживает множество аддонов, которые расширяют функциональность кластера. Вот полный список с описанием и примерами:

1. Ambassador
API-шлюз для управления входящим трафиком.
minikube addons enable ambassador
2. AMD GPU Device Plugin
Поддержка GPU AMD для Kubernetes.
minikube addons enable amd-gpu-device-plugin
3. Auto-pause
Автоматическая приостановка кластера при простое.
minikube addons enable auto-pause
4. Cloud Spanner
Интеграция с Google Cloud Spanner.
minikube addons enable cloud-spanner
5. CSI Hostpath Driver
Драйвер для работы с локальными томами.
minikube addons enable csi-hostpath-driver
6. Dashboard
Веб-интерфейс для управления Kubernetes.
minikube addons enable dashboard
7. Default StorageClass
Автоматическое создание StorageClass.
minikube addons enable default-storageclass
8. EFK (Elasticsearch, Fluentd, Kibana)
Сбор и анализ логов.
minikube addons enable efk
9. FreshPod
Автоматический перезапуск Pod при изменении конфигурации.
minikube addons enable freshpod
10. GCP Auth
Интеграция с Google Cloud Platform для аутентификации.
minikube addons enable gcp-auth
11. gVisor
Песочница для изоляции контейнеров.
minikube addons enable gvisor
12. Headlamp
Современный веб-интерфейс для управления Kubernetes.
minikube addons enable headlamp
13. InAccel
Ускорение вычислений с использованием FPGA.
minikube addons enable inaccel
14. Ingress
Управление входящим трафиком с помощью Ingress-контроллера.
minikube addons enable ingress
15. Ingress DNS
Автоматическое создание DNS-записей для Ingress.
minikube addons enable ingress-dns
16. Inspektor Gadget
Инструмент для отладки и мониторинга Kubernetes.
minikube addons enable inspektor-gadget
17. Istio
Сервисная сетка для Kubernetes.
minikube addons enable istio
18. Istio Provisioner
Автоматическая установка Istio.
minikube addons enable istio-provisioner
19. Kong
API-шлюз для управления трафиком.
minikube addons enable kong
20. Kubeflow
Платформа для машинного обучения.
minikube addons enable kubeflow
21. KubeVirt
Запуск виртуальных машин в Kubernetes.
minikube addons enable kubevirt
22. Logviewer
Просмотр логов в кластере.
minikube addons enable logviewer
23. MetalLB
Реализация LoadBalancer в локальном кластере.
minikube addons enable metallb
24. Metrics Server
Сбор метрик ресурсов в кластере.
minikube addons enable metrics-server
25. NVIDIA Device Plugin
Поддержка GPU NVIDIA.
minikube addons enable nvidia-device-plugin
26. NVIDIA Driver Installer
Автоматическая установка драйверов NVIDIA.
minikube addons enable nvidia-driver-installer
27. NVIDIA GPU Device Plugin
Поддержка GPU NVIDIA.
minikube addons enable nvidia-gpu-device-plugin
28. OLM (Operator Lifecycle Manager)
Управление операторами в Kubernetes.
minikube addons enable olm
29. Pod Security Policy
Управление политиками безопасности Pod.
minikube addons enable pod-security-policy
30. Portainer
Веб-интерфейс для управления контейнерами.
minikube addons enable portainer
31. Registry
Локальный Docker-реестр.
minikube addons enable registry
32. Registry Aliases
Псевдонимы для локального реестра.
minikube addons enable registry-aliases
33. Registry Creds
Управление учетными данными Docker-реестра.
minikube addons enable registry-creds
34. Storage Provisioner
Динамическое выделение томов.
minikube addons enable storage-provisioner
35. Storage Provisioner Gluster
Поддержка GlusterFS.
minikube addons enable storage-provisioner-gluster
36. Storage Provisioner Rancher
Поддержка Rancher Local Path Provisioner.
minikube addons enable storage-provisioner-rancher
37. Volcano
Управление пакетными задачами и планирование.
minikube addons enable volcano
38. Volume Snapshots
Создание снапшотов томов.
minikube addons enable volumesnapshots
39. YAKD (Yet Another Kubernetes Dashboard)
Альтернативный веб-интерфейс для управления Kubernetes.
minikube addons enable yakd
Заключение
Minikube — это мощный инструмент для локальной разработки и тестирования Kubernetes. Он предоставляет полноценный Kubernetes-кластер, который можно легко развернуть на локальной машине. В сравнении с k3s, Minikube требует больше ресурсов, но предоставляет более полную среду для тестирования.
Установка Minikube на MacOS ARM проста и выполняется с помощью Homebrew. Основные команды Minikube позволяют управлять кластером, включать аддоны и получать доступ к сервисам. Если вы разрабатываете приложения для Kubernetes, Minikube — это отличный выбор для локальной разработки и тестирования.