Установка

Alauda Container Platform (ACP) Object Storage с MinIO — это сервис объектного хранения, основанный на протоколе с открытым исходным кодом по лицензии Apache License v2.0. Он совместим с интерфейсом облачного хранилища Amazon S3 и идеально подходит для хранения больших объемов неструктурированных данных, таких как изображения, видео, файлы журналов, резервные копии и образы контейнеров/виртуальных машин. Объектный файл может иметь любой размер — от нескольких килобайт до максимума в 5 терабайт.

Содержание

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

MinIO строится на базовом хранилище, поэтому убедитесь, что в текущем кластере создан класс хранилища. Рекомендуется использовать TopoLVM.

Развертывание оператора

  1. В левой навигационной панели нажмите Storage > Object Storage.

  2. Нажмите Configure Now.

  3. На странице мастера Deploy MinIO Operator нажмите в правом нижнем углу Deploy Operator.

    • Если страница автоматически перейдет к следующему шагу, это означает успешное развертывание оператора.

    • Если развертывание не удалось, следуйте подсказкам интерфейса для Clean Up Deployed Information and Retry и повторно разверните оператора.

Создание кластера

  1. На странице мастера Create Cluster настройте базовую информацию.

    ПараметрОписание
    Access KeyИдентификатор ключа доступа. Уникальный идентификатор, связанный с приватным ключом доступа; используется вместе с Access Key ID для шифрования и подписи запросов.
    Secret KeyПриватный ключ доступа, используемый совместно с Access Key ID для шифрования и подписи запросов, идентификации отправителя и предотвращения подделки запросов.
  2. В разделе Resource Configuration настройте характеристики согласно следующим инструкциям.

    ПараметрОписание
    Small scaleПодходит для обработки до 100 000 объектов, поддерживает не более 50 одновременных подключений в тестовых средах или сценариях резервного копирования. Запрос и лимит ресурсов CPU по умолчанию установлены на 2 ядра, запрос и лимит памяти — 4 Gi.
    Medium scaleПредназначен для корпоративных приложений, требующих хранения 1 000 000 объектов и способных обрабатывать до 200 одновременных запросов. Запрос и лимит CPU по умолчанию — 4 ядра, запрос и лимит памяти — 8 Gi.
    Large scaleПредназначен для групп пользователей с потребностями хранения 10 000 000 объектов и обработки до 500 одновременных запросов, подходит для сценариев с высокой нагрузкой. Запрос и лимит CPU по умолчанию — 8 ядер, запрос и лимит памяти — 16 Gi.
    CustomПредлагает гибкие параметры настройки для профессиональных пользователей с особыми требованиями, обеспечивая точное соответствие масштаба сервиса и требований к производительности. Примечание: при настройке пользовательских характеристик необходимо убедиться, что:
    • Запрос CPU больше 100 м.
    • Запрос памяти не менее 2 Gi.
    • Лимиты CPU и памяти не меньше запросов. |
  3. В разделе Storage Pool настройте соответствующую информацию согласно следующим инструкциям.

    ПараметрОписание
    Instance NumberУвеличение количества экземпляров в кластере MinIO значительно повышает производительность и надежность системы, обеспечивая высокую доступность данных. Однако слишком большое количество экземпляров может привести к следующим проблемам:
    • Повышенное потребление ресурсов.
    • Если на одном узле размещено несколько экземпляров, сбой узла может привести к одновременному отключению нескольких экземпляров, что снижает общую надежность кластера. Примечание:
    • Минимальное количество экземпляров — 4.
    • Если количество экземпляров больше 16, введённое значение должно быть кратно 8.
    • При добавлении дополнительных пулов хранения количество экземпляров должно быть не меньше, чем в первом пуле хранения. | | Single Storage Volume | Вместимость одного тома PVC хранения. Каждый сервис хранения управляет одним томом. После ввода вместимости одного тома платформа автоматически рассчитает емкость пула хранения и другую информацию, которую можно просмотреть в разделе Storage Pool Overview. | | Underlying Storage | Базовое хранилище, используемое кластером MinIO. Пожалуйста, выберите класс хранилища, созданный в текущем кластере. Рекомендуется TopoLVM. | | Storage Nodes | Выберите узлы хранения, необходимые для кластера MinIO. Рекомендуется использовать от 4 до 16 узлов хранения. Платформа развернет по одному сервису хранения на каждом выбранном узле. | | Storage Pool Overview | Для конкретных параметров и формул расчета обратитесь к Storage Pool Overview. |
  4. В разделе Access Configuration настройте соответствующую информацию согласно следующим инструкциям.

    ПараметрОписание
    External AccessПри включении поддерживается доступ к MinIO из других кластеров; при отключении доступ возможен только внутри кластера.
    ProtocolПоддерживает HTTP и HTTPS; при выборе HTTPS необходимо ввести Domain и импортировать Public Key и Private Key сертификата доменного имени.
    Note:
    • При протоколе доступа HTTP поды внутри кластера могут обращаться к MinIO напрямую по полученному IP или доменному имени без настройки сопоставления IP и домена; узлы внутри кластера могут обращаться к MinIO напрямую по IP, а для доступа по доменному имени требуется ручная настройка сопоставления IP и домена; внешний доступ возможен напрямую по IP.
    • При протоколе HTTPS доступ к MinIO по IP невозможен как внутри, так и вне кластера. Для нормального доступа по доменному имени требуется вручную настроить сопоставление между полученным IP и введённым доменом при создании кластера. | | Access Method |
    • NodePort: Открывает фиксированный порт на каждом хосте вычислительного узла для внешнего доступа к сервису. При настройке доступа по доменному имени рекомендуется использовать VIP для разрешения домена, чтобы обеспечить высокую доступность.
    • LoadBalancer: Использует балансировщик нагрузки для перенаправления трафика на бэкенд-сервисы. Перед использованием убедитесь, что в текущем кластере развернут плагин MetalLB и в пуле внешних адресов есть доступные IP. |
  5. Нажмите в правом нижнем углу Create Cluster.

    • Если страница автоматически перейдет к Cluster Details, это означает успешное создание кластера.

    • Если кластер остается в процессе создания, можно нажать Cancel. После отмены развернутые данные кластера будут очищены, и вы сможете вернуться на страницу создания кластера для повторного создания.

