S3-Gateway позволяет предоставить доступ к S3-хранилищу через единую точку входа в приложение ELMA365. Под единой точкой входа подразумевается домен (FQDN) или IP-адрес, по которому доступна ELMA365. S3-Gateway позволяет проксировать трафик до S3-хранилища, находящегося как вне, так и в Kubernetes-кластере.
Установка состоит из четырёх этапов:
- Скачивание Helm-чарта и конфигурационного файла.
- Заполнение конфигурационного файла.
- Установка с помощью Helm в Kubernetes-кластер чарта S3-Gateway.
- Подключение к S3.
Шаг 1: Скачивание Helm-чарта и конфигурационного файла
Для установки через интернет получите конфигурационный файл values-s3gateway.yaml
, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/s3gateway > values-s3gateway.yaml
Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет
helm repo add elma365 https://charts.elma365.tech
tar -xf s3gateway-X.Y.Z.tgz |
Шаг 2: Заполнение конфигурационного файла
Заполните конфигурационный файл values-s3gateway.yaml
для установки S3-Gateway.
В параметре ingress.hostname
укажите домен (FQDN) или IP-адрес, по которому доступно приложение ELMA365. В параметре ingress.path
укажите наименование бакета (в хранилище S3), в котором приложение ELMA365 хранит файлы.
Наименование бакета в S3 должно соответствовать формату s3elma365*.
Начало примера
Пример:
- s3elma365
- s3elma365-dev
- s3elma365-prod
конец примера
Eсли web-интерфейс приложения ELMA365 доступен по HTTPS:
- в параметре
ingress.path
укажите домен (FQDN); - включите поддержку TLS, установив значение
true
в параметреingress.tls
; - раскомментируйте параметры секции
ingress.extraTls
; - для параметра
ingress.extraTls.hosts
укажите домен (FQDN), по которому доступно приложение ELMA365; - для параметра
ingress.extraTls.secretName
укажите наименованиеsecret
типаtls
для домена, указанного вingress.extraTls.hosts
.
Если нужно обеспечить отказоустойчивость, в параметре replicaCount
укажите необходимое количество реплик.
В параметре configuration
указана конфигурация HAProxy, с которой он запустится в Kubernetes-кластере. В секции backend s3_main
конфигурации HAProxy укажите список серверов S3, на которые необходимо перенаправить пользовательский трафик.
Рассмотрим пример проксирования пользовательского трафика без поддержки SSL в хранилище S3 MinIO чартом elma365‑dbs без поддержки SSL в Kubernetes-кластере. Хранилище устанавливается согласно инструкции в статье «MinIO S3».
Пример:
## Настройки HAProxy для проксирования подключения к S3-хранилищу
haproxy:
ingress:
enabled: true
##включение поддержки HAProxy Ingress для работы на платформе OpenShift
openshift: false
## домен (FQDN), по которому доступна система
hostname: elma365-server.your_domain
## наименование bucket’а (в хранилище S3) для приложения ELMA365
path: /s3elma365
## включение https
tls: false
# extraTls:
# - hosts:
# - elma365-server.your_domain
# secretName: elma365-server.your_domain-tls
## количество реплик для обеспечения высокой доступности
replicaCount: 1
containerPorts:
- name: http
containerPort: 8080
## конфигурация HAProxy
configuration: |
global
log stdout format raw local0
maxconn 1024
defaults
log global
timeout client 60s
timeout connect 60s
timeout server 60s
frontend s3_main
bind :8080
default_backend s3_main
backend s3_main
server s3_1 minio.elma365-dbs.svc.cluster.local:80 check inter 2s
## политики контекста безопасности
podSecurityContext:
enabled: true
fsGroup: 1001
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## указание ресурсов
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "512Mi"
cpu: "500m"
...
Пример проксирования пользовательского трафика c поддержкой SSL на четыре сервера S3 (MinIO), расположенных вне кластера Kubernetes и развёрнутых согласно инструкции в статье «Кластер MinIO» c поддержкой SSL:
## Настройки HAProxy для проксирования подключения к S3-хранилищу
haproxy:
ingress:
enabled: true
## включение поддержки HAProxy Ingress для работы на платформе OpenShift
openshift: false
## домен (FQDN), по которому доступна система
hostname: elma365-server.your_domain
## наименование bucket’а (в хранилище S3) для приложения ELMA365
path: /s3elma365
## включение https
tls: true
extraTls:
- hosts:
- elma365-server.your_domain
secretName: elma365-server.your_domain-tls
## количество реплик для обеспечения высокой доступности
replicaCount: 1
containerPorts:
- name: http
containerPort: 8080
## конфигурация HAProxy
configuration: |
global
log stdout format raw local0
maxconn 100000
defaults
log global
timeout client 60s
timeout connect 60s
timeout server 60s
frontend s3_main
bind :8080
default_backend s3_main
backend s3_main
balance leastconn
server s3_1 minio-server1.your_domain:9000 check-ssl ssl verify none check inter 2s
server s3_2 minio-server1.your_domain:9000 check-ssl ssl verify none check inter 2s
server s3_3 minio-server1.your_domain:9000 check-ssl ssl verify none check inter 2s
server s3_4 minio-server1.your_domain:9000 check-ssl ssl verify none check inter 2s
## политики контекста безопасности
podSecurityContext:
enabled: true
fsGroup: 1001
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## указание ресурсов
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "512Mi"
cpu: "500m"
...
Для подключения к приватному registry необходимо:
## Настройки HAProxy для проксирования подключения к S3-хранилищу. |
Шаг 3: Установка с помощью Helm в Kubernetes-кластер чарта S3-Gateway
Выполните установку чарта S3-Gateway в namespace
s3gateway.
Для установки через интернет:
helm upgrade --install s3gateway elma365/s3gateway -f values-s3gateway.yaml -n s3gateway --create-namespace
Для установки без доступа в интернет:
helm upgrade --install s3gateway ./s3gateway -f values-s3gateway.yaml -n s3gateway --create-namespace
Шаг 4: Подключение к S3
Параметры для подключения к S3:
address
— укажитеelma365-server.your_domain
;bucket
,region, access key ID
,secret access key
,secret access key
иenable SSL
— укажите значения согласно параметрам S3-хранилища, для которого настраивается проксирование.
начало внимание
Подготовка инфраструктуры происходит до установки приложения ELMA365. Если была произведена установка чарта S3-Gateway, не забудьте изменить адрес подключения к S3 (elma365.s3.backend.address) в настройках приложения ELMA365. Подробнее об этом читайте в статье «Изменение параметров ELMA365 Enterprise».
конец внимание