Что именно вызывает остановку разворачивания ROOK в MINIKUBE?

Добрый день! Пожалуйста, подскажите, как мне локально запустить ROOK в minikube для экспериментов, так как я не являюсь администратором или девопсом, и мои знания в области Kubernetes оставляют желать лучшего. Моя цель — развернуть локальное хранилище S3 для тестирования взаимодействия с его API. 

Я работаю на Ubuntu в VirtualBox, и вот параметры виртуальной машины: 12 ГБ оперативной памяти, 4 ядра по 2,8 GHz, 35 ГБ дискового пространства, а также включена виртуализация. Настройки дисков по умолчанию я не изменял. Следуя инструкциям с официальных сайтов, я установил Docker, kubectl, ceph-common, KVM и minikube, а также клонировал репозиторий Rook. Чтобы избежать проблем с переполнением служебного раздела, я создал символьную ссылку для директории /var/lib/docker. 

Затем я запускаю кластер minikube с помощью команды:  
`minikube start --disk-size=25g --extra-disks=3 --driver=kvm2` 

После этого, согласно примерам от разработчиков Rook, выполняю команду:  
`kubectl create -f crds.yaml -f common.yaml -f operator.yaml` 

Обычно под Rook Ceph Operator поднимается за 4-5 минут. Затем я выполняю:  
`kubectl create -f cluster-test.yaml` 

Однако в результате максимум у двух подов поднимается только 1 или 2 контейнера. Прикладываю скриншот для наглядности.
  • 13 февраля 2025 г. 10:54
Ответы на вопрос 2
Разворачивание Rook в Minikube может сталкиваться с различными проблемами, и остановка процесса обычно связана с несколькими распространенными факторами. Вот несколько шагов и идей, которые могут помочь вам разобраться с остановкой развертывания Rook:

### 1. Проверка статуса подов

Сначала проверьте статус подов и получите логи подов, чтобы понять, что именно происходит:

```bash
kubectl get pods -n rook-ceph
kubectl logs <имя-пода> -n rook-ceph
```

Замените `<имя-пода>` на имя любого пода, который вас интересует. Логи могут помочь вам понять, что именно идет не так.

### 2. Компиляция YAML-манифестов

Убедитесь, что файлы `crds.yaml`, `common.yaml`, и `operator.yaml` из репозитория Rook соответствуют вашей версии Kubernetes и Rook. Также убедитесь, что в `cluster-test.yaml` вы правильно указали конфигурацию.

### 3. Ресурсы

Хотя у вас достаточно ресурсов (12 ГБ ОП и 4 ядра), Rook требует некоторых дополнительных ресурсов, особенно при развертывании Ceph. Убедитесь, что в вашей конфигурации выделено достаточно ресурсов для подов Ceph.

### 4. Minikube настройки

Minikube может иметь свои ограничения. Проверьте, не используете ли вы команду `--extra-disks` неправильно. Вместо этого попробуйте использовать стандартный параметр `--disk-size`, чтобы обеспечить достаточное пространство:

```bash
minikube start --disk-size=25g --driver=kvm2
```

### 5. Сетевые настройки

Убедитесь, что у вас правильно настроены сетевые правила и что Minikube может корректно связываться с нужными ресурсами. Иногда правила безопасности (например, Network Policies) могут блокировать соединения.

### 6. Проверка ресурсов узлов

Проверьте состояние узлов и их ресурсы:

```bash
kubectl get nodes
kubectl describe node <имя-узла>
```

Убедитесь, что на узлах достаточно ресурсов и они не имеют статуса `NotReady`.

### 7. Увеличение количества реплик

Если вы используете конфигурацию с несколькими репликами, попробуйте временно снизить количество реплик, чтобы убедиться, что проблема не в нехватке ресурсов.

### 8. Версия Kubernetes

Убедитесь, что вы используете совместимую версию Kubernetes с версией Rook. Иногда проблема может возникать из-за несовместимости версий.

### Заключение

Если после выполнения всех этих шагов проблема не решается, попробуйте поделиться конкретными логами ошибок и состоянием подов, чтобы можно было более точно диагностировать проблему.
ImagePullBackoff какбы намекает, что по одному образу в 2 подах не скачалось и дальше ничего не поднялось. 
P.S. До ныряния в логи надо сначала читать kubectl get events .
Похожие вопросы