DevOps

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

 

Minikube — это инструмент, который позволяет запускать локальный кластер Kubernetes на вашем компьютере. Он предназначен для разработки, тестирования и обучения, предоставляя возможность работать с Kubernetes без необходимости развертывания полноценного кластера в облаке или на физических серверах. Minikube поддерживает различные гипервизоры (VirtualBox, Docker, HyperKit и др.), что делает его универсальным решением для локальной разработки.

Minikube vs k3s

Minikube

  • Цель: Локальная разработка и тестирование Kubernetes.
  • Архитектура: Использует виртуальную машину или контейнер для запуска Kubernetes.
  • Ресурсы: Требует больше ресурсов, чем k3s.
  • Использование: Идеально для разработчиков, тестирующих приложения в условиях, близких к продакшену.

k3s

  • Цель: Легковесный Kubernetes для edge-устройств и IoT.
  • Архитектура: Упрощенная архитектура, удалены некоторые компоненты.
  • Ресурсы: Требует меньше ресурсов, чем Minikube.
  • Использование: Подходит для устройств с ограниченными мощностями.

Установка Minikube на MacOS ARM

  1. Установите Homebrew:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Установите Minikube:
    brew install minikube
  3. Установите Docker:
    brew install --cask docker
  4. Запустите Docker: Откройте Docker через приложение и завершите настройку.
  5. Запустите Minikube:
    minikube start --driver=docker
  6. Проверьте статус 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 — это отличный выбор для локальной разработки и тестирования.