Установка

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

Содержание

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

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

  • Скачайте установочный пакет Alauda Container Platform Storage Essentials, соответствующий архитектуре вашей платформы.

  • Загрузите установочный пакет Alauda Container Platform Storage Essentials с помощью механизма Upload Packages.

  • Скачайте установочный пакет Alauda Container Platform (ACP) Object Storage with MinIO, соответствующий архитектуре вашей платформы.

  • Загрузите установочный пакет Alauda Container Platform (ACP) Object Storage with MinIO с помощью механизма Upload Packages.

Процедура

Развертывание Alauda Container Platform Storage Essentials

  1. Войдите в систему, перейдите на страницу Administrator.

  2. Нажмите Marketplace > OperatorHub, чтобы перейти на страницу OperatorHub.

  3. Найдите Alauda Container Platform Storage Essentials, нажмите Install и перейдите на страницу Install Alauda Container Platform Storage Essentials.

    Параметры конфигурации:

    ПараметрРекомендуемая конфигурация
    ChannelКанал по умолчанию — stable.
    Installation ModeCluster: Все пространства имён в кластере используют один экземпляр Operator для создания и управления, что снижает использование ресурсов.
    Installation PlaceВыберите Recommended, Namespace поддерживается только acp-storage.
    Upgrade StrategyManual: При появлении новой версии в Operator Hub требуется ручное подтверждение для обновления Operator до последней версии.

Развертывание Operator

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

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

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

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

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

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

  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 m.
    • Запрос памяти не менее 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 сертификата домена.
    Примечание:
    • При протоколе 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. После отмены развернутая информация о кластере будет очищена, и вы сможете вернуться на страницу создания кластера для повторного создания.

Создание Bucket

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

  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. Создайте bucket.

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

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

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

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

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

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

    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" округляется вниз.
Общая ёмкостьОбщая ёмкость = Количество экземпляров × Ёмкость одного тома
Количество отказоустойчивых сервисов храненияПри Instance Number > 2 × Коэффициент избыточности, Количество отказоустойчивых сервисов хранения = Коэффициент избыточности.
При Instance Number = 2 × Коэффициент избыточности, количество отказоустойчивых сервисов хранения = Коэффициент избыточности - 1