Рубрики
Uncategorized

Используйте S3, совместимое с хранением объектов в OpenShift

Мы столкнулись с ситуациями, когда нам нужно подавать пользовательские файлы в приложения, развернутые в … Tagged с OpenShift, DevOps, S3, хранение.

Мы столкнулись с ситуациями, когда нам нужно подавать пользовательские файлы в приложения, развернутые в OpenShift. Эти файлы будут использоваться приложением для дальнейшей работы.

Рассмотрим сценарий — приложение позволяет пользователям создавать пользовательские файлы JAR, используя предоставленную SDK и подавать его в приложение для выполнения этой настройки. Эти пользовательские банки должны быть доступны для приложения через Java Classpath, копируя его на соответствующий путь.

OpenShift имеет два варианта обработки таких сценариев.

Используя постоянный объем

  • Постоянные объемы (PV) позволяют делиться хранилищем файла между прикладными стручками и внешним миром. Пользователи могут копировать файлы в PV, чтобы сделать их доступными для POD (например, файлы конфигурации), или POD могут создавать файлы, чтобы сделать его доступным за пределами кластера OpenShift (например, файлы журнала). Это звучит как возможный подход для обмена файлами, описанными выше. Тем не менее, некоторые организации имеют ограничения на использование или доступ к PVS.

Использование configmap

  • Configmaps можно установить в виде объемов, чтобы сделать пользовательские файлы доступными для стручков.
  • Configmap имеет предел размера 1 миба.
  • Использование configmap для обмена пользовательскими файлами требует доступа к кластеру OpenShift для создания ConfigMap, содержащего пользовательские файлы.

Оба подхода тесно связаны с платформой OpenShift. Эти подходы могут отлично работать для некоторых пользователей. Но мы могли бы захотеть искать какой -то общий подход, и это то, что здесь будет обсуждать.

Использование S3, совместимое с хранением объектов

Здесь мы увидим, как использовать S3 -совместимое хранилище, чтобы позволить пользователям обмениваться пользовательскими файлами с стручками.

Настройка S3 Совместимое хранилище

Если у вас есть учетная запись AWS, вы можете использовать службу AWS S3 в качестве хранилища объектов. Если нет, то вы можете использовать любое другое хранилище S3. Здесь мы будем использовать Minio ( https://min.io/ ) хранилище объекта. Вы можете проверить документацию на наличие всех поддерживаемых сценариев, чтобы получить Minio. В этом примере я устанавливаю его на Centos 7 VM Анкет

Установка

mkdir /opt/minio
cd /opt/minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio

Запустить Minio Server

export MINIO_REGION_NAME="us-east-1"
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=password
./minio server /mnt/data --console-address ":9001" &

Если вы не установите Minio_root_user и Minio_root_password Переменные среды, Minio будет использовать по умолчанию как MinioAdmin: MinioAdmin Анкет

Важно установить регион, используя Minio_region_name Поскольку нам нужно будет установить регион во время запуска команд AWS CLI позже в процессе.

Каталог /mnt/data будет использоваться в качестве места для хранения. Убедитесь, что каталог, который вы используете в качестве каталога данных, имеет достаточно места для хранения в соответствии с вашими требованиями.

Создайте пользователя API, который будет использоваться для доступа к хранилищу S3

  • Open http://[minio-server]: 9001 В браузере и входе в систему с использованием учетных данных, предоставленных при запуске сервера.
  • Нажмите на ссылку ведра в LHN.
  • Нажмите на + Create Userfore.-
  • Укажите ключ доступа и значение секретного ключа. Вы можете использовать значения выборки, как ниже:
Access Key: Q3AM3UQ867SPQDA43P2G
Secret Key: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG
  • Проверьте флажок ReadWrite из списка политик в разделе «Назначение политик» и нажмите кнопку «Сохранить».

Создайте ведро S3, чтобы сохранить пользовательские файлы

  • Нажмите на Ведра Ссылка в LHN.
  • Нажмите на Создать ведро + кнопка.
  • Укажите имя ведра, например, Santosh-Bucket-1 Анкет Держите другие значения по умолчанию и нажмите на Сохранить кнопка.

Использование хранилища объектов S3 из стручков

  • Чтобы использовать хранилище объектов S3, вы можете установить в целом доступное AWS CLI V2 Следуя документации AWS.
  • Настройте AWS CLI с ключом доступа и секретным ключом, используемым при создании пользователя API в Minio. Вы можете использовать секрет OpenShift, чтобы сохранить ключ доступа и секретный ключ. Пожалуйста, проверьте мой другой пост https://dev.to/santoshjpawar/how-to-use-openshift-secret-cerely-597c для надежного использования секретов OpenShift.
  • В стручках используйте команды AWS CLI S3, чтобы получить пользовательские файлы, скопированные в хранилище контейнера из хранилища объектов S3. Пользовательский файл JAR Custom-Extention.jar хранится на ведре S3 Santosh-Bucket-1 Анкет Обратите внимание, что порт Minio (9000) отличается от порта Minio Console (9001)
aws --endpoint-url http://[minio-server]:9000 s3 cp s3://santosh-bucket-1/custom-settlement-extention.jar /work/custom-jars

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

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

aws --endpoint-url http://[minio-server]:9000 s3 ls santosh-bucket-1

Оригинал: «https://dev.to/santoshjpawar/using-s3-compatible-object-storage-in-openshift-agk»