Создание бакета

Войдите на управляющий узел кластера и используйте команду для создания бакета.

Порядок действий

  1. На странице сведений о кластере перейдите на вкладку Access Method, чтобы просмотреть адрес доступа MinIO, или выполните следующую команду для запроса.

    kubectl get svc -n <tenant ns> minio | grep -w minio | awk '{print $3}'

    Примечание:

    • Замените tenant ns на фактическое пространство имён minio-system.
    • Пример: kubectl get svc -n minio-system minio | grep -w minio | awk '{print $3}'
  2. Получите команду mc.

    wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /bin/mc && chmod a+x /bin/mc
  3. Настройте псевдоним кластера MinIO.

    • IPv4:

      mc --insecure alias set <minio cluster alias> http://<minio endpoint>:<port> <accessKey> <secretKey>
    • IPv6:

      mc --insecure alias set <minio cluster alias> http://[<minio endpoint>]:<port> <accessKey> <secretKey>
    • Доменное имя:

      mc --insecure alias set <minio cluster alias> http://<domain name>:<port> <accessKey> <secretKey>
      mc --insecure alias set <minio cluster alias> https://<domain name>:<port> <accessKey> <secretKey>

    Примечание:

    • Введите IP-адрес, полученный на шаге 1, для minio endpoint.
    • Введите Access Key и Secret Key, созданные при создании кластера, для accessKey и secretKey.
    • Примеры настройки:
      • IPv4: mc --insecure alias set myminio http://12.4.121.250:80 07Apples@ 07Apples@
      • IPv6: mc --insecure alias set myminio http://[2004::192:168:143:117]:80 07Apples@ 07Apples@
      • Доменное имя: mc --insecure alias set myminio http://test.minio.alauda:80 07Apples@ 07Apples@ или mc --insecure alias set myminio https://test.minio.alauda:443 07Apples@ 07Apples@
  4. Создайте бакет.

    mc --insecure mb <minio cluster alias>/<bucket name>

Загрузка/скачивание файлов

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

Порядок действий

  1. Создайте файл для тестирования загрузки. Этот шаг можно пропустить, если загружаете уже существующий файл.

    touch <file name>
  2. Загрузите файлы в бакет.

    mc --insecure cp <file name> <minio cluster alias>/<bucket name>
  3. Просмотрите файлы в бакете, чтобы подтвердить успешную загрузку.

    mc --insecure ls <minio cluster alias>/<bucket name>
  4. Удалите загруженные файлы.

    mc --insecure rm <minio cluster alias>/<bucket name>/<file name>

Связанная информация

Таблица соответствия коэффициента избыточности

Примечание: При добавлении дополнительных пулов хранения коэффициент избыточности необходимо рассчитывать на основе количества экземпляров в первом пуле хранения.

Количество экземпляровКоэффициент избыточности
4 - 52
6 - 73
>= 84

Обзор пула хранения

Параметр обзора пула храненияФормула расчёта
Доступная ёмкостьЕсли Instance Number ≤ 16, Доступная ёмкость = Вместимость одного тома × (Количество экземпляров - Коэффициент избыточности).
Если количество экземпляров > 16, Доступная ёмкость = Вместимость одного тома × (Количество экземпляров - 4 × (Количество экземпляров + 15) / 16)). Результат выражения "4 × (Количество экземпляров + 15) / 16" округляется вниз.
Общая ёмкостьОбщая ёмкость = Количество экземпляров × Вместимость одного тома
Количество отказоустойчивых сервисов храненияЕсли Количество экземпляров > 2 × Коэффициент избыточности, Количество отказоустойчивых сервисов = Коэффициент избыточности.
Если Количество экземпляров = 2 × Коэффициент избыточности, количество отказоустойчивых сервисов = Коэффициент избыточности - 1