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 ambassador2. AMD GPU Device Plugin
Поддержка GPU AMD для Kubernetes.
minikube addons enable amd-gpu-device-plugin3. Auto-pause
Автоматическая приостановка кластера при простое.
minikube addons enable auto-pause4. Cloud Spanner
Интеграция с Google Cloud Spanner.
minikube addons enable cloud-spanner5. CSI Hostpath Driver
Драйвер для работы с локальными томами.
minikube addons enable csi-hostpath-driver6. Dashboard
Веб-интерфейс для управления Kubernetes.
minikube addons enable dashboard7. Default StorageClass
Автоматическое создание StorageClass.
minikube addons enable default-storageclass8. EFK (Elasticsearch, Fluentd, Kibana)
Сбор и анализ логов.
minikube addons enable efk9. FreshPod
Автоматический перезапуск Pod при изменении конфигурации.
minikube addons enable freshpod10. GCP Auth
Интеграция с Google Cloud Platform для аутентификации.
minikube addons enable gcp-auth11. gVisor
Песочница для изоляции контейнеров.
minikube addons enable gvisor12. Headlamp
Современный веб-интерфейс для управления Kubernetes.
minikube addons enable headlamp13. InAccel
Ускорение вычислений с использованием FPGA.
minikube addons enable inaccel14. Ingress
Управление входящим трафиком с помощью Ingress-контроллера.
minikube addons enable ingress15. Ingress DNS
Автоматическое создание DNS-записей для Ingress.
minikube addons enable ingress-dns16. Inspektor Gadget
Инструмент для отладки и мониторинга Kubernetes.
minikube addons enable inspektor-gadget17. Istio
Сервисная сетка для Kubernetes.
minikube addons enable istio18. Istio Provisioner
Автоматическая установка Istio.
minikube addons enable istio-provisioner19. Kong
API-шлюз для управления трафиком.
minikube addons enable kong20. Kubeflow
Платформа для машинного обучения.
minikube addons enable kubeflow21. KubeVirt
Запуск виртуальных машин в Kubernetes.
minikube addons enable kubevirt22. Logviewer
Просмотр логов в кластере.
minikube addons enable logviewer23. MetalLB
Реализация LoadBalancer в локальном кластере.
minikube addons enable metallb24. Metrics Server
Сбор метрик ресурсов в кластере.
minikube addons enable metrics-server25. NVIDIA Device Plugin
Поддержка GPU NVIDIA.
minikube addons enable nvidia-device-plugin26. NVIDIA Driver Installer
Автоматическая установка драйверов NVIDIA.
minikube addons enable nvidia-driver-installer27. NVIDIA GPU Device Plugin
Поддержка GPU NVIDIA.
minikube addons enable nvidia-gpu-device-plugin28. OLM (Operator Lifecycle Manager)
Управление операторами в Kubernetes.
minikube addons enable olm29. Pod Security Policy
Управление политиками безопасности Pod.
minikube addons enable pod-security-policy30. Portainer
Веб-интерфейс для управления контейнерами.
minikube addons enable portainer31. Registry
Локальный Docker-реестр.
minikube addons enable registry32. Registry Aliases
Псевдонимы для локального реестра.
minikube addons enable registry-aliases33. Registry Creds
Управление учетными данными Docker-реестра.
minikube addons enable registry-creds34. Storage Provisioner
Динамическое выделение томов.
minikube addons enable storage-provisioner35. Storage Provisioner Gluster
Поддержка GlusterFS.
minikube addons enable storage-provisioner-gluster36. Storage Provisioner Rancher
Поддержка Rancher Local Path Provisioner.
minikube addons enable storage-provisioner-rancher37. Volcano
Управление пакетными задачами и планирование.
minikube addons enable volcano38. Volume Snapshots
Создание снапшотов томов.
minikube addons enable volumesnapshots39. YAKD (Yet Another Kubernetes Dashboard)
Альтернативный веб-интерфейс для управления Kubernetes.
minikube addons enable yakdЗаключение
Minikube — это мощный инструмент для локальной разработки и тестирования Kubernetes. Он предоставляет полноценный Kubernetes-кластер, который можно легко развернуть на локальной машине. В сравнении с k3s, Minikube требует больше ресурсов, но предоставляет более полную среду для тестирования.
Установка Minikube на MacOS ARM проста и выполняется с помощью Homebrew. Основные команды Minikube позволяют управлять кластером, включать аддоны и получать доступ к сервисам. Если вы разрабатываете приложения для Kubernetes, Minikube — это отличный выбор для локальной разработки и тестирования.