Установка Kubernetes (Minikube) на Ubuntu
Minikube — это инструмент, который позволяет запускать одноузловой кластер Kubernetes локально на вашем компьютере. Это идеальное решение для разработки, тестирования манифестов и изучения Kubernetes без необходимости в полноценном облачном или физическом кластере.
В этом руководстве мы установим Minikube с драйвером Docker на Ubuntu 22.04/24.04. Этот драйвер является наиболее стабильным и производительным вариантом для Linux.
Подготовка системы
Перед установкой убедитесь, что ваша система соответствует минимальным требованиям:
- 2+ ГБ оперативной памяти (рекомендуется 4 ГБ)
- До 20 ГБ свободного дискового пространства
- Доступ в интернет для загрузки образов
1. Обновление системы и установка базовых пакетов
Откройте терминал и выполните:
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
2. Установка Docker (драйвер для Minikube)
Minikube использует драйверы для создания виртуальной машины или контейнера. Драйвер docker работает поверх уже установленного Docker.
# Добавление официального GPG-ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Добавление текущего пользователя в группу docker (чтобы не использовать sudo)
sudo usermod -aG docker $USER
newgrp docker # Применяем изменения группы без перезагрузки
Проверьте установку Docker:
docker --version
docker run hello-world # Должен вывести приветственное сообщение
3. Установка kubectl
kubectl — это командная строка для управления Kubernetes-кластерами.
# Скачивание последней стабильной версии
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# Установка бинарника
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# Проверка установки
kubectl version --client
4. Установка Minikube
# Скачивание последней версии Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# Установка
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# Проверка
minikube version
Запуск кластера Kubernetes
Теперь, когда все зависимости установлены, можно запустить кластер.
# Запуск Minikube с явным указанием драйвера Docker
minikube start --driver=docker
Что происходит при выполнении команды:
- Minikube загружает образ
minikube. - Создает и запускает контейнер (или виртуальную машину, в зависимости от драйвера).
- Настраивает внутри контейнера
kubelet,apiserverи другие компоненты Kubernetes. - Копирует конфигурацию
kubeconfigв~/.kube/configна вашей хостовой машине, чтобыkubectlмог управлять кластером.
Полезные опции для minikube start:
--memory— выделение RAM (например,--memory=4096).--cpus— количество ядер CPU (например,--cpus=2).--image-mirror— зеркало для образов (полезно в РФ).
Проверка статуса кластера
minikube status
Вывод должен содержать host: Running, kubelet: Running, apiserver: Running.
Также проверьте, что kubectl видит кластер:
kubectl cluster-info
kubectl get nodes # Должен показать один узел с статусом Ready
Основные команды управления Minikube
| Команда | Описание |
|---|---|
minikube stop | Остановить кластер (контейнер/ВМ останавливается, данные сохраняются). |
minikube start | Запустить остановленный кластер. |
minikube delete | Удалить кластер и все его данные. |
minikube dashboard | Запустить веб-интерфейс Kubernetes Dashboard (откроется в браузере). |
minikube ssh | Войти в консоль узла Minikube. |
minikube kubectl -- <command> | Выполнить команду kubectl внутри кластера (если kubectl не настроен глобально). |
Дополнительная настройка (опционально)
Включение встроенного реестра Docker
Minikube может запустить локальный Docker-реестр внутри кластера, чтобы не выгружать образы в Docker Hub.
minikube addons enable registry
После этого образы можно тегать как localhost:5000/<image-name> и использовать в манифестах.
Установка Ingress Controller (для маршрутизации HTTP)
minikube addons enable ingress
Устранение типичных проблем
- Ошибка драйвера:
minikube startпадает с ошибкой, связанной с драйвером. Решение: Убедитесь, что служба Docker запущена (sudo systemctl status docker). Явно укажите драйвер:minikube start --driver=docker. - Недостаточно ресурсов: Minikube не стартует из-за нехватки памяти/CPU. Решение: Увеличьте лимиты через
--memoryи--cpusили освободите ресурсы на хостовой машине. - Конфликт портов: Порт 8443 (API-сервер) или 2379 (etcd) уже занят. Решение: Остановите другие сервисы, использующие эти порты, или запустите Minikube с
--kubernetes-version=v1.28.0(иногда помогает). kubectlне видит кластер: Послеminikube startkubectl get nodesвыдает ошибку. Решение: Проверьте переменнуюKUBECONFIG. Minikube автоматически устанавливает конфиг в~/.kube/config. Выполнитеexport KUBECONFIG=~/.kube/configилиminikube update-context.
Заключение
Вы успешно установили и запустили локальный кластер Kubernetes с помощью Minikube на Ubuntu. Теперь вы можете:
- Развертывать тестовые приложения (
kubectl apply -f deployment.yaml). - Пробовать
kubectlкоманды (get,describe,logs,exec). - Изучать управление конфигурациями, секретами, PersistentVolume.
Для очистки системы после экспериментов выполните minikube delete. Чтобы удалить все компоненты (Minikube, kubectl, Docker) — используйте менеджер пакетов apt.
Следующие шаги: Изучите официальные туториалы Kubernetes или попробуйте развернуть простое приложение, например, Nginx.