Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

MinIO Operator

MinIO Operator — это аддон для Kubernetes, который упрощает развертывание и управление S3-совместимыми хранилищами на базе MinIO. Он позволяет создавать распределенные кластеры хранения через CRD, управлять пользователями, бакетами и конфигурацией через Kubernetes-манифесты.

Установка в ПУ

Для работы аддона необходимо, чтобы в кластере был установлен аддон CSI-driver.

Для установки MinIO Operator, в панели управления кластером, перейдите во вкладку «Дополнения». Найдите «MinIO Operator» в списке и нажмите на него.

Scr 20250903 Kpxi

В открывшемся окне можно при необходимости изменить параметры установки. Описание параметров доступно в официальной документации. Воспользоваться аддоном можно не меняя настроек по умолчанию.

Для установки аддона нажмите на кнопку «Установить».

Scr 20250828 Lape

Дождитесь завершения установки. Для проверки, что установка завершена корректно, выполните команду:

    

У запущенных подов должен быть статус Running.

Пример использования

В качестве примера развернем кластер MinIO из одного узла. Данные будут храниться на сетевом диске, а доступ к кластеру будет организован через Nginx Ingress с настроенным HTTPS.

В продакшн-среде рекомендуется использовать не менее 4 узлов для обеспечения отказоустойчивость.

Предварительные требования

В кластере должны быть установлены аддоны:

Все аддоны установлены с параметрами по умолчанию.

Для доступа к консоли и S3 API мы будем использовать два поддомена:

  • minio-console.timeweb-example.cloud — для доступа к панели управления;

  • s3.timeweb-example.cloud — для доступа к S3 API.

Перейдем к созданию кластера. Сначала опишем создание неймспейса в файле namespace.yaml:

    

Теперь опишем тенант в файле tenant.yaml:

    

Здесь:

pools — определяет пул серверов (узлов) для MinIO:

  • servers: 1 — количество серверов в пуле.

  • volumesPerServer: 1 — количество томов, подключаемых к каждому серверу;

  • volumeClaimTemplate — шаблон для создания PVC. Указываем:

    • accessModes: ReadWriteOnce — том может быть смонтирован только одним подом на одном узле;

    • storage: 2Gi — размер тома;

    • storageClassName: nvme.network-drives.csi.timeweb.cloud — класс хранилища, соответствующий NVMe-дискам, предоставляемым CSI-драйвером.

Обязательный параметр spec.configuration.name, в котором мы передаем имя секрета. Параметр используется для создания root-пользователя.

В секции spec.users указывается список пользователей, для каждого из которых должен быть создан секрет с access и secret key. Имя секрета передается в поле name.

Опишем секрет storage-configuration.yaml:

    

И storage-user.yaml:

    

Обратите внимание, что CONSOLE_ACCESS_KEY и CONSOLE_SECRET_KEY передаются закодированные в base64. Например:

    

Применим все манифесты:

    

Проверьте, что все манифесты успешно применились и все сервисы корректно запустились:

    

Вы должны будете увидеть примерно такой вывод:

    

Теперь перейдем к настройке Nginx Ingress. Создадим файл ingress.yaml:

    

Не забудьте заменить домены s3.timeweb-example.cloud и minio-console.timeweb-example.cloud.

Для выпуска сертификатов создадим cluster-issuer.yaml:

    

Поменяйте example@timeweb.cloud на вашу почту — она будет использоваться Let's Encrypt.

Опишем балансировщик нагрузки в файле lb.yaml:

    

Примените все манифесты:

    

Дождитесь завершения создания балансировщика нагрузки в панели управления и укажите для доменов в качестве A-записи IP-адрес балансировщика.

Проверьте, что ingress запущен, а сертификаты выпущены:

    

Теперь можно перейти к панели управления MinIO. Перейдите по домену MinIO-консоли, в нашем примере — это minio-console.timeweb-example.cloud. Вы увидите страницу авторизации.

Scr 20250903 Jwnm

Для авторизации используйте данные, указанные в секретах storage-user.yaml или storage-configuration.yaml, например, логин console и пароль console123.

Перейдите в раздел «Buckets», чтобы создать бакет.

Scr 20250903 Jylx

Перейдите в раздел «Access Keys», чтобы создать данные для подключения — например, с помощью S3cmd. Простой конфиг для подключения будет выглядеть так:

    
Была ли статья полезна?
Ваша оценка очень важна