ONLYOFFICE Docs в Kubernetes
Введение
Данная инструкция действительна только для решения с платной лицензией для кластера.
- У вас должен быть установлен кластер Kubernetes или OpenShift:
- Обратитесь к документации, чтобы настроить Kubernetes.
- Обратитесь к документации, чтобы настроить OpenShift.
- Также у вас должна быть локальная настроенная копия
kubectl. Обратитесь к этой инструкции, чтобы узнать, как установить и настроитьkubectl. - Необходимо установить Helm v3.7+. Чтобы установить его, следуйте инструкции здесь.
- Если вы используете OpenShift, для управления развертыванием можно использовать как
oc, так иkubectl. - Если установка внешних по отношению к Docs компонентов выполняется из Helm-чарта в кластере OpenShift, рекомендуется устанавливать их от имени пользователя с ролью
cluster-admin, чтобы избежать возможных проблем с правами доступа. Обратитесь к этой инструкции, чтобы добавить пользователю необходимые роли.
Подготовка к развертыванию
При установке в кластер OpenShift может потребоваться применить политику SecurityContextConstraints, которая добавляет разрешение на запуск контейнеров от имени пользователя с ID = 1001.
Для этого выполните следующие команды:
$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/helm-components.yaml
$ oc adm policy add-scc-to-group scc-helm-components system:authenticated
Кроме того, можно указать допустимый диапазон пользователей и групп из целевого пространства имен — смотрите параметры runAsUser и fsGroup при установке зависимостей, таких как RabbitMQ, Redis, PostgreSQL и т.д.
1. Добавьте репозитории Helm
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo add nfs-server-provisioner https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner
$ helm repo add onlyoffice https://download.onlyoffice.com/charts/stable
$ helm repo update
2. Установите постоянное хранилище
Если вы хотите использовать Amazon S3 в качестве кэша, пропустите этот шаг.
Установите NFS Server Provisioner
При установке NFS Server Provisioner создается класс хранилища (Storage Class) NFS. При установке в кластер OpenShift у пользователя должна быть роль, которая позволяет создавать классы хранилища в кластере. Подробнее читайте здесь.
$ helm install nfs-server nfs-server-provisioner/nfs-server-provisioner \
--set persistence.enabled=true \
--set persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set persistence.size=PERSISTENT_SIZE
-
PERSISTENT_STORAGE_CLASS— это класс постоянного хранилища (Persistent Storage Class), доступный в вашем кластере Kubernetes.Классы постоянного хранилища у разных провайдеров:
- Amazon EKS:
gp2 - Digital Ocean:
do-block-storage - IBM Cloud: по умолчанию
ibmc-file-bronze. Другие классы хранилища - Yandex Cloud:
yc-network-hddилиyc-network-ssd. Подробнее - minikube:
standard
- Amazon EKS:
-
PERSISTENT_SIZE— это общий размер всех постоянных хранилищ для класса постоянного хранилища nfs. Размер можно указать целым числом с одним из следующих суффиксов:T,G,M,Ti,Gi,Mi. Например:9Gi.
Подробнее об установке NFS Server Provisioner с помощью Helm читайте здесь.
Настройте Persistent Volume Claim
По умолчанию размер Persistent Volume Claim nfs составляет 8Gi. Его можно изменить в файле values.yaml в разделе persistence.storageClass и persistence.size. Он должен быть меньше PERSISTENT_SIZE как минимум примерно на 5%. Рекомендуется использовать 8Gi или больше постоянного хранилища на каждые 100 активных пользователей ONLYOFFICE Docs.
Тип PersistentVolume, используемый для размещения PVC, должен поддерживать режим доступа ReadWriteMany. Кроме того, владельцем PersistentVolume должен быть пользователь, от имени которого будет запускаться ONLYOFFICE Docs. По умолчанию это ds (101:101).
Если вы хотите включить WOPI, задайте параметр wopi.enabled=true. В этом случае постоянное хранилище должно быть подключено к узлам кластера с отключенными атрибутами кэширования для смонтированного каталога у клиентов. Для NFS Server Provisioner этого можно добиться, добавив опцию noac в параметр storageClass.mountOptions. Подробнее читайте здесь.
3. Разверните RabbitMQ
Чтобы установить RabbitMQ в кластер, выполните следующую команду:
$ helm install rabbitmq --version 16.0.14 bitnami/rabbitmq \
--set persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set resourcesPreset=none \
--set image.repository=bitnamilegacy/rabbitmq \
--set image.tag=4.1.3-debian-12-r1 \
--set global.security.allowInsecureImages=true \
--set metrics.enabled=false
Задайте metrics.enabled=true, чтобы включить предоставление метрик RabbitMQ для сбора с помощью Prometheus.
Подробнее об установке RabbitMQ с помощью Helm читайте здесь.
4. Разверните Redis
Чтобы установить Redis в кластер, выполните следующую команду:
$ helm install redis --version 22.0.7 bitnami/redis \
--set architecture=standalone \
--set master.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set master.resourcesPreset=none \
--set global.security.allowInsecureImages=true \
--set image.repository=bitnamilegacy/redis \
--set image.tag=8.2.1-debian-12-r0 \
--set metrics.enabled=false
Задайте metrics.enabled=true, чтобы включить предоставление метрик Redis для сбора с помощью Prometheus. Также добавьте следующие параметры: metrics.image.repository=bitnamilegacy/redis-exporter и metrics.image.tag=1.76.0-debian-12-r0.
Подробнее об установке Redis с помощью Helm читайте здесь.
5. Разверните базу данных
В качестве сервера базы данных можно использовать PostgreSQL, MySQL или MariaDB.
- PostgreSQL
- MySQL
Чтобы установить PostgreSQL в кластер, выполните следующую команду:
$ helm install postgresql --version 16.7.27 bitnami/postgresql \
--set auth.database=postgres \
--set primary.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set primary.persistence.size=PERSISTENT_SIZE \
--set primary.resourcesPreset=none \
--set image.repository=bitnamilegacy/postgresql \
--set global.security.allowInsecureImages=true \
--set image.tag=17.6.0-debian-12-r2 \
--set metrics.enabled=false
Задайте metrics.enabled=true, чтобы включить предоставление метрик базы данных для сбора с помощью Prometheus. Также добавьте следующие параметры: metrics.image.repository=bitnamilegacy/postgres-exporter и metrics.image.tag=0.17.1-debian-12-r16.
Подробнее об установке PostgreSQL с помощью Helm читайте здесь.
Чтобы установить MySQL в кластер, выполните следующую команду:
$ helm install mysql --version 14.0.3 bitnami/mysql \
--set auth.database=onlyoffice \
--set auth.username=onlyoffice \
--set primary.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set primary.persistence.size=PERSISTENT_SIZE \
--set primary.resourcesPreset=none \
--set image.repository=bitnamilegacy/mysql \
--set global.security.allowInsecureImages=true \
--set image.tag=9.4.0-debian-12-r1 \
--set metrics.enabled=false
Подробнее об установке MySQL с помощью Helm читайте здесь.
Здесь PERSISTENT_SIZE — это размер постоянного тома базы данных. Например: 8Gi.
Рекомендуется использовать не менее 2Gi постоянного хранилища на каждые 100 активных пользователей ONLYOFFICE Docs.
Задайте metrics.enabled=true, чтобы включить предоставление метрик базы данных для сбора с помощью Prometheus. Также добавьте следующие параметры: metrics.image.repository=bitnamilegacy/mysqld-exporter и metrics.image.tag=0.17.2-debian-12-r16.
6. Разверните StatsD exporter
Это необязательный шаг. Его можно полностью пропустить, если вы не хотите запускать StatsD exporter.
-
Добавьте репозитории Helm
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts$ helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics$ helm repo update -
Установка Prometheus
Чтобы установить Prometheus в кластер, выполните следующую команду:
$ helm install prometheus -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/extraScrapeConfigs.yaml prometheus-community/prometheus \--set server.global.scrape_interval=1mЧтобы изменить интервал сбора метрик, укажите параметр
server.global.scrape_interval.Подробнее об установке Prometheus с помощью Helm читайте здесь.
-
Установка StatsD exporter
Чтобы установить StatsD exporter в кластер, выполните следующую команду:
$ helm install statsd-exporter prometheus-community/prometheus-statsd-exporter \--set statsd.udpPort=8125 \--set statsd.tcpPort=8126 \--set statsd.eventFlushInterval=30000msПодробнее об установке Prometheus StatsD exporter с помощью Helm читайте здесь.
Чтобы разрешить метрики StatsD в ONLYOFFICE Docs, выполните этот шаг.
7. Внесите изменения в файлы конфигурации Node-config
Это необязательный шаг. Его можно полностью пропустить, если вам не нужно вносить изменения в файлы конфигурации.
-
Создайте ConfigMap, содержащий json-файл
Чтобы создать ConfigMap из файла, который содержит структуру
local.json, выполните следующую команду:$ kubectl create configmap local-config \--from-file=./local.jsonпримечаниеВместо
local-configможно использовать любое имя. -
Укажите параметры при установке ONLYOFFICE Docs
При установке ONLYOFFICE Docs укажите параметры
extraConf.configMap=local-configиextraConf.filename=local.json.примечаниеЕсли вам нужно добавить файл конфигурации после того, как ONLYOFFICE Docs уже установлен, выполните шаг 7.1, а затем выполните команду
helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooksили
helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksесли параметры указаны в файле
values.yaml.
8. Добавьте пользовательские шрифты
Это необязательный шаг. Его можно полностью пропустить, если вам не нужно добавлять свои шрифты.
Чтобы добавить шрифты в образы, необходимо пересобрать образы. Выполните соответствующие шаги из этой инструкции. Затем укажите свои образы при установке ONLYOFFICE Docs.
9. Добавьте плагины
Это необязательный шаг. Его можно полностью пропустить, если вам не нужно добавлять плагины.
Чтобы добавить плагины в образы, необходимо пересобрать образы. Выполните соответствующие шаги из этой инструкции. Затем укажите свои образы при установке ONLYOFFICE Docs.
10. Добавьте пользовательские словари
Это необязательный шаг. Его можно полностью пропустить, если вам не нужно добавлять свои словари.
Чтобы добавить свои словари в образы, необходимо пересобрать образы. Выполните соответствующие шаги из этой инструкции. Затем укажите свои образы при установке ONLYOFFICE Docs.
11. Измените темы интерфейса
Это необязательный шаг. Его можно полностью пропустить, если вам не нужно менять темы интерфейса.
-
Создайте ConfigMap, содержащий json-файл
Чтобы создать ConfigMap с json-файлом, который содержит темы интерфейса, выполните следующую команду:
$ kubectl create configmap custom-themes \--from-file=./custom-themes.jsonпримечаниеВместо
custom-themesиcustom-themes.jsonможно использовать любые другие имена. -
Укажите параметры при установке ONLYOFFICE Docs
При установке ONLYOFFICE Docs укажите параметры
extraThemes.configMap=custom-themesиextraThemes.filename=custom-themes.json.примечаниеЕсли вам нужно добавить темы интерфейса после того, как ONLYOFFICE Docs уже установлен, выполните шаг 11.1, а затем выполните команду
helm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooksилиhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks, если параметры указаны в файлеvalues.yaml.
12. Подключение бакета Amazon S3 в качестве кэша к ONLYOFFICE Helm Docs
Это необязательный шаг. Его можно полностью пропустить, если вы не хотите использовать Amazon S3 в качестве хранилища кэша.
Чтобы подключить бакет Amazon S3 в качестве кэша, необходимо создать файл конфигурации или отредактировать существующий в соответствии с этой инструкцией и изменить значение параметра persistence.storageS3 на true.
Развертывание ONLYOFFICE Docs
При установке в кластер OpenShift может потребоваться применить политику SecurityContextConstraints, которая добавляет разрешение на запуск контейнеров от имени пользователя с ID = 101.
Для этого выполните следующие команды:
$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/docs-components.yaml
$ oc adm policy add-scc-to-group scc-docs-components system:authenticated
Кроме того, можно применить политику SecurityContextConstraints (SCC) nonroot-v2 в commonAnnotations или annotations для всех ресурсов, описывающих podTemplate. Убедитесь, что и у пользователя, и у учетной записи службы есть необходимые разрешения на использование этой SCC. Чтобы проверить, у кого есть разрешение на использование nonroot-v2, выполните следующую команду:
oc adm policy who-can use scc nonroot-v2
helm install documentserver onlyoffice/docs --set commonAnnotations."openshift\.io/required-scc"="nonroot-v2"
При необходимости задайте для podSecurityContext.enabled и <resources>.containerSecurityContext.enabled значение true.
1. Разверните лицензию ONLYOFFICE Docs
-
Создайте секрет
Если у вас есть действующая лицензия ONLYOFFICE Docs, создайте из файла секрет
license:$ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.licГде
SECRET_LICENSE_NAME— это имя будущего секрета с лицензией.примечаниеИсходный файл лицензии должен называться «license.lic», так как это имя будет использоваться в качестве поля в создаваемом секрете.
примечаниеЕсли установка выполняется без создания секрета с существующим файлом лицензии, будет автоматически создан пустой секрет
license. О том, как обновить существующий секрет с лицензией, читайте здесь. -
Укажите параметры при установке ONLYOFFICE Docs
При установке ONLYOFFICE Docs укажите параметр
license.existingSecret=[SECRET_LICENSE_NAME].$ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]примечаниеЕсли вам нужно добавить лицензию после того, как ONLYOFFICE Docs уже установлен, выполните шаг 1.1, а затем выполните команду
helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooksилиhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks, если параметры указаны в файлеvalues.yaml.
2. Разверните ONLYOFFICE Docs
Чтобы развернуть ONLYOFFICE Docs с именем релиза documentserver, выполните команду:
$ helm install documentserver onlyoffice/docs
Эта команда развертывает ONLYOFFICE Docs в кластере Kubernetes в конфигурации по умолчанию. В разделе Параметры перечислены параметры, которые можно настроить во время установки.
Если ONLYOFFICE Docs устанавливается в частном кластере k8s за веб-прокси или без доступа к Интернету, ознакомьтесь с примечаниями ниже.
3. Удалите ONLYOFFICE Docs
Чтобы удалить развертывание documentserver, выполните команду:
$ helm delete documentserver
Выполнение команды helm delete запускает хуки, которые выполняют подготовительные действия перед полным удалением ONLYOFFICE Docs, включая остановку сервера, очистку используемого PVC и таблиц базы данных. Время выполнения хука по умолчанию — 300 с. Время выполнения можно изменить с помощью --timeout [time], например:
$ helm delete documentserver --timeout 25m
Если ONLYOFFICE Docs удаляется в частном кластере k8s за веб-прокси или без доступа к Интернету, ознакомьтесь с примечаниями ниже.
Если вы хотите удалить ONLYOFFICE Docs без каких-либо подготовительных действий, выполните следующую команду:
$ helm delete documentserver --no-hooks
Команда helm delete удаляет все компоненты Kubernetes, связанные с чартом, и удаляет релиз.
4. Параметры
Указывайте каждый параметр с помощью аргумента --set key=value[,key=value] команды helm install. Например:
$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com
Эта команда публикует ONLYOFFICE Docs по протоколу HTTPS.
Кроме того, при установке чарта можно передать YAML-файл, в котором указаны значения параметров:
$ helm install documentserver -f values.yaml onlyoffice/docs
Можно использовать файл values.yaml по умолчанию.
Показать все параметры
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
connections.dbType | Тип базы данных. Возможные значения: postgres, mariadb, mysql, oracle, mssql или dameng | postgres |
connections.dbHost | IP-адрес или имя хоста базы данных | postgresql |
connections.dbUser | Пользователь базы данных | postgres |
connections.dbPort | Номер порта сервера базы данных | 5432 |
connections.dbName | Имя базы данных, к которой будет подключено приложение | postgres |
connections.dbPassword | Пароль пользователя базы данных. Если задан, имеет приоритет над connections.dbExistingSecret | "" |
connections.dbSecretKeyName | Имя ключа, который содержит пароль пользователя базы данных | postgres-password |
connections.dbExistingSecret | Имя существующего секрета, используемого для паролей базы данных. Должен содержать ключ, указанный в connections.dbSecretKeyName | postgresql |
connections.redisConnectorName | Определяет, какой коннектор использовать для подключения к Redis. Если необходимо подключиться к Redis Sentinel, задайте значение ioredis | redis |
connections.redisHost | IP-адрес или имя хоста Redis. Не используется, если заданы значения в connections.redisClusterNodes и connections.redisSentinelNodes | redis-master |
connections.redisPort | Номер порта сервера Redis. Не используется, если заданы значения в connections.redisClusterNodes и connections.redisSentinelNodes | 6379 |
connections.redisUser | Имя пользователя Redis. Значение этого параметра переопределяет значение, заданное в объекте options в файле local.json, если вы добавляете пользовательский файл конфигурации | default |
connections.redisDBNum | Номер логической базы данных Redis, которая будет выбрана. Значение этого параметра переопределяет значение, заданное в объекте options в файле local.json, если вы добавляете пользовательский файл конфигурации | 0 |
connections.redisClusterNodes | Список узлов в кластере Redis. Указывать все узлы кластера не обязательно, достаточно трех. Можно указать несколько значений. Значения необходимо указывать в формате host:port | [] |
connections.redisPassword | Пароль, заданный для учетной записи Redis. Если задан, имеет приоритет над connections.redisExistingSecret. Значение этого параметра переопределяет значение, заданное в объекте options в файле local.json, если вы добавляете пользовательский файл конфигурации | "" |
connections.redisSecretKeyName | Имя ключа, который содержит пароль пользователя Redis | redis-password |
connections.redisExistingSecret | Имя существующего секрета, используемого для паролей Redis. Должен содержать ключ, указанный в connections.redisSecretKeyName. Пароль из этого секрета переопределяет пароль, заданный в объекте options в файле local.json | redis |
connections.redisNoPass | Определяет, использовать ли аутентификацию Redis без пароля. Если для подключения к серверу Redis пароль не требуется, задайте значение true | false |
connections.redisSentinelNodes | Список узлов Redis Sentinel. Указывать все узлы не обязательно, достаточно трех. Можно указать несколько значений. Значения необходимо указывать в формате host:port. Используется, если для connections.redisConnectorName задано значение ioredis | [] |
connections.redisSentinelGroupName | Имя группы экземпляров Redis, состоящей из одного основного и одного или нескольких подчиненных экземпляров. Используется, если для connections.redisConnectorName задано значение ioredis | mymaster |
connections.redisSentinelExistingSecret | Имя существующего секрета, используемого для пароля Redis Sentinel. Должен содержать ключ, указанный в connections.redisSentinelSecretKeyName. Пароль из этого секрета переопределяет значение пароля, заданное в объекте iooptions в файле local.json | "" |
connections.redisSentinelSecretKeyName | Имя ключа, который содержит пароль пользователя Redis Sentinel. Если вы задали пароль в redisSentinelPassword, будет автоматически создан секрет, имя ключа которого будет равно заданному здесь значению | sentinel-password |
connections.redisSentinelPassword | Пароль, заданный для учетной записи Redis Sentinel. Если задан, имеет приоритет над connections.redisSentinelExistingSecret. Значение этого параметра переопределяет значение, заданное в объекте iooptions в файле local.json | "" |
connections.redisSentinelNoPass | Определяет, использовать ли аутентификацию Redis Sentinel без пароля. Если для подключения к Redis Sentinel пароль не требуется, задайте значение true | true |
connections.amqpType | Определяет тип сервера AMQP. Возможные значения: rabbitmq или activemq | rabbitmq |
connections.amqpHost | IP-адрес или имя сервера AMQP | rabbitmq |
connections.amqpPort | Порт для подключения к серверу AMQP | 5672 |
connections.amqpVhost | Виртуальный хост для подключения к серверу AMQP | / |
connections.amqpUser | Имя пользователя учетной записи сервера AMQP | user |
connections.amqpProto | Протокол для подключения к серверу AMQP | amqp |
connections.amqpPassword | Пароль пользователя сервера AMQP. Если задан, имеет приоритет над connections.amqpExistingSecret | "" |
connections.amqpSecretKeyName | Имя ключа, который содержит пароль пользователя сервера AMQP | rabbitmq-password |
connections.amqpExistingSecret | Имя существующего секрета, используемого для паролей сервера AMQP. Должен содержать ключ, указанный в connections.amqpSecretKeyName | rabbitmq |
persistence.existingClaim | Имя существующего PVC. Если не указано, будет создан PVC с именем «ds-files» | "" |
persistence.annotations | Определяет аннотации, которые будут дополнительно добавлены к PVC «ds-files». Если заданы, имеют приоритет над commonAnnotations | {} |
persistence.storageClass | Класс хранилища PVC для томов данных и конфигурации среды выполнения Onlyoffice Docs | nfs |
persistence.size | Запрашиваемый объем хранилища PVC для тома ONLYOFFICE Docs | 8Gi |
persistence.storageS3 | Определяет, будет ли S3 использоваться в качестве хранилища кэша. Задайте значение true, если будете использовать S3 в качестве хранилища кэша | false |
persistence.runtimeConfig.enabled | Определяет, использовать ли PVC и монтировать ли его в контейнеры | true |
persistence.runtimeConfig.existingClaim | Имя существующего PVC, используемого для хранения конфигурации среды выполнения. Если не указано, будет создан PVC с именем «ds-runtime-config» | "" |
persistence.runtimeConfig.annotations | Определяет аннотации, которые будут дополнительно добавлены к PVC «ds-runtime-config». Если заданы, имеют приоритет над commonAnnotations | {} |
persistence.runtimeConfig.size | Запрашиваемый объем хранилища PVC для тома конфигурации среды выполнения | 1Gi |
commonNameSuffix | Имя, которое будет добавлено в качестве суффикса к имени всех создаваемых ресурсов | "" |
namespaceOverride | Имя пространства имен, в котором будет развернут Onlyoffice Docs. Если не задано, имя будет взято из .Release.Namespace | "" |
commonLabels | Определяет метки, которые будут дополнительно добавлены ко всем развернутым ресурсам. В качестве значения ключа также можно использовать tpl | {} |
commonAnnotations | Определяет аннотации, которые будут дополнительно добавлены ко всем развернутым ресурсам. В качестве значения ключа также можно использовать tpl. Некоторые ресурсы могут переопределять указанные здесь значения своими | {} |
serviceAccount.create | Включает создание ServiceAccount | false |
serviceAccount.name | Имя используемой учетной записи ServiceAccount. Если не задано и для serviceAccount.create задано значение true, имя будет взято из .Release.Name; если для serviceAccount.create задано значение false, будет использовано имя «default» | "" |
serviceAccount.annotations | Набор аннотаций, добавляемых к ServiceAccount. Если задан, имеет приоритет над commonAnnotations | {} |
serviceAccount.automountServiceAccountToken | Включает автоматическое монтирование ServiceAccountToken в созданную учетную запись serviceAccount. Используется, только если для serviceAccount.create задано значение true | true |
license.existingSecret | Имя существующего секрета, который содержит лицензию. Должен содержать ключ license.lic | "" |
license.existingClaim | Имя существующего PVC, в котором хранится лицензия. Должен содержать файл license.lic | "" |
log.level | Определяет тип и уровень важности регистрируемого события. Возможные значения: ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFF | WARN |
log.type | Определяет формат регистрируемого события. Возможные значения: pattern, json, basic, coloured, messagePassThrough, dummy | pattern |
log.pattern | Определяет шаблон логов, если задано log.type=pattern | [%d] [%p] %c - %.10000m |
wopi.enabled | Определяет, включен ли WOPI. Если параметр включен, для клиента необходимо отключить атрибуты кэширования смонтированного каталога (PVC) | false |
wopi.keys.generation | Определяет, генерировать ли ключи API. Используется, если для wopi.enabled задано значение true | true |
wopi.keys.newKeysExistingSecret | Имя существующего секрета, содержащего ключи WOPI. Должен содержать ключи WOPI_PRIVATE_KEY, WOPI_PUBLIC_KEY, WOPI_MODULUS_KEY и WOPI_EXPONENT_KEY. Если не задано, будут сгенерированы новые ключи и из них будет создан секрет | "" |
wopi.keys.oldKeysExistingSecret | Имя существующего секрета, содержащего старые ключи WOPI. Должен содержать ключи WOPI_PRIVATE_KEY_OLD, WOPI_PUBLIC_KEY_OLD, WOPI_MODULUS_KEY_OLD и WOPI_EXPONENT_KEY_OLD. Если не задано, будут сгенерированы новые ключи и из них будет создан секрет | "" |
metrics.enabled | Определяет, включен ли StatsD для ONLYOFFICE Docs | false |
metrics.host | Определяет хост, который прослушивает StatsD | statsd-exporter-prometheus-statsd-exporter |
metrics.port | Определяет порт, который прослушивает StatsD | 8125 |
metrics.prefix | Определяет префикс метрик StatsD для серверных служб | ds. |
extraConf.configMap | Имя ConfigMap, содержащего json-файл, который переопределяет значения по умолчанию | "" |
extraConf.filename | Имя json-файла, который содержит пользовательские значения. Должно совпадать с именем ключа key в extraConf.ConfigMap | local.json |
extraThemes.configMap | Имя ConfigMap, содержащего json-файл с темами интерфейса | "" |
extraThemes.filename | Имя json-файла, который содержит пользовательские темы интерфейса. Должно совпадать с именем ключа key в extraThemes.configMap | custom-themes.json |
podAntiAffinity.type | Типы антиаффинити подов. Допустимые значения: soft или hard | soft |
podAntiAffinity.topologyKey | Ключ метки узла для сопоставления | kubernetes.io/hostname |
podAntiAffinity.weight | Приоритет при выборе узла. Значение в диапазоне от 1 до 100 | 100 |
nodeSelector | Метки узлов для назначения подов. Каждая служба ONLYOFFICE Docs может переопределить указанные здесь значения своими | {} |
tolerations | Допуски (tolerations) для назначения подов. Каждая служба ONLYOFFICE Docs может переопределить указанные здесь значения своими | [] |
imagePullSecrets | Имя секрета реестра образов контейнеров | "" |
requestFilteringAgent.allowPrivateIPAddress | Определяет, разрешено ли подключение к частным IP-адресам. Параметры requestFilteringAgent используются, если JWT отключен: jwt.enabled=false | false |
requestFilteringAgent.allowMetaIPAddress | Определяет, разрешено ли подключение к мета-адресам | false |
requestFilteringAgent.allowIPAddressList | Определяет список IP-адресов, с которых разрешено подключение. Эти значения имеют приоритет над requestFilteringAgent.denyIPAddressList | [] |
requestFilteringAgent.denyIPAddressList | Определяет список IP-адресов, с которых запрещено подключение | [] |
docservice.annotations | Определяет аннотации, которые будут дополнительно добавлены к развертыванию (Deployment) Docservice. Если заданы, имеют приоритет над commonAnnotations | {} |
docservice.podAnnotations | Набор аннотаций, добавляемых к подам развертывания Docservice | rollme: "{{ randAlphaNum 5 | quote }}" |
docservice.replicas | Количество реплик Docservice. Игнорируется, если включен параметр docservice.autoscaling.enabled | 2 |
docservice.updateStrategy.type | Тип стратегии обновления развертывания Docservice | Recreate |
docservice.customPodAntiAffinity | Запрет размещения подов Docservice относительно других подов, содержащих указанные метки, на одном узле | {} |
docservice.podAffinity | Определяет правила Pod affinity для размещения подов Docservice по узлам относительно других подов | {} |
docservice.nodeAffinity | Определяет правила Node affinity для размещения подов Docservice по узлам | {} |
docservice.nodeSelector | Метки узлов для назначения подов Docservice. Если заданы, имеют приоритет над nodeSelector | {} |
docservice.tolerations | Допуски (tolerations) для назначения подов Docservice. Если заданы, имеют приоритет над tolerations | [] |
docservice.terminationGracePeriodSeconds | Время на корректное завершение работы, в течение которого под Docservice будет иметь статус Terminating | 30 |
docservice.hostAliases | Добавляет дополнительные записи в файл hosts в контейнерах Docservice и Proxy | [] |
docservice.initContainers | Определяет контейнеры, которые запускаются перед контейнерами docservice и proxy в поде развертывания Docservice. Например, контейнер, который меняет владельца PersistentVolume | [] |
docservice.image.repository | Репозиторий образа контейнера Docservice* | onlyoffice/docs-docservice-de |
docservice.image.tag | Тег образа контейнера Docservice | 9.0.4-1 |
docservice.image.pullPolicy | Политика загрузки образа контейнера Docservice | IfNotPresent |
docservice.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Docservice | false |
docservice.lifecycleHooks | Определяет хуки жизненного цикла контейнера Docservice. Используется для запуска событий в определенные моменты жизненного цикла контейнера | {} |
docservice.resources.requests | Запрашиваемые ресурсы для контейнера Docservice | {} |
docservice.resources.limits | Ограничения ресурсов для контейнера Docservice | {} |
docservice.extraEnvVars | Массив с дополнительными переменными среды для контейнера Docservice | [] |
docservice.extraVolumes | Массив с дополнительными томами для пода Docservice | [] |
docservice.extraVolumeMounts | Массив с дополнительными точками монтирования томов для контейнера Docservice | [] |
docservice.readinessProbe.enabled | Включает readinessProbe для контейнера Docservice | true |
docservice.livenessProbe.enabled | Включает livenessProbe для контейнера Docservice | true |
docservice.startupProbe.enabled | Включает startupProbe для контейнера Docservice | true |
docservice.autoscaling.enabled | Включает автомасштабирование развертывания Docservice | false |
docservice.autoscaling.annotations | Определяет аннотации, которые будут дополнительно добавлены к HPA развертывания Docservice. Если заданы, имеют приоритет над commonAnnotations | {} |
docservice.autoscaling.minReplicas | Минимальное количество реплик при автомасштабировании развертывания Docservice | 2 |
docservice.autoscaling.maxReplicas | Максимальное количество реплик при автомасштабировании развертывания Docservice | 4 |
docservice.autoscaling.targetCPU.enabled | Включает автомасштабирование развертывания Docservice по проценту использования ЦП | true |
docservice.autoscaling.targetCPU.utilizationPercentage | Целевой процент использования ЦП при автомасштабировании развертывания Docservice | 70 |
docservice.autoscaling.targetMemory.enabled | Включает автомасштабирование развертывания Docservice по проценту использования памяти | false |
docservice.autoscaling.targetMemory.utilizationPercentage | Целевой процент использования памяти при автомасштабировании развертывания Docservice | 70 |
docservice.autoscaling.customMetricsType | Пользовательские, дополнительные или внешние метрики автомасштабирования для развертывания Docservice | [] |
docservice.autoscaling.behavior | Настройка политик поведения масштабирования развертывания Docservice для полей scaleDown и scaleUp | {} |
proxy.accessLog | Определяет директиву формата access_log конфигурации nginx | off |
proxy.logFormat | Определяет формат записей лога с помощью текста и различных переменных | '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' |
proxy.gzipProxied | Определяет директиву gzip_proxied конфигурации nginx | off |
proxy.clientMaxBodySize | Определяет директиву client_max_body_size конфигурации nginx | 100m |
proxy.workerConnections | Определяет директиву worker_connections конфигурации nginx | 4096 |
proxy.secureLinkSecret | Определяет секрет для директивы secure_link_md5 конфигурации nginx. Если значение пустое, будет сгенерировано случайное значение, которое затем будет использоваться при обновлении. Если значение задано, будет использовано оно | "" |
proxy.secureLinkExistingSecret | Имя существующего секрета, используемого для secure_link. Если задано, имеет приоритет над proxy.secureLinkSecret | "" |
proxy.infoAllowedIP | Определяет IP-адреса для доступа к информационной странице | [] |
proxy.infoAllowedUser | Определяет имя пользователя для доступа к информационной странице. Если не задано, базовая аутентификация Nginx не будет применяться для доступа к информационной странице. Подробнее смотрите здесь | "" |
proxy.infoAllowedPassword | Определяет пароль пользователя для доступа к информационной странице. Используется, если задан proxy.infoAllowedUser. Если значение пустое, будет сгенерировано случайное значение, которое затем будет использоваться при обновлении. Если значение задано, будет использовано оно | "" |
proxy.infoAllowedSecretKeyName | Имя ключа, который содержит пароль пользователя для аутентификации на информационной странице. Используется, если задан proxy.infoAllowedUser | info-auth-password |
proxy.infoAllowedExistingSecret | Имя существующего секрета, используемого для пароля аутентификации на информационной странице. Используется, если задан proxy.infoAllowedUser. Должен содержать ключ, указанный в proxy.infoAllowedSecretKeyName. Если задано, имеет приоритет над proxy.infoAllowedPassword | "" |
proxy.welcomePage.enabled | Определяет, будет ли отображаться страница приветствия | true |
proxy.image.repository | Репозиторий образа контейнера Docservice Proxy* | onlyoffice/docs-proxy-de |
proxy.image.tag | Тег образа контейнера Docservice Proxy | 9.0.4-1 |
proxy.image.pullPolicy | Политика загрузки образа контейнера Docservice Proxy | IfNotPresent |
proxy.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Proxy | false |
proxy.lifecycleHooks | Определяет хуки жизненного цикла контейнера Proxy. Используется для запуска событий в определенные моменты жизненного цикла контейнера | {} |
proxy.resources.requests | Запрашиваемые ресурсы для контейнера Proxy | {} |
proxy.resources.limits | Ограничения ресурсов для контейнера Proxy | {} |
proxy.extraEnvVars | Массив с дополнительными переменными среды для контейнера Proxy | [] |
proxy.extraVolumeMounts | Массив с дополнительными точками монтирования томов для контейнера Proxy | [] |
proxy.readinessProbe.enabled | Включает readinessProbe для контейнера Proxy | true |
proxy.livenessProbe.enabled | Включает livenessProbe для контейнера Proxy | true |
proxy.startupProbe.enabled | Включает startupProbe для контейнера Proxy | true |
converter.annotations | Определяет аннотации, которые будут дополнительно добавлены к развертыванию (Deployment) Converter. Если заданы, имеют приоритет над commonAnnotations | {} |
converter.podAnnotations | Набор аннотаций, добавляемых к подам развертывания Converter | rollme: "{{ randAlphaNum 5 | quote }}" |
converter.replicas | Количество реплик Converter. Игнорируется, если включен параметр converter.autoscaling.enabled | 2 |
converter.updateStrategy.type | Тип стратегии обновления развертывания Converter | Recreate |
converter.customPodAntiAffinity | Запрет размещения подов Converter относительно других подов, содержащих указанные метки, на одном узле | {} |
converter.podAffinity | Определяет правила Pod affinity для размещения подов Converter по узлам относительно других подов | {} |
converter.nodeAffinity | Определяет правила Node affinity для размещения подов Converter по узлам | {} |
converter.nodeSelector | Метки узлов для назначения подов Converter. Если заданы, имеют приоритет над nodeSelector | {} |
converter.tolerations | Допуски (tolerations) для назначения подов Converter. Если заданы, имеют приоритет над tolerations | [] |
converter.terminationGracePeriodSeconds | Время на корректное завершение работы, в течение которого под Converter будет иметь статус Terminating | 30 |
converter.hostAliases | Добавляет дополнительные записи в файл hosts в контейнере Converter | [] |
converter.initContainers | Определяет контейнеры, которые запускаются перед контейнером Converter в поде развертывания Converter. Например, контейнер, который меняет владельца PersistentVolume | [] |
converter.image.repository | Репозиторий образа контейнера Converter* | onlyoffice/docs-converter-de |
converter.image.tag | Тег образа контейнера Converter | 9.0.4-1 |
converter.image.pullPolicy | Политика загрузки образа контейнера Converter | IfNotPresent |
converter.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Converter | false |
converter.lifecycleHooks | Определяет хуки жизненного цикла контейнера Converter. Используется для запуска событий в определенные моменты жизненного цикла контейнера | {} |
converter.resources.requests | Запрашиваемые ресурсы для контейнера Converter | {} |
converter.resources.limits | Ограничения ресурсов для контейнера Converter | {} |
converter.extraEnvVars | Массив с дополнительными переменными среды для контейнера Converter | [] |
converter.extraVolumes | Массив с дополнительными томами для пода Converter | [] |
converter.extraVolumeMounts | Массив с дополнительными точками монтирования томов для контейнера Converter | [] |
converter.autoscaling.enabled | Включает автомасштабирование развертывания Converter | false |
converter.autoscaling.annotations | Определяет аннотации, которые будут дополнительно добавлены к HPA развертывания Converter. Если заданы, имеют приоритет над commonAnnotations | {} |
converter.autoscaling.minReplicas | Минимальное количество реплик при автомасштабировании развертывания Converter | 2 |
converter.autoscaling.maxReplicas | Максимальное количество реплик при автомасштабировании развертывания Converter | 16 |
converter.autoscaling.targetCPU.enabled | Включает автомасштабирование развертывания Converter по проценту использования ЦП | true |
converter.autoscaling.targetCPU.utilizationPercentage | Целевой процент использования ЦП при автомасштабировании развертывания Converter | 70 |
converter.autoscaling.targetMemory.enabled | Включает автомасштабирование развертывания Converter по проценту использования памяти | false |
converter.autoscaling.targetMemory.utilizationPercentage | Целевой процент использования памяти при автомасштабировании развертывания Converter | 70 |
converter.autoscaling.customMetricsType | Пользовательские, дополнительные или внешние метрики автомасштабирования для развертывания Converter | [] |
converter.autoscaling.behavior | Настройка политик поведения масштабирования развертывания Converter для полей scaleDown и scaleUp | {} |
example.enabled | Включает установку Example | false |
example.annotations | Определяет аннотации, которые будут дополнительно добавлены к StatefulSet Example. Если заданы, имеют приоритет над commonAnnotations | {} |
example.podAnnotations | Набор аннотаций, добавляемых к поду Example | rollme: "{{ randAlphaNum 5 | quote }}" |
example.updateStrategy.type | Тип стратегии обновления StatefulSet Example | RollingUpdate |
example.customPodAntiAffinity | Запрет размещения пода Example относительно других подов, содержащих указанные метки, на одном узле | {} |
example.podAffinity | Определяет правила Pod affinity для размещения пода Example по узлам относительно других подов | {} |
example.nodeAffinity | Определяет правила Node affinity для размещения пода Example по узлам | {} |
example.nodeSelector | Метки узлов для назначения подов Example. Если заданы, имеют приоритет над nodeSelector | {} |
example.tolerations | Допуски (tolerations) для назначения подов Example. Если заданы, имеют приоритет над tolerations | [] |
example.terminationGracePeriodSeconds | Время на корректное завершение работы, в течение которого под Example будет иметь статус Terminating | 30 |
example.hostAliases | Добавляет дополнительные записи в файл hosts в контейнере Example | [] |
example.initContainers | Определяет контейнеры, которые запускаются перед контейнером Example в поде | [] |
example.image.repository | Имя образа контейнера Example | onlyoffice/docs-example |
example.image.tag | Тег образа контейнера Example | 9.0.4-1 |
example.image.pullPolicy | Политика загрузки образа контейнера Example | IfNotPresent |
example.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Example | false |
example.dsUrl | Внешний адрес ONLYOFFICE Docs. Его следует изменять, только если необходимо проверить работу конвертации в Example (например, http://<documentserver-address>/) | / |
example.resources.requests | Запрашиваемые ресурсы для контейнера Example | {} |
example.resources.limits | Ограничения ресурсов для контейнера Example | {} |
example.extraEnvVars | Массив с дополнительными переменными среды для контейнера Example | [] |
example.extraConf.configMap | Имя ConfigMap, содержащего json-файл, который переопределяет значения по умолчанию. Пример создания смотрите здесь | "" |
example.extraConf.filename | Имя json-файла, который содержит пользовательские значения. Должно совпадать с именем ключа key в example.extraConf.ConfigMap | local.json |
example.extraVolumes | Массив с дополнительными томами для пода Example | [] |
example.extraVolumeMounts | Массив с дополнительными точками монтирования томов для контейнера Example | [] |
jwt.enabled | Управляет включением валидации посредством JSON веб-токена в ONLYOFFICE Docs. Общий для входящих и исходящих запросов | true |
jwt.secret | Определяет секретный ключ для валидации JSON веб-токена в запросе к ONLYOFFICE Docs. Общий для входящих и исходящих запросов. Если значение пустое, будет сгенерировано случайное значение, которое затем будет использоваться при обновлении. Если значение задано, будет использовано оно | "" |
jwt.header | Определяет HTTP-заголовок, который будет использоваться для отправки JSON веб-токена. Общий для входящих и исходящих запросов | Authorization |
jwt.inBody | Управляет включением валидации посредством токена в теле запроса к ONLYOFFICE Docs | false |
jwt.inbox | Параметры валидации JSON веб-токена только для входящих запросов. Если не указаны, используются значения параметров общего jwt | {} |
jwt.outbox | Параметры валидации JSON веб-токена только для исходящих запросов. Если не указаны, используются значения параметров общего jwt | {} |
jwt.existingSecret | Имя существующего секрета, содержащего переменные для jwt. Если не указано, будет создан секрет с именем jwt | "" |
service.existing | Имя существующей службы для ONLYOFFICE Docs. Если не указано, будет создана служба с именем documentserver | "" |
service.annotations | Набор аннотаций, добавляемых к службе ONLYOFFICE Docs. Если задан, имеет приоритет над commonAnnotations | {} |
service.type | Тип службы ONLYOFFICE Docs | ClusterIP |
service.port | Порт службы ONLYOFFICE Docs | 8888 |
service.sessionAffinity | Session Affinity для службы ONLYOFFICE Docs. Если не задано, по умолчанию будет установлено значение None | "" |
service.sessionAffinityConfig | Конфигурация Session Affinity для службы ONLYOFFICE Docs. Используется, если задан service.sessionAffinity | {} |
ingress.enabled | Включает создание ingress для ONLYOFFICE Docs | false |
ingress.annotations | Набор аннотаций, добавляемых к Ingress. Если задан, имеет приоритет над commonAnnotations | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
ingress.ingressClassName | Используется для ссылки на IngressClass, который должен использоваться для реализации этого Ingress | nginx |
ingress.controllerName | Используется для различения контроллеров с одинаковым IngressClassName, но от разных поставщиков | ingress-nginx |
ingress.host | Имя хоста Ingress для ingress ONLYOFFICE Docs | "" |
ingress.tenants | Имена хостов Ingress, если необходимо использовать более одного имени. Например, для мультитенантности. Если заданы, имеют приоритет над ingress.host. Если для ingress.ssl.enabled задано значение true, предполагается, что сертификат для всех указанных доменов хранится в секрете ingress.ssl.secret | [] |
ingress.ssl.enabled | Включает SSL для ingress ONLYOFFICE Docs | false |
ingress.ssl.secret | Имя секрета для SSL, монтируемого в Ingress | tls |
ingress.path | Указывает путь, по которому будет доступен ONLYOFFICE Docs | / |
ingress.pathType | Указывает тип пути для ресурса ingress ONLYOFFICE Docs. Допустимые значения: Exact, Prefix или ImplementationSpecific | ImplementationSpecific |
ingress.letsencrypt.enabled | Включает создание запроса сертификата в Let's Encrypt. Используется, если для ingress.enabled задано значение true | false |
ingress.letsencrypt.clusterIssuerName | Имя ClusterIssuer | letsencrypt-prod |
ingress.letsencrypt.email | Ваш адрес электронной почты, используемый для регистрации ACME | "" |
ingress.letsencrypt.server | Адрес сервера Let's Encrypt, на который будут отправляться запросы сертификатов | https://acme-v02.api.letsencrypt.org/directory |
ingress.letsencrypt.secretName | Имя секрета, используемого для хранения закрытого ключа учетной записи ACME | letsencrypt-prod-private-key |
openshift.route.enabled | Включает создание OpenShift Route для ONLYOFFICE Docs | false |
openshift.route.annotations | Набор аннотаций, добавляемых к OpenShift Route. Если задан, имеет приоритет над commonAnnotations | {} |
openshift.route.host | Имя хоста OpenShift Route для маршрута ONLYOFFICE Docs | "" |
openshift.route.path | Указывает путь, по которому будет доступен ONLYOFFICE Docs | / |
openshift.route.wildcardPolicy | Политика обработки поддоменов с подстановочными знаками в OpenShift Route. Допустимые значения: None, Subdomain | None |
grafana.enabled | Включает установку ресурсов, необходимых для визуализации метрик в Grafana | false |
grafana.namespace | Имя пространства имен, в котором будут развернуты компоненты RBAC и ресурсы Grafana. Если не задано, имя будет взято из namespaceOverride, если задано, или из .Release.Namespace | "" |
grafana.ingress.enabled | Включает создание ingress для Grafana. Используется, если для grafana.enabled задано значение true и вы хотите использовать Nginx Ingress для доступа к Grafana | false |
grafana.ingress.annotations | Набор аннотаций, добавляемых к Ingress Grafana. Если задан, имеет приоритет над commonAnnotations | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
grafana.dashboard.enabled | Включает установку готовых панелей мониторинга Grafana. Используется, если для grafana.enabled задано значение true | false |
podSecurityContext.enabled | Включает контекст безопасности для подов | false |
podSecurityContext.converter.fsGroup | Определяет идентификатор группы, на который меняются владелец и права доступа для всех файлов в томах при монтировании в под Converter | 101 |
podSecurityContext.docservice.fsGroup | Определяет идентификатор группы, на который меняются владелец и права доступа для всех файлов в томах при монтировании в под Docservice | 101 |
podSecurityContext.jobs.fsGroup | Определяет идентификатор группы, на который меняются владелец и права доступа для всех файлов в томах при монтировании в поды, создаваемые заданиями (Jobs) | 101 |
podSecurityContext.example.fsGroup | Определяет идентификатор группы, на который меняются владелец и права доступа для всех файлов в томах при монтировании в под Example | 1001 |
podSecurityContext.tests.fsGroup | Определяет идентификатор группы, на который меняются владелец и права доступа для всех файлов в томах при монтировании в тестовый под | 101 |
webProxy.enabled | Указывает, используется ли в вашей сети веб-прокси для доступа подов кластера k8s в Интернет | false |
webProxy.http | Адрес веб-прокси для трафика HTTP | http://proxy.example.com |
webProxy.https | Адрес веб-прокси для трафика HTTPS | https://proxy.example.com |
webProxy.noProxy | Шаблоны IP-адресов, имен служб k8s или доменных имен, которые не должны использовать веб-прокси | localhost,127.0.0.1,docservice |
upgrade.job.enabled | Включает выполнение задания pre-upgrade перед обновлением ONLYOFFICE Docs | true |
upgrade.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) pre-upgrade. Если заданы, имеют приоритет над commonAnnotations | {} |
upgrade.job.podAnnotations | Набор аннотаций, добавляемых к поду pre-upgrade | {} |
upgrade.job.customPodAntiAffinity | Запрет размещения пода задания pre-upgrade относительно других подов, содержащих указанные метки, на одном узле | {} |
upgrade.job.podAffinity | Определяет правила Pod affinity для размещения пода задания pre-upgrade по узлам относительно других подов | {} |
upgrade.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания pre-upgrade по узлам | {} |
upgrade.job.nodeSelector | Метки узлов для назначения пода задания pre-upgrade. Если заданы, имеют приоритет над nodeSelector | {} |
upgrade.job.tolerations | Допуски (tolerations) для назначения пода задания pre-upgrade. Если заданы, имеют приоритет над tolerations | [] |
upgrade.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером pre-upgrade в поде | [] |
upgrade.job.image.repository | Репозиторий образа задания upgrade | onlyoffice/docs-utils |
upgrade.job.image.tag | Тег образа задания upgrade | 9.0.4-1 |
upgrade.job.image.pullPolicy | Политика загрузки образа задания upgrade | IfNotPresent |
upgrade.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера pre-upgrade | false |
upgrade.job.resources.requests | Запрашиваемые ресурсы для контейнера задания pre-upgrade | {} |
upgrade.job.resources.limits | Ограничения ресурсов для контейнера задания pre-upgrade | {} |
upgrade.existingConfigmap.tblRemove.name | Имя существующего ConfigMap, который содержит sql-файл для удаления таблиц из базы данных | remove-db-scripts |
upgrade.existingConfigmap.tblRemove.keyName | Имя sql-файла, содержащего инструкции по удалению таблиц из базы данных. Должно совпадать с именем ключа key в upgrade.existingConfigmap.tblRemove.name | removetbl.sql |
upgrade.existingConfigmap.tblCreate.name | Имя существующего ConfigMap, который содержит sql-файл для создания таблиц в базе данных | init-db-scripts |
upgrade.existingConfigmap.tblCreate.keyName | Имя sql-файла, содержащего инструкции по созданию таблиц в базе данных. Должно совпадать с именем ключа key в upgrade.existingConfigmap.tblCreate.name | createdb.sql |
upgrade.existingConfigmap.dsStop | Имя существующего ConfigMap, который содержит скрипт обновления ONLYOFFICE Docs. Если задано, четыре предыдущих параметра игнорируются. Должен содержать ключ stop.sh | "" |
rollback.job.enabled | Включает выполнение задания pre-rollback перед откатом ONLYOFFICE Docs | true |
rollback.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) pre-rollback. Если заданы, имеют приоритет над commonAnnotations | {} |
rollback.job.podAnnotations | Набор аннотаций, добавляемых к поду pre-rollback | {} |
rollback.job.customPodAntiAffinity | Запрет размещения пода задания pre-rollback относительно других подов, содержащих указанные метки, на одном узле | {} |
rollback.job.podAffinity | Определяет правила Pod affinity для размещения пода задания pre-rollback по узлам относительно других подов | {} |
rollback.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания pre-rollback по узлам | {} |
rollback.job.nodeSelector | Метки узлов для назначения пода задания pre-rollback. Если заданы, имеют приоритет над nodeSelector | {} |
rollback.job.tolerations | Допуски (tolerations) для назначения пода задания pre-rollback. Если заданы, имеют приоритет над tolerations | [] |
rollback.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером pre-rollback в поде | [] |
rollback.job.image.repository | Репозиторий образа задания rollback | onlyoffice/docs-utils |
rollback.job.image.tag | Тег образа задания rollback | 9.0.4-1 |
rollback.job.image.pullPolicy | Политика загрузки образа задания rollback | IfNotPresent |
rollback.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера pre-rollback | false |
rollback.job.resources.requests | Запрашиваемые ресурсы для контейнера задания rollback | {} |
rollback.job.resources.limits | Ограничения ресурсов для контейнера задания rollback | {} |
rollback.existingConfigmap.tblRemove.name | Имя существующего ConfigMap, который содержит sql-файл для удаления таблиц из базы данных | remove-db-scripts |
rollback.existingConfigmap.tblRemove.keyName | Имя sql-файла, содержащего инструкции по удалению таблиц из базы данных. Должно совпадать с именем ключа key в rollback.existingConfigmap.tblRemove.name | removetbl.sql |
rollback.existingConfigmap.tblCreate.name | Имя существующего ConfigMap, который содержит sql-файл для создания таблиц в базе данных | init-db-scripts |
rollback.existingConfigmap.tblCreate.keyName | Имя sql-файла, содержащего инструкции по созданию таблиц в базе данных. Должно совпадать с именем ключа key в rollback.existingConfigmap.tblCreate.name | createdb.sql |
rollback.existingConfigmap.dsStop | Имя существующего ConfigMap, который содержит скрипт отката ONLYOFFICE Docs. Если задано, четыре предыдущих параметра игнорируются. Должен содержать ключ stop.sh | "" |
delete.job.enabled | Включает выполнение задания pre-delete перед удалением ONLYOFFICE Docs | true |
delete.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) pre-delete. Если заданы, имеют приоритет над commonAnnotations | {} |
delete.job.podAnnotations | Набор аннотаций, добавляемых к поду pre-delete | {} |
delete.job.customPodAntiAffinity | Запрет размещения пода задания pre-delete относительно других подов, содержащих указанные метки, на одном узле | {} |
delete.job.podAffinity | Определяет правила Pod affinity для размещения пода задания pre-delete по узлам относительно других подов | {} |
delete.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания pre-delete по узлам | {} |
delete.job.nodeSelector | Метки узлов для назначения пода задания pre-delete. Если заданы, имеют приоритет над nodeSelector | {} |
delete.job.tolerations | Допуски (tolerations) для назначения пода задания pre-delete. Если заданы, имеют приоритет над tolerations | [] |
delete.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером pre-delete в поде | [] |
delete.job.image.repository | Репозиторий образа задания delete | onlyoffice/docs-utils |
delete.job.image.tag | Тег образа задания delete | 9.0.4-1 |
delete.job.image.pullPolicy | Политика загрузки образа задания delete | IfNotPresent |
delete.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера pre-delete | false |
delete.job.resources.requests | Запрашиваемые ресурсы для контейнера задания delete | {} |
delete.job.resources.limits | Ограничения ресурсов для контейнера задания delete | {} |
delete.existingConfigmap.tblRemove.name | Имя существующего ConfigMap, который содержит sql-файл для удаления таблиц из базы данных | remove-db-scripts |
delete.existingConfigmap.tblRemove.keyName | Имя sql-файла, содержащего инструкции по удалению таблиц из базы данных. Должно совпадать с именем ключа key в delete.existingConfigmap.tblRemove.name | removetbl.sql |
delete.existingConfigmap.dsStop | Имя существующего ConfigMap, который содержит скрипт удаления ONLYOFFICE Docs. Если задано, два предыдущих параметра игнорируются. Должен содержать ключ stop.sh | "" |
install.job.enabled | Включает выполнение задания pre-install перед установкой ONLYOFFICE Docs | true |
install.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) pre-install. Если заданы, имеют приоритет над commonAnnotations | {} |
install.job.podAnnotations | Набор аннотаций, добавляемых к поду pre-install | {} |
install.job.customPodAntiAffinity | Запрет размещения пода задания pre-install относительно других подов, содержащих указанные метки, на одном узле | {} |
install.job.podAffinity | Определяет правила Pod affinity для размещения пода задания pre-install по узлам относительно других подов | {} |
install.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания pre-install по узлам | {} |
install.job.nodeSelector | Метки узлов для назначения пода задания pre-install. Если заданы, имеют приоритет над nodeSelector | {} |
install.job.tolerations | Допуски (tolerations) для назначения пода задания pre-install. Если заданы, имеют приоритет над tolerations | [] |
install.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером pre-install в поде | [] |
install.job.image.repository | Репозиторий образа ONLYOFFICE Docs задания pre-install | onlyoffice/docs-utils |
install.job.image.tag | Тег образа ONLYOFFICE Docs задания pre-install | 9.0.4-1 |
install.job.image.pullPolicy | Политика загрузки образа ONLYOFFICE Docs задания pre-install | IfNotPresent |
install.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера pre-install | false |
install.job.resources.requests | Запрашиваемые ресурсы для контейнера задания pre-install | {} |
install.job.resources.limits | Ограничения ресурсов для контейнера задания pre-install | {} |
install.existingConfigmap.tblCreate.name | Имя существующего ConfigMap, который содержит sql-файл для создания таблиц в базе данных | init-db-scripts |
install.existingConfigmap.tblCreate.keyName | Имя sql-файла, содержащего инструкции по созданию таблиц в базе данных. Должно совпадать с именем ключа key в install.existingConfigmap.tblCreate.name | createdb.sql |
install.existingConfigmap.initdb | Имя существующего ConfigMap, который содержит скрипт initdb. Если задано, два предыдущих параметра игнорируются. Должен содержать ключ initdb.sh | "" |
clearCache.job.enabled | Включает выполнение задания Clear Cache после обновления ONLYOFFICE Docs. Задание Clear Cache использует хук post-upgrade, который выполняется после обновления всех ресурсов в Kubernetes. Оно очищает каталог Cache | true |
clearCache.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) Clear Cache. Если заданы, имеют приоритет над commonAnnotations | {} |
clearCache.job.podAnnotations | Набор аннотаций, добавляемых к поду Clear Cache | {} |
clearCache.job.customPodAntiAffinity | Запрет размещения пода задания Clear Cache относительно других подов, содержащих указанные метки, на одном узле | {} |
clearCache.job.podAffinity | Определяет правила Pod affinity для размещения пода задания Clear Cache по узлам относительно других подов | {} |
clearCache.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания Clear Cache по узлам | {} |
clearCache.job.nodeSelector | Метки узлов для назначения пода задания Clear Cache. Если заданы, имеют приоритет над nodeSelector | {} |
clearCache.job.tolerations | Допуски (tolerations) для назначения пода задания Clear Cache. Если заданы, имеют приоритет над tolerations | [] |
clearCache.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером Clear Cache в поде | [] |
clearCache.job.image.repository | Репозиторий образа ONLYOFFICE Docs задания Clear Cache | onlyoffice/docs-utils |
clearCache.job.image.tag | Тег образа ONLYOFFICE Docs задания Clear Cache | 9.0.4-1 |
clearCache.job.image.pullPolicy | Политика загрузки образа ONLYOFFICE Docs задания Clear Cache | IfNotPresent |
clearCache.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Clear Cache | false |
clearCache.job.resources.requests | Запрашиваемые ресурсы для контейнера задания Clear Cache | {} |
clearCache.job.resources.limits | Ограничения ресурсов для контейнера задания Clear Cache | {} |
clearCache.existingConfigmap.name | Имя существующего ConfigMap, который содержит пользовательский скрипт очистки каталога Cache. Если задано, ConfigMap по умолчанию не будет создан | "" |
clearCache.existingConfigmap.keyName | Имя скрипта, содержащего инструкции по очистке каталога Cache. Должно совпадать с именем ключа key в clearCache.existingConfigmap.name, если используется пользовательский скрипт | clearCache.sh |
grafanaDashboard.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) Grafana Dashboard. Если заданы, имеют приоритет над commonAnnotations | {} |
grafanaDashboard.job.podAnnotations | Набор аннотаций, добавляемых к поду Grafana Dashboard | {} |
grafanaDashboard.job.customPodAntiAffinity | Запрет размещения пода задания Grafana Dashboard относительно других подов, содержащих указанные метки, на одном узле | {} |
grafanaDashboard.job.podAffinity | Определяет правила Pod affinity для размещения пода задания Grafana Dashboard по узлам относительно других подов | {} |
grafanaDashboard.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания Grafana Dashboard по узлам | {} |
grafanaDashboard.job.nodeSelector | Метки узлов для назначения пода задания Grafana Dashboard. Если заданы, имеют приоритет над nodeSelector | {} |
grafanaDashboard.job.tolerations | Допуски (tolerations) для назначения пода задания Grafana Dashboard. Если заданы, имеют приоритет над tolerations | [] |
grafanaDashboard.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером Grafana Dashboard в поде | [] |
grafanaDashboard.job.image.repository | Репозиторий образа ONLYOFFICE Docs задания Grafana Dashboard | onlyoffice/docs-utils |
grafanaDashboard.job.image.tag | Тег образа ONLYOFFICE Docs задания Grafana Dashboard | 9.0.4-1 |
grafanaDashboard.job.image.pullPolicy | Политика загрузки образа ONLYOFFICE Docs задания Grafana Dashboard | IfNotPresent |
grafanaDashboard.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Grafana Dashboard | false |
grafanaDashboard.job.resources.requests | Запрашиваемые ресурсы для контейнера задания Grafana Dashboard | {} |
grafanaDashboard.job.resources.limits | Ограничения ресурсов для контейнера задания Grafana Dashboard | {} |
wopiKeysGeneration.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) Wopi Keys Generation. Если заданы, имеют приоритет над commonAnnotations | {} |
wopiKeysGeneration.job.podAnnotations | Набор аннотаций, добавляемых к поду Wopi Keys Generation | {} |
wopiKeysGeneration.job.customPodAntiAffinity | Запрет размещения пода задания Wopi Keys Generation относительно других подов, содержащих указанные метки, на одном узле | {} |
wopiKeysGeneration.job.podAffinity | Определяет правила Pod affinity для размещения пода задания Wopi Keys Generation по узлам относительно других подов | {} |
wopiKeysGeneration.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания Wopi Keys Generation по узлам | {} |
wopiKeysGeneration.job.nodeSelector | Метки узлов для назначения пода задания Wopi Keys Generation. Если заданы, имеют приоритет над nodeSelector | {} |
wopiKeysGeneration.job.tolerations | Допуски (tolerations) для назначения пода задания Wopi Keys Generation. Если заданы, имеют приоритет над tolerations | [] |
wopiKeysGeneration.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером Wopi Keys Generation в поде | [] |
wopiKeysGeneration.job.image.repository | Репозиторий образа ONLYOFFICE Docs задания Wopi Keys Generation | onlyoffice/docs-utils |
wopiKeysGeneration.job.image.tag | Тег образа ONLYOFFICE Docs задания Wopi Keys Generation | 9.0.4-1 |
wopiKeysGeneration.job.image.pullPolicy | Политика загрузки образа ONLYOFFICE Docs задания Wopi Keys Generation | IfNotPresent |
wopiKeysGeneration.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Wopi Keys Generation | false |
wopiKeysGeneration.job.resources.requests | Запрашиваемые ресурсы для контейнера задания Wopi Keys Generation | {} |
wopiKeysGeneration.job.resources.limits | Ограничения ресурсов для контейнера задания Wopi Keys Generation | {} |
wopiKeysDeletion.job.enabled | Включает выполнение задания Wopi Keys Deletion перед удалением ONLYOFFICE Docs. Оно удаляет автоматически сгенерированные секреты WOPI. Выполняется, если для wopi.enabled, wopi.keys.generation и wopiKeysDeletion.job.enabled задано значение true | true |
wopiKeysDeletion.job.annotations | Определяет аннотации, которые будут дополнительно добавлены к заданию (Job) Wopi Keys Deletion. Если заданы, имеют приоритет над commonAnnotations | {} |
wopiKeysDeletion.job.podAnnotations | Набор аннотаций, добавляемых к поду Wopi Keys Deletion | {} |
wopiKeysDeletion.job.customPodAntiAffinity | Запрет размещения пода задания Wopi Keys Deletion относительно других подов, содержащих указанные метки, на одном узле | {} |
wopiKeysDeletion.job.podAffinity | Определяет правила Pod affinity для размещения пода задания Wopi Keys Deletion по узлам относительно других подов | {} |
wopiKeysDeletion.job.nodeAffinity | Определяет правила Node affinity для размещения пода задания Wopi Keys Deletion по узлам | {} |
wopiKeysDeletion.job.nodeSelector | Метки узлов для назначения пода задания Wopi Keys Deletion. Если заданы, имеют приоритет над nodeSelector | {} |
wopiKeysDeletion.job.tolerations | Допуски (tolerations) для назначения пода задания Wopi Keys Deletion. Если заданы, имеют приоритет над tolerations | [] |
wopiKeysDeletion.job.initContainers | Определяет контейнеры, которые запускаются перед контейнером Wopi Keys Deletion в поде | [] |
wopiKeysDeletion.job.image.repository | Репозиторий образа ONLYOFFICE Docs задания Wopi Keys Deletion | onlyoffice/docs-utils |
wopiKeysDeletion.job.image.tag | Тег образа ONLYOFFICE Docs задания Wopi Keys Deletion | 9.0.4-1 |
wopiKeysDeletion.job.image.pullPolicy | Политика загрузки образа ONLYOFFICE Docs задания Wopi Keys Deletion | IfNotPresent |
wopiKeysDeletion.job.containerSecurityContext.enabled | Включает контекст безопасности для контейнера Wopi Keys Deletion | false |
wopiKeysDeletion.job.resources.requests | Запрашиваемые ресурсы для контейнера задания Wopi Keys Deletion | {} |
wopiKeysDeletion.job.resources.limits | Ограничения ресурсов для контейнера задания Wopi Keys Deletion | {} |
tests.enabled | Включает создание ресурсов, необходимых для тестирования запуска ONLYOFFICE Docs и доступности подключенных зависимостей. Эти ресурсы будут использоваться при выполнении команды helm test | true |
tests.annotations | Определяет аннотации, которые будут дополнительно добавлены к тестовому поду. Если заданы, имеют приоритет над commonAnnotations | {} |
tests.customPodAntiAffinity | Запрет размещения тестового пода относительно других подов, содержащих указанные метки, на одном узле | {} |
tests.podAffinity | Определяет правила Pod affinity для размещения тестового пода по узлам относительно других подов | {} |
tests.nodeAffinity | Определяет правила Node affinity для размещения тестового пода по узлам | {} |
tests.nodeSelector | Метки узлов для назначения тестового пода. Если заданы, имеют приоритет над nodeSelector | {} |
tests.tolerations | Допуски (tolerations) для назначения тестового пода. Если заданы, имеют приоритет над tolerations | [] |
tests.initContainers | Определяет контейнеры, которые запускаются перед тестовым контейнером в поде | [] |
tests.image.repository | Имя образа тестового контейнера | onlyoffice/docs-utils |
tests.image.tag | Тег образа тестового контейнера | 9.0.4-1 |
tests.image.pullPolicy | Политика загрузки образа тестового контейнера | IfNotPresent |
tests.containerSecurityContext.enabled | Включает контекст безопасности для тестового контейнера | false |
tests.resources.requests | Запрашиваемые ресурсы для тестового контейнера | {} |
tests.resources.limits | Ограничения ресурсов для тестового контейнера | {} |
-
*Примечание: в значении репозитория образа указан префикс -de, который обозначает тип решения. Возможные варианты:
-de. Для коммерческой версии Developer Edition-ee. Для коммерческой версии Enterprise Edition
Значение этого параметра по умолчанию относится к ONLYOFFICE Document Server Developer Edition. Чтобы узнать больше об этой версии и сравнить ее с другими версиями, обратитесь к сравнительной таблице на этой странице.
5. Подробности настройки и установки
-
Развертывание примера (необязательно)
ВажноЭто необязательный шаг. Его можно полностью пропустить, если вам не нужно развертывать пример.
Чтобы развернуть пример, задайте для параметра
example.enabledзначение true:$ helm install documentserver onlyoffice/docs --set example.enabled=true -
Развертывание метрик (необязательно)
ВажноЭто необязательный шаг. Его можно полностью пропустить, если вам не нужно развертывать метрики.
Чтобы развернуть метрики, задайте для
metrics.enabledзначение true:$ helm install documentserver onlyoffice/docs --set metrics.enabled=trueЕсли вы хотите использовать Grafana для визуализации метрик, задайте для
grafana.enabledзначениеtrue. Если вы хотите использовать Nginx Ingress для доступа к Grafana, задайте дляgrafana.ingress.enabledзначениеtrue:$ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true -
Публикация ONLYOFFICE Docs
-
Публикация ONLYOFFICE Docs через Service (только HTTP)
примечаниеПропустите этот шаг, если вы собираетесь публиковать ONLYOFFICE Docs по протоколу HTTPS.
При этом типе публикации создается балансировщик нагрузки для доступа к ONLYOFFICE Docs. Используйте этот тип, если вы используете внешнее завершение TLS и в кластере k8s нет другого веб-приложения.
Чтобы опубликовать ONLYOFFICE Docs через службу, задайте для параметра
service.typeзначение LoadBalancer:$ helm install documentserver onlyoffice/docs --set service.type=LoadBalancer,service.port=80Выполните следующую команду, чтобы получить IP-адрес службы
documentserver:$ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"После этого ONLYOFFICE Docs будет доступен по адресу
http://DOCUMENTSERVER-SERVICE-IP/.Если IP-адрес службы пуст, попробуйте получить имя хоста службы
documentserver:$ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"В этом случае ONLYOFFICE Docs будет доступен по адресу
http://DOCUMENTSERVER-SERVICE-HOSTNAME/. -
Публикация ONLYOFFICE Docs через Ingress
Сначала установите контроллер Kubernetes Nginx Ingress:
$ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2примечаниеЧтобы включить предоставление метрик ingress-nginx для Prometheus, выполните:
$ helm install nginx-ingress -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/ingress_values.yaml ingress-nginx/ingress-nginxПодробнее об установке Nginx Ingress с помощью Helm читайте здесь.
Затем выберите способ публикации:
-
По протоколу HTTP
примечаниеПропустите этот шаг, если вы собираетесь публиковать ONLYOFFICE Docs по протоколу HTTPS.
$ helm install documentserver onlyoffice/docs --set ingress.enabled=trueПолучите IP-адрес ingress:
$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"ONLYOFFICE Docs будет доступен по адресу
http://DOCUMENTSERVER-INGRESS-IP/(или используйте имя хоста, если IP-адрес пуст). -
По протоколу HTTPS (завершение TLS)
Создайте секрет
tlsс вашим SSL-сертификатом:$ kubectl create secret generic tls \--from-file=./tls.crt \--from-file=./tls.key$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.comСвяжите IP-адрес или имя хоста ingress со своим доменным именем у DNS-провайдера. После этого ONLYOFFICE Docs будет доступен по адресу
https://your-domain-name/. -
По протоколу HTTPS с помощью Let's Encrypt
$ helm repo add jetstack https://charts.jetstack.io$ helm repo update$ helm install cert-manager --version v1.17.4 jetstack/cert-manager \--namespace cert-manager \--create-namespace \--set crds.enabled=true \--set crds.keep=falseЗатем установите или обновите ONLYOFFICE Docs, задав для
ingress.enabled,ingress.ssl.enabled,ingress.letsencrypt.enabledзначениеtrueи указав свои значения дляingress.letsencrypt.emailиingress.host(илиingress.tenantsдля нескольких доменов). -
По виртуальному пути
Задайте параметры
ingress.enabled,ingress.hostиingress.path:$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.host=your-domain-name,ingress.path=/docsПоддерживаемые контроллеры ingress: Ingress NGINX by Kubernetes, NGINX Ingress by NGINX, HAProxy Ingress by HAProxy.
Для Ingress NGINX by Kubernetes добавьте к
ingress.pathшаблон(/|$)(.*), например,/docs(/|$)(.*).
-
-
Публикация ONLYOFFICE Docs через маршрут в OpenShift
$ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docsДля завершения TLS добавьте сертификаты в маршрут вручную через веб-консоль OpenShift.
-
6. Масштабируйте ONLYOFFICE Docs
Это необязательный шаг. Его можно полностью пропустить, если вы хотите использовать параметры развертывания по умолчанию.
-
Горизонтальное автомасштабирование подов
Можно включить автомасштабирование, чтобы количество реплик развертываний
docserviceиconverterрассчитывалось автоматически на основе значений и типа метрик.Для метрик ресурсов должен быть зарегистрирован API
metrics.k8s.io, который обычно предоставляется metrics-server. Его можно запустить как дополнение кластера.Чтобы включить HPA для развертывания
docservice, укажите параметрdocservice.autoscaling.enabled=true. Аналогично, чтобы включить HPA для развертыванияconverter, укажитеconverter.autoscaling.enabled=true. В обоих случаях соответствующий параметрreplicasигнорируется, и количеством реплик управляет HPA.Подробнее о горизонтальном автомасштабировании подов читайте здесь. Другие настраиваемые параметры автомасштабирования приведены в таблице Параметры.
-
Ручное масштабирование
По умолчанию развертывания
docserviceиconverterсостоят из 2 подов каждое.Чтобы масштабировать развертывание
docservice, выполните команду:$ kubectl scale -n default deployment docservice --replicas=POD_COUNTЧтобы масштабировать развертывание
converter, выполните команду:$ kubectl scale -n default deployment converter --replicas=POD_COUNT
7. Обновите ONLYOFFICE Docs
Чтобы выполнить обновление, задайте параметры обновления. Например:
$ helm upgrade documentserver onlyoffice/docs \
--set docservice.image.tag=[version]
Также необходимо указать параметры, которые были заданы при установке.
Или измените файл values.yaml и выполните команду:
$ helm upgrade documentserver -f values.yaml onlyoffice/docs
Команда helm upgrade запускает хук, который останавливает ONLYOFFICE Docs и очищает базу данных. Время выполнения хука по умолчанию — 300 с. Чтобы его изменить, выполните команду:
$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
При обновлении в частном кластере k8s за веб-прокси или без доступа к Интернету ознакомьтесь с примечаниями ниже.
Чтобы обновить любой параметр, кроме версии ONLYOFFICE Docs, выполните helm upgrade без хуков:
$ helm upgrade documentserver onlyoffice/docs --set jwt.enabled=false --no-hooks
Чтобы откатить обновления, выполните команду:
$ helm rollback documentserver
При откате в частном кластере k8s ознакомьтесь с примечаниями ниже.
8. Остановите ONLYOFFICE Docs
Это необязательный шаг.
Чтобы выполнить остановку, выполните следующую команду:
$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n <NAMESPACE>
Где <NAMESPACE> — это пространство имен, в котором установлен ONLYOFFICE Docs. Если не указано, используется default. Например:
$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n onlyoffice
После успешного выполнения пода shutdown-ds удалите задание (Job):
$ kubectl delete job shutdown-ds -n <NAMESPACE>
Чтобы перезапустить ONLYOFFICE Docs после остановки, перезапустите поды docservice и converter:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
9. Обновите лицензию ONLYOFFICE Docs
Это необязательный шаг.
Начиная с версии v5.1.1, лицензию можно обновить, пересоздав секрет без перезагрузки подов. Чтобы обновить лицензию:
-
Поместите новый файл
license.licв каталог. -
Выполните следующие команды:
$ kubectl delete secret [SECRET_LICENSE_NAME] -n <NAMESPACE>$ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic -n <NAMESPACE>Где SECRET_LICENSE_NAME — это имя существующего секрета с лицензией.
Сервер документов автоматически перечитает новую лицензию.
Перезапустите поды docservice и converter:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. Тестирование установки ONLYOFFICE Docs
Это необязательный шаг.
Проверьте доступность ONLYOFFICE Docs и доступ к подключенным зависимостям:
$ helm test documentserver -n <NAMESPACE>
Вывод должен содержать:
Phase: Succeeded
Чтобы просмотреть лог теста, выполните команду:
$ kubectl logs -f test-ds -n <NAMESPACE>
После тестирования удалите под test-ds:
$ kubectl delete pod test-ds -n <NAMESPACE>
Это тестирование носит исключительно информационный характер и не может гарантировать 100% доступность. Подробную информацию смотрите в логах приложения.
11. Запуск заданий в частном кластере k8s
Это необязательный шаг. Его можно полностью пропустить, если у вашего кластера есть неограниченный доступ к Интернету.
Начиная с версии Helm-чарта 6.1.0, SQL-скрипты, необходимые для инициализации базы данных, входят в образ docs-utils, поэтому заданиям не нужен доступ к Интернету для их скачивания.
Если вы сопоставляете пользовательский скрипт, которому требуется доступ к Интернету, с ConfigMap, указанным в параметре install.existingConfigmap.initdb или upgrade|rollback|delete.existingConfigmap.dsStop, а в вашей сети доступен веб-прокси, задайте webProxy.enabled=true и соответствующие параметры веб-прокси, чтобы контейнеры подов могли получить доступ к Интернету.
12. Доступ к информационной странице
Это необязательный шаг.
По умолчанию доступ к странице /info ограничен. Чтобы разрешить доступ, укажите IP-адреса или подсети с помощью параметра proxy.infoAllowedIP. Обратите внимание, что из-за особенностей сети Kubernetes фактическими клиентами обычно являются адреса подов, узлов или балансировщика нагрузки, а не исходный IP-адрес пользователя.
Можно дополнительно ограничить доступ с помощью базовой аутентификации Nginx, задав параметр proxy.infoAllowedUser и пароль с помощью proxy.infoAllowedPassword. Кроме того, можно использовать существующий секрет, задав proxy.infoAllowedExistingSecret.
Использование Grafana для визуализации метрик
Это необязательный раздел. Его можно полностью пропустить, если вы не хотите устанавливать Grafana.
1. Разверните Grafana
Предполагается, что шаг 6.2 (Установка Prometheus) уже выполнен.
-
Развертывание Grafana без готовых панелей мониторинга
примечаниеПропустите этот шаг, если вы хотите развернуть Grafana с готовыми панелями мониторинга.
$ helm install grafana --version 12.1.8 bitnami/grafana \--set service.ports.grafana=80 \--set config.useGrafanaIniFile=true \--set config.grafanaIniConfigMap=grafana-ini \--set datasources.secretName=grafana-datasource \--set resourcesPreset=none \--set image.repository=bitnamilegacy/grafana \--set image.tag=12.1.1-debian-12-r1 \--set global.security.allowInsecureImages=true -
Развертывание Grafana с готовыми панелями мониторинга
-
Установите готовые панели мониторинга Grafana
Задайте для параметров
grafana.enabledиgrafana.dashboard.enabledзначениеtrue. Если ONLYOFFICE Docs уже установлен, выполните команду:helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=trueЭта команда скачивает готовые панели мониторинга в формате JSON с сайта Grafana, вносит в них необходимые изменения и создает из них ConfigMap. Также добавляется панель мониторинга для метрик ONLYOFFICE Docs (предполагается, что шаг 6 (Развертывание StatsD exporter) уже выполнен).
-
Установите Grafana
$ helm install grafana --version 12.1.8 bitnami/grafana \--set service.ports.grafana=80 \--set config.useGrafanaIniFile=true \--set config.grafanaIniConfigMap=grafana-ini \--set datasources.secretName=grafana-datasource \--set resourcesPreset=none \--set image.repository=bitnamilegacy/grafana \--set image.tag=12.1.1-debian-12-r1 \--set global.security.allowInsecureImages=true \--set dashboardsProvider.enabled=true \--set dashboardsConfigMaps[0].configMapName=dashboard-node-exporter \--set dashboardsConfigMaps[0].fileName=dashboard-node-exporter.json \--set dashboardsConfigMaps[1].configMapName=dashboard-deployment \--set dashboardsConfigMaps[1].fileName=dashboard-deployment.json \--set dashboardsConfigMaps[2].configMapName=dashboard-redis \--set dashboardsConfigMaps[2].fileName=dashboard-redis.json \--set dashboardsConfigMaps[3].configMapName=dashboard-rabbitmq \--set dashboardsConfigMaps[3].fileName=dashboard-rabbitmq.json \--set dashboardsConfigMaps[4].configMapName=dashboard-postgresql \--set dashboardsConfigMaps[4].fileName=dashboard-postgresql.json \--set dashboardsConfigMaps[5].configMapName=dashboard-nginx-ingress \--set dashboardsConfigMaps[5].fileName=dashboard-nginx-ingress.json \--set dashboardsConfigMaps[6].configMapName=dashboard-documentserver \--set dashboardsConfigMaps[6].fileName=dashboard-documentserver.json \--set dashboardsConfigMaps[7].configMapName=dashboard-cluster-resourses \--set dashboardsConfigMaps[7].fileName=dashboard-cluster-resourses.jsonВ Grafana будут импортированы следующие панели мониторинга: Node Exporter, Deployment Statefulset Daemonset, Redis Dashboard for Prometheus Redis Exporter, RabbitMQ-Overview, PostgreSQL Database, NGINX Ingress controller, ONLYOFFICE Docs и Resource usage by Pods and Containers.
примечаниеОписание метрик ONLYOFFICE Docs, визуализируемых в Grafana, можно найти здесь.
Подробнее об установке Grafana с помощью Helm читайте здесь.
-
2. Доступ к Grafana через Ingress
Предполагается, что шаг установки контроллера Kubernetes Nginx Ingress уже выполнен.
Если ONLYOFFICE Docs был установлен с параметром grafana.ingress.enabled (Развертывание метрик), Grafana будет доступна по адресу: http://INGRESS-ADDRESS/grafana/
Если Ingress был установлен с защищенным соединением (Публикация ONLYOFFICE Docs по протоколу HTTPS), Grafana будет доступна по адресу: https://your-domain-name/grafana/
3. Просмотр собранных метрик в Grafana
Перейдите по адресу http(s)://your-domain-name/grafana/ и войдите со следующими данными:
Login - admin
Чтобы получить пароль, выполните команду:
$ kubectl get secret grafana-admin --namespace default -o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 --decode
В разделе панелей мониторинга вы увидите добавленные панели, отображающие метрики, полученные от Prometheus.