适用于 Kubernetes 的 ONLYOFFICE 文档
介绍
部署先决条件
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
或者,您可以指定目标命名空间中允许的用户和组范围,在安装依赖项(如 RabbitMQ、Redis、PostgreSQL
等)时查看runAsUser和fsGroup参数。
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. 安装持久存储
安装 NFS 服务器预配置器
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是您的 Kubernetes 集群中可用的持久存储类。不同提供程序的持久存储类:
PERSISTENT_SIZE是用于 nfs 持久存储类的所有持久存储的总大小。您可以将大小表示为带有以下后缀之一的普通整数:T、G、M、Ti、Gi、Mi。例如:9Gi。
有关通过 Helm 安装 NFS 服务器预配置器的更多详细信息,请参阅此处。
配置持久卷声明
默认的nfs持久卷声明为 8Gi。您可以在values.yaml文件的persistence.storageClass和persistence.size部分更改它。它应至少比PERSISTENT_SIZE小约
5%。建议为ONLYOFFICE 文档的每 100 个活跃用户使用 8Gi 或更多的持久存储。
ds (101:101)。如果您想启用WOPI,请设置参数wopi.enabled=true。在这种情况下,持久存储必须连接到集群节点,并为客户端的挂载目录禁用缓存属性。对于 NFS
服务器预配置器,可以通过将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 收集。有关通过 Helm 安装 RabbitMQ 的更多详细信息,请参阅此处。
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。
有关通过 Helm 安装 Redis 的更多详细信息,请参阅此处。
5. 部署数据库
作为数据库服务器,您可以使用 PostgreSQL、MySQL 或 MariaDB。
要将 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。
有关通过 Helm 安装 PostgreSQL 的更多详细信息,请参阅此处。
要将 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
有关通过 Helm 安装 MySQL 的更多详细信息,请参阅此处。
此处PERSISTENT_SIZE是数据库持久卷的大小。例如:8Gi。
建议为 ONLYOFFICE 文档的每 100 个活跃用户使用至少 2Gi 的持久存储。
metrics.enabled=true以启用暴露数据库指标,供 Prometheus
收集。还要添加以下参数:metrics.image.repository=bitnamilegacy/mysqld-exporter和metrics.image.tag=0.17.2-debian-12-r16。
6. 部署 StatsD 导出器
-
添加 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参数。有关通过 Helm 安装 Prometheus 的更多详细信息,请参阅此处。
-
安装 StatsD 导出器
要将 StatsD 导出器安装到您的集群,请运行以下命令:
$ helm install statsd-exporter prometheus-community/prometheus-statsd-exporter \ --set statsd.udpPort=8125 \ --set statsd.tcpPort=8126 \ --set statsd.eventFlushInterval=30000ms有关通过 Helm 安装 Prometheus StatsD 导出器的更多详细信息,请参阅此处。
要在 ONLYOFFICE 文档中启用 StatsD 指标,请遵循此步骤。
7. 修改 Node-config 配置文件
-
创建一个包含 json 文件的 ConfigMap
为了从一个包含
local.json结构的文件创建 ConfigMap,您需要运行以下命令:$ kubectl create configmap local-config \ --from-file=./local.json可以使用任何名称代替local-config。 -
在安装 ONLYOFFICE 文档时指定参数
安装 ONLYOFFICE 文档时,指定
extraConf.configMap=local-config和extraConf.filename=local.json参数。如果需要在 ONLYOFFICE 文档已安装后添加配置文件,您需要执行步骤 7.1,然后运行
命令,或者如果参数已在helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooksvalues.yaml文件中指定,则运行
。helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks
8. 添加自定义字体
为了向镜像中添加字体,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。
9. 添加插件
为了向镜像中添加插件,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。
10. 添加自定义字典
为了向镜像中添加自定义字典,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。
11. 更改界面主题
-
创建一个包含 json 文件的 ConfigMap
为了创建一个包含界面主题的 json 文件的 ConfigMap,您需要运行以下命令:
$ kubectl create configmap custom-themes \ --from-file=./custom-themes.json您可以使用任何其他名称代替custom-themes和custom-themes.json。 -
在安装 ONLYOFFICE 文档时指定参数
安装 ONLYOFFICE 文档时,指定
extraThemes.configMap=custom-themes和extraThemes.filename=custom-themes.json参数。如果需要在 ONLYOFFICE 文档已安装后添加界面主题,您需要执行步骤 11.1,然后运行 helm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooks 命令,或者如果参数已在 values.yaml 文件中指定,则运行 helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks。
部署 ONLYOFFICE 文档
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
或者,您可以在描述 podTemplate
的所有资源的commonAnnotations或annotations中应用nonroot-v2SecurityContextConstraints
(SCC) 策略。确保用户和服务帐户都具有使用此 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和设置为
true。
1. 部署 ONLYOFFICE 文档许可证
-
创建密钥
如果您有有效的 ONLYOFFICE 文档许可证,请从文件创建名为
license的密钥:$ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic其中
SECRET_LICENSE_NAME是带有许可证的未来密钥的名称。源许可证文件名应为 'license.lic',因为此名称将用作创建密钥中的字段。如果安装时没有使用现有许可证文件创建密钥,则会自动创建一个空的密钥license。有关如何更新现有许可证密钥的信息,请参阅此处。 -
在安装 ONLYOFFICE 文档时指定参数
安装 ONLYOFFICE 文档时,指定
license.existingSecret=[SECRET_LICENSE_NAME]参数。$ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]如果需要在 ONLYOFFICE 文档已安装后添加许可证,您需要执行步骤 1.1,然后运行helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooks命令,或者如果参数已在values.yaml文件中指定,则运行helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks。
2. 部署 ONLYOFFICE 文档
使用发布名称documentserver部署 ONLYOFFICE 文档:
$ helm install documentserver onlyoffice/docs
该命令在默认配置下将 ONLYOFFICE 文档部署到 Kubernetes 集群上。参数部分列出了可以在安装过程中配置的参数。
3. 卸载 ONLYOFFICE 文档
要卸载/删除documentserver部署:
$ helm delete documentserver
执行helm delete命令会启动钩子,这些钩子在完全删除 ONLYOFFICE 文档之前执行一些准备操作,包括停止服务器、清理已使用的 PVC 和数据库表。默认的钩子执行时间为 300
秒。可以使用--timeout [time]更改执行时间,例如:
$ helm delete documentserver --timeout 25m
如果您想删除 ONLYOFFICE 文档而不执行任何准备操作,请运行以下命令:
$ helm delete documentserver --no-hooks
helm delete命令会删除与 Chart 关联的所有 Kubernetes 组件,并删除该发布。
4. 参数
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.redistHost | Redis 主机的 IP
地址或名称。如果在connections.redisClusterNodes和connections.redisSentinelNodes中设置了值,则不使用此参数。
| redis-master |
connections.redisPort | Redis
服务器端口号。如果在connections.redisClusterNodes和connections.redisSentinelNodes中设置了值,则不使用此参数。
| 6379 |
connections.redisUser | Redis 用户名称。如果您添加自定义配置文件,此参数中的值将覆盖local.json中options对象设置的值。
| default |
connections.redisDBNum | 要选择的 Redis
逻辑数据库编号。如果您添加自定义配置文件,此参数中的值将覆盖local.json中options对象设置的值。 | 0 |
connections.redisClusterNodes | Redis 集群中的节点列表。无需指定集群中的每个节点,3 个就足够了。您可以指定多个值。必须以host:port格式指定。 | [] |
connections.redisPassword | 为 Redis
帐户设置的密码。如果设置,则优先于connections.redisExistingSecret。如果您添加自定义配置文件,此参数中的值将覆盖local.json中options对象设置的值。
| "" |
connections.redisSecretKeyName | 包含 Redis 用户密码的键的名称。 | redis-password |
connections.redisExistingSecret | 用于 Redis
密码的现有密钥名称。必须包含在connections.redisSecretKeyName中指定的键。此密钥中的密码将覆盖local.json中options对象设置的密码。
| redis |
connections.redisNoPass | 定义是否使用无密码的 Redis 认证。如果连接到 Redis 服务器不需要密码,请将值设置为true。 | false |
connections.redisSentinelNodes | Redis Sentinel 节点列表。无需指定每个节点,3
个就足够了。您可以指定多个值。必须以host:port格式指定。在connections.redisConnectorName设置为ioredis时使用。
| [] |
connections.redisSentinelGroupName | 由一个主节点和一个或多个从节点组成的 Redis
实例组的名称。在connections.redisConnectorName设置为ioredis时使用。 | mymaster |
connections.redisSentinelExistingSecret | 用于 Redis Sentinel
密码的现有密钥名称。必须包含在connections.redisSentinelSecretKeyName中指定的键。此密钥中的密码将覆盖local.json中iooptions对象设置的密码值。
| "" |
connections.redisSentinelSecretKeyName | 包含 Redis Sentinel 用户密码的键的名称。如果您在redisSentinelPassword中设置了密码,将自动创建一个密钥,其键名称将为此处设置的值。
| sentinel-password |
connections.redisSentinelPassword | 为 Redis Sentinel
帐户设置的密码。如果设置,则优先于connections.redisSentinelExistingSecret。此参数中的值将覆盖local.json中iooptions对象设置的值。
| "" |
connections.redisSentinelNoPass | 定义是否使用无密码的 Redis Sentinel 认证。如果连接到 Redis Sentinel 不需要密码,请将值设置为true。 | true |
connections.amqpType | 定义 AMQP 服务器类型。可能的值有rabbitmq或activemq。 | rabbitmq |
connections.amqpHost | AMQP 服务器的 IP 地址或名称。 | 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 的名称。如果未指定,将创建一个名为 "ds-files" 的 PVC。 | "" |
persistence.annotations | 定义将额外添加到 "ds-files" PVC 的注释。如果设置,则优先于commonAnnotations。 | {} |
persistence.storageClass | 用于 ONLYOFFICE 文档数据和运行时配置卷的 PVC 存储类。 | nfs |
persistence.size | ONLYOFFICE 文档卷的 PVC 存储请求。 | 8Gi |
persistence.storageS3 | 定义是否将 S3 用作缓存存储。如果您将使用 S3 作为缓存存储,请设置为true。 | false |
persistence.runtimeConfig.enabled | 定义是否使用 PVC 以及是否将其挂载到容器中。 | true |
persistence.runtimeConfig.existingClaim | 用于存储运行时配置的现有 PVC 的名称。如果未指定,将创建一个名为 "ds-runtime-config" 的 PVC。 | "" |
persistence.runtimeConfig.annotations | 定义将额外添加到 "ds-runtime-config" PVC 的注释。如果设置,则优先于commonAnnotations。 | {} |
persistence.runtimeConfig.size | 运行时配置卷的 PVC 存储请求。 | 1Gi |
commonNameSuffix | 将作为后缀添加到所有创建资源名称中的名称。 | "" |
namespaceOverride | 将部署 ONLYOFFICE 文档的命名空间名称。如果未设置,名称将从.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 | 启用自动挂载创建的 serviceAccount 上的
ServiceAccountToken。仅在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 | 指定为 ONLYOFFICE 文档启用 StatsD。 | false |
metrics.host | 定义 StatsD 监听主机。 | statsd-exporter-prometheus-statsd-exporter |
metrics.port | 定义 StatsD 监听端口。 | 8125 |
metrics.prefix | 为后端服务定义 StatsD 指标前缀。 | ds. |
extraConf.configMap | 包含用于覆盖默认值的 json 文件的 ConfigMap 名称。 | "" |
extraConf.filename | 包含自定义值的 json 文件名。必须与 extraConf.ConfigMap 中的 key 名称相同。 | local.json |
extraThemes.configMap | 包含界面主题的 json 文件的 ConfigMap 名称。 | "" |
extraThemes.filename | 包含自定义界面主题的 json 文件名。必须与 extraThemes.configMap 中的 key 名称相同。 | custom-themes.json |
podAntiAffinity.type | Pod 反亲和性类型。允许的值:soft 或 hard。 | soft |
podAntiAffinity.topologyKey | 要匹配的节点标签键。 | kubernetes.io/hostname |
podAntiAffinity.weight | 选择节点时的优先级。范围从 1 到 100。 | 100 |
nodeSelector | 用于 Pod 分配的节点标签。每个 ONLYOFFICE 文档服务可以用自己的值覆盖此处指定的值。 | {} |
tolerations | 用于 Pod 分配的容忍度。每个 ONLYOFFICE 文档服务可以用自己的值覆盖此处指定的值。 | [] |
imagePullSecrets | 容器镜像仓库密钥名称。 | "" |
requestFilteringAgent.allowPrivateIPAddress | 定义是否允许连接私有 IP 地址。如果 JWT 被禁用:jwt.enabled=false,则使用
requestFilteringAgent 参数。
| false |
requestFilteringAgent.allowMetaIPAddress | 定义是否允许连接元地址。 | false |
requestFilteringAgent.allowIPAddressList | 定义允许连接的 IP 地址列表。这些值优先于 requestFilteringAgent.denyIPAddressList。 | [] |
requestFilteringAgent.denyIPAddressList | 定义允许连接的 IP 地址列表。 | [] |
docservice.annotations | 定义将额外添加到 Docservice 部署的注释。如果设置,则优先于 commonAnnotations。 | {} |
docservice.podAnnotations | 要添加到 Docservice 部署 Pod 的注释映射。 | rollme: "{{ randAlphaNum 5 | quote }}" |
docservice.replicas | Docservice 副本数量。如果启用了 docservice.autoscaling.enabled 参数,则忽略此参数。 | 2 |
docservice.updateStrategy.type | Docservice 部署更新策略类型。 | Recreate |
docservice.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度 Docservice Pod。 | {} |
docservice.podAffinity | 定义按节点相对于其他 Pod 调度 Docservice Pod 的 Pod 亲和性规则。 | {} |
docservice.nodeAffinity | 定义按节点调度 Docservice Pod 的 节点亲和性规则。 | {} |
docservice.nodeSelector | 用于 Docservice Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
docservice.tolerations | 用于 Docservice Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
docservice.terminationGracePeriodSeconds | 优雅终止的时间,在此期间 Docservice Pod 将处于 Terminating 状态。 | 30 |
docservice.hostAliases | 将附加条目添加到 Docservice 和代理容器的主机文件中。 | [] |
docservice.initContainers | 定义在 Docservice 部署 Pod 中的 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 Pod 的额外卷数组。 | [] |
docservice.extraVolumeMounts | 用于 Docservice 容器的额外卷挂载数组。 | [] |
docservice.readinessProbe.enabled | 为 Docservice 容器启用就绪探针。 | true |
docservice.livenessProbe.enabled | 为 Docservice 容器启用存活探针。 | true |
docservice.startupProbe.enabled | 为 Docservice 容器启用启动探针。 | true |
docservice.autoscaling.enabled | 启用 Docservice 部署的自动缩放。 | false |
docservice.autoscaling.annotations | 定义将额外添加到 Docservice 部署 HPA 的注释。如果设置,则优先于 commonAnnotations。 | {} |
docservice.autoscaling.minReplicas | Docservice 部署自动缩放的最小副本数。 | 2 |
docservice.autoscaling.maxReplicas | Docservice 部署自动缩放的最大副本数。 | 4 |
docservice.autoscaling.targetCPU.enabled | 通过 CPU 使用率百分比启用 Docservice 部署的自动缩放。 | true |
docservice.autoscaling.targetCPU.utilizationPercentage | Docservice 部署自动缩放的目标 CPU 百分比。 | 70 |
docservice.autoscaling.targetMemory.enabled | 通过内存使用率百分比启用 Docservice 部署的自动缩放。 | false |
docservice.autoscaling.targetMemory.utilizationPercentage | Docservice 部署自动缩放的目标内存百分比。 | 70 |
docservice.autoscaling.customMetricsType | 用于 Docservice 部署的自定义、附加或外部自动缩放指标。 | [] |
docservice.autoscaling.behavior | 为 scaleDown 和 scaleUp 字段配置 Docservice 部署缩放行为策略。 | {} |
proxy.accessLog | 定义 nginx 配置 access_log 格式指令。 | 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 | 定义 nginx 配置 gzip_proxied 指令。 | off |
proxy.clientMaxBodySize | 定义 nginx 配置 client_max_body_size 指令。 | 100m |
proxy.workerConnections | 定义 nginx 配置 worker_connections 指令。 | 4096 |
proxy.secureLinkSecret | 定义 nginx 配置指令 secure_link_md5 的密钥。如果值为空,将生成一个随机值,该值将在后续升级中使用。如果设置了值,则将使用该值。 | "" |
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 代理容器镜像仓库*。 | onlyoffice/docs-proxy-de |
proxy.image.tag | Docservice 代理容器镜像标签。 | 9.0.4-1 |
proxy.image.pullPolicy | Docservice 代理容器镜像拉取策略。 | IfNotPresent |
proxy.containerSecurityContext.enabled | 为代理容器启用安全上下文。 | false |
proxy.lifecycleHooks | 定义代理容器生命周期钩子。用于在容器生命周期的特定点触发要运行的事件。 | {} |
proxy.resources.requests | 代理容器的请求资源。 | {} |
proxy.resources.limits | 代理容器的资源限制。 | {} |
proxy.extraEnvVars | 用于代理容器的额外环境变量数组。 | [] |
proxy.extraVolumeMounts | 用于代理容器的额外卷挂载数组。 | [] |
proxy.readinessProbe.enabled | 为代理容器启用就绪探针。 | true |
proxy.livenessProbe.enabled | 为代理容器启用存活探针。 | true |
proxy.startupProbe.enabled | 为代理容器启用启动探针。 | true |
converter.annotations | 定义将额外添加到转换器部署的注释。如果设置,则优先于 commonAnnotations。 | {} |
converter.podAnnotations | 要添加到转换器部署 Pod 的注释映射。 | rollme: "{{ randAlphaNum 5 | quote }}" |
converter.replicas | 转换器副本数量。如果启用了 converter.autoscaling.enabled 参数,则忽略此参数。 | 2 |
converter.updateStrategy.type | 转换器部署更新策略类型。 | Recreate |
converter.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度转换器 Pod。 | {} |
converter.podAffinity | 定义按节点相对于其他 Pod 调度转换器 Pod 的 Pod 亲和性规则。 | {} |
converter.nodeAffinity | 定义按节点调度转换器 Pod 的 节点亲和性规则。 | {} |
converter.nodeSelector | 用于转换器 Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
converter.tolerations | 用于转换器 Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
converter.terminationGracePeriodSeconds | 优雅终止的时间,在此期间转换器 Pod 将处于 Terminating 状态。 | 30 |
converter.hostAliases | 将附加条目添加到转换器容器的主机文件中。 | [] |
converter.initContainers | 定义在转换器部署 Pod 中的转换器容器之前运行的容器。例如,更改 PersistentVolume 所有者的容器。 | [] |
converter.image.repository | 转换器容器镜像仓库*。 | onlyoffice/docs-converter-de |
converter.image.tag | 转换器容器镜像标签。 | 9.0.4-1 |
converter.image.pullPolicy | 转换器容器镜像拉取策略。 | IfNotPresent |
converter.containerSecurityContext.enabled | 为转换器容器启用安全上下文。 | false |
converter.lifecycleHooks | 定义转换器容器生命周期钩子。用于在容器生命周期的特定点触发要运行的事件。 | {} |
converter.resources.requests | 转换器容器的请求资源。 | {} |
converter.resources.limits | 转换器容器的资源限制。 | {} |
converter.extraEnvVars | 用于转换器容器的额外环境变量数组。 | [] |
converter.extraVolumes | 用于转换器 Pod 的额外卷数组。 | [] |
converter.extraVolumeMounts | 用于转换器容器的额外卷挂载数组。 | [] |
converter.autoscaling.enabled | 启用转换器部署的自动缩放。 | false |
converter.autoscaling.annotations | 定义将额外添加到转换器部署 HPA 的注释。如果设置,则优先于 commonAnnotations。 | {} |
converter.autoscaling.minReplicas | 转换器部署自动缩放的最小副本数。 | 2 |
converter.autoscaling.maxReplicas | 转换器部署自动缩放的最大副本数。 | 16 |
converter.autoscaling.targetCPU.enabled | 通过 CPU 使用率百分比启用转换器部署的自动缩放。 | true |
converter.autoscaling.targetCPU.utilizationPercentage | 转换器部署自动缩放的目标 CPU 百分比。 | 70 |
converter.autoscaling.targetMemory.enabled | 通过内存使用率百分比启用转换器部署的自动缩放。 | false |
converter.autoscaling.targetMemory.utilizationPercentage | 转换器部署自动缩放的目标内存百分比。 | 70 |
converter.autoscaling.customMetricsType | 用于转换器部署的自定义、附加或外部自动缩放指标。 | [] |
converter.autoscaling.behavior | 为 scaleDown 和 scaleUp 字段配置转换器部署缩放行为策略。 | {} |
example.enabled | 启用示例的安装。 | false |
example.annotations | 定义将额外添加到示例 StatefulSet 的注释。如果设置,则优先于 commonAnnotations。 | {} |
example.podAnnotations | 要添加到示例 Pod 的注释映射。 | rollme: "{{ randAlphaNum 5 | quote }}" |
example.updateStrategy.type | 示例 StatefulSet 更新策略类型。 | RollingUpdate |
example.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度示例 Pod。 | {} |
example.podAffinity | 定义按节点相对于其他 Pod 调度示例 Pod 的 Pod 亲和性规则。 | {} |
example.nodeAffinity | 定义按节点调度示例 Pod 的 节点亲和性规则。 | {} |
example.nodeSelector | 用于示例 Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
example.tolerations | 用于示例 Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
example.terminationGracePeriodSeconds | 优雅终止的时间,在此期间示例 Pod 将处于 Terminating 状态。 | 30 |
example.hostAliases | 将附加条目添加到示例容器的主机文件中。 | [] |
example.initContainers | 定义在 Pod 中的示例容器之前运行的容器。 | [] |
example.image.repository | 示例容器镜像名称。 | onlyoffice/docs-example |
example.image.tag | 示例容器镜像标签。 | 9.0.4-1 |
example.image.pullPolicy | 示例容器镜像拉取策略。 | IfNotPresent |
example.containerSecurityContext.enabled | 为示例容器启用安全上下文。 | false |
example.dsUrl | ONLYOFFICE 文档外部地址。仅在需要检查示例中的转换操作时才应更改此设置(例如 http://<documentserver-address>/)。 | / |
example.resources.requests | 示例容器的请求资源。 | {} |
example.resources.limits | 示例容器的资源限制。 | {} |
example.extraEnvVars | 用于示例容器的额外环境变量数组。 | [] |
example.extraConf.configMap | 包含用于覆盖默认值的 json 文件的 ConfigMap 名称。创建示例请参见此处。 | "" |
example.extraConf.filename | 包含自定义值的 json 文件名。必须与 example.extraConf.ConfigMap 中的 key 名称相同。 | local.json |
example.extraVolumes | 用于示例 Pod 的额外卷数组。 | [] |
example.extraVolumeMounts | 用于示例容器的额外卷挂载数组。 | [] |
jwt.enabled | 指定 ONLYOFFICE 文档启用 JSON Web 令牌验证。适用于收件箱和发件箱请求。 | true |
jwt.secret | 定义用于验证对 ONLYOFFICE 文档请求中的 JSON Web 令牌的密钥。适用于收件箱和发件箱请求。如果值为空,将生成一个随机值,该值将在后续升级中使用。如果设置了值,则将使用该值。 | "" |
jwt.header | 定义用于发送 JSON Web 令牌的 http 请求头。适用于收件箱和发件箱请求。 | Authorization |
jwt.inBody | 指定在向 ONLYOFFICE 文档的请求正文中启用令牌验证。 | false |
jwt.inbox | 仅用于收件箱请求的 JSON Web 令牌验证参数。如果未指定,则使用通用 jwt 的参数值。 | {} |
jwt.outbox | 仅用于发件箱请求的 JSON Web 令牌验证参数。如果未指定,则使用通用 jwt 的参数值。 | {} |
jwt.existingSecret | 包含 jwt 变量的现有密钥名称。如果未指定,将创建一个名为 jwt 的密钥。 | "" |
service.existing | ONLYOFFICE 文档的现有服务名称。如果未指定,将创建一个名为 documentserver 的服务。 | "" |
service.annotations | 要添加到 ONLYOFFICE 文档服务的注释映射。如果设置,则优先于 commonAnnotations。 | {} |
service.type | ONLYOFFICE 文档服务类型。 | ClusterIP |
service.port | ONLYOFFICE 文档服务端口。 | 8888 |
service.sessionAffinity | ONLYOFFICE 文档服务的会话亲和性。如果未设置,则默认值将为
None。
| "" |
service.sessionAffinityConfig | ONLYOFFICE 文档服务会话亲和性的配置。在设置了
service.sessionAffinity 时使用。
| {} |
ingress.enabled | 为 ONLYOFFICE 文档启用 Ingress 的创建。 | false |
ingress.annotations | 要添加到 Ingress 的注释映射。如果设置,则优先于 commonAnnotations。 | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
ingress.ingressClassName | 用于引用应实现此 Ingress 的 IngressClass。 | nginx |
ingress.controllerName | 用于区分具有相同 IngressClassName 但来自不同供应商的控制器。 | ingress-nginx |
ingress.host | ONLYOFFICE 文档 Ingress 的主机名。 | "" |
ingress.tenants | 如果您需要使用多个名称(例如用于多租户),则为 Ingress 主机名。如果设置,则优先于 ingress.host。如果
ingress.ssl.enabled 设置为 true,则假定所有指定域的证书都由
ingress.ssl.secret 保密。
| [] |
ingress.ssl.enabled | 为 ONLYOFFICE 文档 Ingress 启用 ssl。 | false |
ingress.ssl.secret | 用于 ssl 的密钥名称,以挂载到 Ingress 中。 | tls |
ingress.path | 指定 ONLYOFFICE 文档可用的路径。 | / |
ingress.pathType | 指定 ONLYOFFICE 文档 Ingress 资源的路径类型。允许的值为 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 | 为 ONLYOFFICE 文档启用 OpenShift 路由的创建。 | false |
openshift.route.annotations | 要添加到 OpenShift 路由的注释映射。如果设置,则优先于 commonAnnotations。 | {} |
openshift.route.host | ONLYOFFICE 文档路由的 OpenShift 路由主机名。 | "" |
openshift.route.path | 指定 ONLYOFFICE 文档可用的路径。 | / |
openshift.route.wildcardPolicy | OpenShift 路由中处理通配符子域的策略。允许的值为 None、Subdomain。 | None |
grafana.enabled | 启用 Grafana 中指标可视化所需资源的安装。 | false |
grafana.namespace | 将部署 RBAC 组件和 Grafana 资源的命名空间名称。如果未设置,则名称将从 namespaceOverride(如果已设置)或
.Release.Namespace 中获取。 | "" |
grafana.ingress.enabled | 为 Grafana 启用 Ingress 的创建。当您将 grafana.enabled 设置为 true 并希望使用 Nginx
Ingress 访问 Grafana 时使用。 | false |
grafana.ingress.annotations | 要添加到 Grafana Ingress 的注释映射。如果设置,则优先于 commonAnnotations。 | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
grafana.dashboard.enabled | 启用现成 Grafana 仪表板的安装。当您将 grafana.enabled 设置为 true 时使用。 | false |
podSecurityContext.enabled | 为 Pod 启用安全上下文。 | false |
podSecurityContext.converter.fsGroup | 定义在转换器 Pod 中挂载时,卷中所有文件的所有者和权限将更改成的组 ID。 | 101 |
podSecurityContext.docservice.fsGroup | 定义在 Docservice Pod 中挂载时,卷中所有文件的所有者和权限将更改成的组 ID。 | 101 |
podSecurityContext.jobs.fsGroup | 定义在 Job 创建的 Pod 中挂载时,卷中所有文件的所有者和权限将更改成的组 ID。 | 101 |
podSecurityContext.example.fsGroup | 定义在示例 Pod 中挂载时,卷中所有文件的所有者和权限将更改成的组 ID。 | 1001 |
podSecurityContext.tests.fsGroup | 定义在测试 Pod 中挂载时,卷中所有文件的所有者和权限将更改成的组 ID。 | 101 |
webProxy.enabled | 指定您的网络中是否使用 Web 代理来使 k8s 集群的 Pod 访问互联网。 | false |
webProxy.http | 用于 HTTP 流量的 Web 代理地址。 | http://proxy.example.com |
webProxy.https | 用于 HTTPS 流量的 Web 代理地址。 | https://proxy.example.com |
webProxy.noProxy | 不应使用 Web 代理的 IP 地址、k8s 服务名称或域名的模式。 | localhost,127.0.0.1,docservice |
privateCluster | 指定 k8s 集群是否在无法访问互联网的私有网络中使用。 | false |
upgrade.job.enabled | 在升级 ONLYOFFICE 文档之前启用预升级任务的执行。 | true |
upgrade.job.annotations | 定义将额外添加到预升级 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
upgrade.job.podAnnotations | 要添加到预升级 Pod 的注释映射。 | {} |
upgrade.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度预升级 Job Pod。 | {} |
upgrade.job.podAffinity | 定义按节点相对于其他 Pod 调度预升级 Job Pod 的 Pod 亲和性规则。 | {} |
upgrade.job.nodeAffinity | 定义按节点调度预升级 Job Pod 的 节点亲和性规则。 | {} |
upgrade.job.nodeSelector | 用于预升级 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
upgrade.job.tolerations | 用于预升级 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
upgrade.job.initContainers | 定义在 Pod 中的预升级容器之前运行的容器。 | [] |
upgrade.job.image.repository | 升级 Job 的镜像仓库。 | onlyoffice/docs-utils |
upgrade.job.image.tag | 升级 Job 的镜像标签。 | 9.0.4-1 |
upgrade.job.image.pullPolicy | 升级 Job 的镜像拉取策略。 | IfNotPresent |
upgrade.job.containerSecurityContext.enabled | 为预升级容器启用安全上下文。 | false |
upgrade.job.resources.requests | 预升级 Job 容器的请求资源。 | {} |
upgrade.job.resources.limits | 预升级 Job 容器的资源限制。 | {} |
upgrade.existingConfigmap.tblRemove.name | 包含用于从数据库删除表的 sql 文件的现有 ConfigMap 的名称。 | remove-db-scripts |
upgrade.existingConfigmap.tblRemove.keyName | 包含从数据库删除表的说明的 sql 文件名。必须与 upgrade.existingConfigmap.tblRemove.name 中的
key 名称相同。
| removetbl.sql |
upgrade.existingConfigmap.tblCreate.name | 包含用于在数据库中创建表的 sql 文件的现有 ConfigMap 的名称。 | init-db-scripts |
upgrade.existingConfigmap.tblCreate.keyName | 包含在数据库中创建表的说明的 sql 文件名。必须与 upgrade.existingConfigmap.tblCreate.name 中的
key 名称相同。
| createdb.sql |
upgrade.existingConfigmap.dsStop | 包含 ONLYOFFICE 文档升级脚本的现有 ConfigMap 的名称。如果设置,则忽略前四个参数。必须包含一个键 stop.sh。 | "" |
rollback.job.enabled | 在回滚 ONLYOFFICE 文档之前启用预回滚任务的执行。 | true |
rollback.job.annotations | 定义将额外添加到预回滚 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
rollback.job.podAnnotations | 要添加到预回滚 Pod 的注释映射。 | {} |
rollback.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度预回滚 Job Pod。 | {} |
rollback.job.podAffinity | 定义按节点相对于其他 Pod 调度预回滚 Job Pod 的 Pod 亲和性规则。 | {} |
rollback.job.nodeAffinity | 定义按节点调度预回滚 Job Pod 的 节点亲和性规则。 | {} |
rollback.job.nodeSelector | 用于预回滚 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
rollback.job.tolerations | 用于预回滚 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
rollback.job.initContainers | 定义在 Pod 中的预回滚容器之前运行的容器。 | [] |
rollback.job.image.repository | 回滚 Job 的镜像仓库。 | onlyoffice/docs-utils |
rollback.job.image.tag | 回滚 Job 的镜像标签。 | 9.0.4-1 |
rollback.job.image.pullPolicy | 回滚 Job 的镜像拉取策略。 | IfNotPresent |
rollback.job.containerSecurityContext.enabled | 为预回滚容器启用安全上下文。 | false |
rollback.job.resources.requests | 回滚 Job 容器的请求资源。 | {} |
rollback.job.resources.limits | 回滚 Job 容器的资源限制。 | {} |
rollback.existingConfigmap.tblRemove.name | 包含用于从数据库删除表的 sql 文件的现有 ConfigMap 的名称。 | remove-db-scripts |
rollback.existingConfigmap.tblRemove.keyName | 包含从数据库删除表的说明的 sql 文件名。必须与 rollback.existingConfigmap.tblRemove.name 中的
key 名称相同。
| removetbl.sql |
rollback.existingConfigmap.tblCreate.name | 包含用于在数据库中创建表的 sql 文件的现有 ConfigMap 的名称。 | init-db-scripts |
rollback.existingConfigmap.tblCreate.keyName | 包含在数据库中创建表的说明的 sql 文件名。必须与 rollback.existingConfigmap.tblCreate.name 中的
key 名称相同。
| createdb.sql |
rollback.existingConfigmap.dsStop | 包含 ONLYOFFICE 文档回滚脚本的现有 ConfigMap 的名称。如果设置,则忽略前四个参数。必须包含一个键 stop.sh。 | "" |
delete.job.enabled | 在删除 ONLYOFFICE 文档之前启用预删除任务的执行。 | true |
delete.job.annotations | 定义将额外添加到预删除 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
delete.job.podAnnotations | 要添加到预删除 Pod 的注释映射。 | {} |
delete.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度预删除 Job Pod。 | {} |
delete.job.podAffinity | 定义按节点相对于其他 Pod 调度预删除 Job Pod 的 Pod 亲和性规则。 | {} |
delete.job.nodeAffinity | 定义按节点调度预删除 Job Pod 的 节点亲和性规则。 | {} |
delete.job.nodeSelector | 用于预删除 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
delete.job.tolerations | 用于预删除 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
delete.job.initContainers | 定义在 Pod 中的预删除容器之前运行的容器。 | [] |
delete.job.image.repository | 删除 Job 的镜像仓库。 | onlyoffice/docs-utils |
delete.job.image.tag | 删除 Job 的镜像标签。 | 9.0.4-1 |
delete.job.image.pullPolicy | 删除 Job 的镜像拉取策略。 | IfNotPresent |
delete.job.containerSecurityContext.enabled | 为预删除容器启用安全上下文。 | false |
delete.job.resources.requests | 删除 Job 容器的请求资源。 | {} |
delete.job.resources.limits | 删除 Job 容器的资源限制。 | {} |
delete.existingConfigmap.tblRemove.name | 包含用于从数据库删除表的 sql 文件的现有 ConfigMap 的名称。 | remove-db-scripts |
delete.existingConfigmap.tblRemove.keyName | 包含从数据库删除表的说明的 sql 文件名。必须与 delete.existingConfigmap.tblRemove.name 中的
key 名称相同。
| removetbl.sql |
delete.existingConfigmap.dsStop | 包含 ONLYOFFICE 文档删除脚本的现有 ConfigMap 的名称。如果设置,则忽略前两个参数。必须包含一个键 stop.sh。 | "" |
install.job.enabled | 在安装 ONLYOFFICE 文档之前启用预安装任务的执行。 | true |
install.job.annotations | 定义将额外添加到预安装 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
install.job.podAnnotations | 要添加到预安装 Pod 的注释映射。 | {} |
install.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度预安装 Job Pod。 | {} |
install.job.podAffinity | 定义按节点相对于其他 Pod 调度预安装 Job Pod 的 Pod 亲和性规则。 | {} |
install.job.nodeAffinity | 定义按节点调度预安装 Job Pod 的 节点亲和性规则。 | {} |
install.job.nodeSelector | 用于预安装 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
install.job.tolerations | 用于预安装 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
install.job.initContainers | 定义在 Pod 中的预安装容器之前运行的容器。 | [] |
install.job.image.repository | 预安装 ONLYOFFICE 文档 Job 的镜像仓库。 | onlyoffice/docs-utils |
install.job.image.tag | 预安装 ONLYOFFICE 文档 Job 的镜像标签。 | 9.0.4-1 |
install.job.image.pullPolicy | 预安装 ONLYOFFICE 文档 Job 的镜像拉取策略。 | IfNotPresent |
install.job.containerSecurityContext.enabled | 为预安装容器启用安全上下文。 | false |
install.job.resources.requests | 预安装 Job 容器的请求资源。 | {} |
install.job.resources.limits | 预安装 Job 容器的资源限制。 | {} |
install.existingConfigmap.tblCreate.name | 包含用于在数据库中创建表的 sql 文件的现有 ConfigMap 的名称。 | init-db-scripts |
install.existingConfigmap.tblCreate.keyName | 包含在数据库中创建表的说明的 sql 文件名。必须与 install.existingConfigmap.tblCreate.name 中的
key 名称相同。
| createdb.sql |
install.existingConfigmap.initdb | 包含 initdb 脚本的现有 ConfigMap 的名称。如果设置,则忽略前两个参数。必须包含一个键 initdb.sh。 | "" |
clearCache.job.enabled | 在升级 ONLYOFFICE 文档后启用清除缓存任务的执行。清除缓存任务有一个 post-upgrade 钩子,在 Kubernetes
中任何资源升级后执行。它会清除缓存目录。 | true |
clearCache.job.annotations | 定义将额外添加到清除缓存 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
clearCache.job.podAnnotations | 要添加到清除缓存 Pod 的注释映射。 | {} |
clearCache.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度清除缓存 Job Pod。 | {} |
clearCache.job.podAffinity | 定义按节点相对于其他 Pod 调度清除缓存 Job Pod 的 Pod 亲和性规则。 | {} |
clearCache.job.nodeAffinity | 定义按节点调度清除缓存 Job Pod 的 节点亲和性规则。 | {} |
clearCache.job.nodeSelector | 用于清除缓存 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
clearCache.job.tolerations | 用于清除缓存 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
clearCache.job.initContainers | 定义在 Pod 中的清除缓存容器之前运行的容器。 | [] |
clearCache.job.image.repository | 清除缓存 ONLYOFFICE 文档 Job 的镜像仓库。 | onlyoffice/docs-utils |
clearCache.job.image.tag | 清除缓存 ONLYOFFICE 文档 Job 的镜像标签。 | 9.0.4-1 |
clearCache.job.image.pullPolicy | 清除缓存 ONLYOFFICE 文档 Job 的镜像拉取策略。 | IfNotPresent |
clearCache.job.containerSecurityContext.enabled | 为清除缓存容器启用安全上下文。 | false |
clearCache.job.resources.requests | 清除缓存 Job 容器的请求资源。 | {} |
clearCache.job.resources.limits | 清除缓存 Job 容器的资源限制。 | {} |
clearCache.existingConfigmap.name | 包含清除缓存目录的自定义脚本的现有 ConfigMap 的名称。如果设置,则不会创建默认的 configmap。 | "" |
clearCache.existingConfigmap.keyName | 包含清除缓存目录说明的脚本名称。如果使用自定义脚本,必须与 clearCache.existingConfigmap.name 中的 key
名称相同。 | clearCache.sh |
grafanaDashboard.job.annotations | 定义将额外添加到 Grafana 仪表板 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
grafanaDashboard.job.podAnnotations | 要添加到 Grafana 仪表板 Pod 的注释映射。 | {} |
grafanaDashboard.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度 Grafana 仪表板 Job Pod。 | {} |
grafanaDashboard.job.podAffinity | 定义按节点相对于其他 Pod 调度 Grafana 仪表板 Job Pod 的 Pod 亲和性规则。 | {} |
grafanaDashboard.job.nodeAffinity | 定义按节点调度 Grafana 仪表板 Job Pod 的 节点亲和性规则。 | {} |
grafanaDashboard.job.nodeSelector | 用于 Grafana 仪表板 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
grafanaDashboard.job.tolerations | 用于 Grafana 仪表板 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
grafanaDashboard.job.initContainers | 定义在 Pod 中的 Grafana 仪表板容器之前运行的容器。 | [] |
grafanaDashboard.job.image.repository | Grafana 仪表板 ONLYOFFICE 文档 Job 的镜像仓库。 | onlyoffice/docs-utils |
grafanaDashboard.job.image.tag | Grafana 仪表板 ONLYOFFICE 文档 Job 的镜像标签。 | 9.0.4-1 |
grafanaDashboard.job.image.pullPolicy | Grafana 仪表板 ONLYOFFICE 文档 Job 的镜像拉取策略。 | IfNotPresent |
grafanaDashboard.job.containerSecurityContext.enabled | 为 Grafana 仪表板容器启用安全上下文。 | false |
grafanaDashboard.job.resources.requests | Grafana 仪表板 Job 容器的请求资源。 | {} |
grafanaDashboard.job.resources.limits | Grafana 仪表板 Job 容器的资源限制。 | {} |
wopiKeysGeneration.job.annotations | 定义将额外添加到 WOPI 密钥生成 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
wopiKeysGeneration.job.podAnnotations | 要添加到 WOPI 密钥生成 Pod 的注释映射。 | {} |
wopiKeysGeneration.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度 WOPI 密钥生成 Job Pod。 | {} |
wopiKeysGeneration.job.podAffinity | 定义按节点相对于其他 Pod 调度 WOPI 密钥生成 Job Pod 的 Pod 亲和性规则。 | {} |
wopiKeysGeneration.job.nodeAffinity | 定义按节点调度 WOPI 密钥生成 Job Pod 的 节点亲和性规则。 | {} |
wopiKeysGeneration.job.nodeSelector | 用于 WOPI 密钥生成 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
wopiKeysGeneration.job.tolerations | 用于 WOPI 密钥生成 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
wopiKeysGeneration.job.initContainers | 定义在 Pod 中的 WOPI 密钥生成容器之前运行的容器。 | [] |
wopiKeysGeneration.job.image.repository | WOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像仓库。 | onlyoffice/docs-utils |
wopiKeysGeneration.job.image.tag | WOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像标签。 | 9.0.4-1 |
wopiKeysGeneration.job.image.pullPolicy | WOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像拉取策略。 | IfNotPresent |
wopiKeysGeneration.job.containerSecurityContext.enabled | 为 WOPI 密钥生成容器启用安全上下文。 | false |
wopiKeysGeneration.job.resources.requests | WOPI 密钥生成 Job 容器的请求资源。 | {} |
wopiKeysGeneration.job.resources.limits | WOPI 密钥生成 Job 容器的资源限制。 | {} |
wopiKeysDeletion.job.enabled | 在删除 ONLYOFFICE 文档之前启用 WOPI 密钥删除任务的执行。它会删除自动生成的 WOPI 密钥。当
wopi.enabled、wopi.keys.generation 和
wopiKeysDeletion.job.enabled 都设置为 true 时执行。
| true |
wopiKeysDeletion.job.annotations | 定义将额外添加到 WOPI 密钥删除 Job 的注释。如果设置,则优先于 commonAnnotations。 | {} |
wopiKeysDeletion.job.podAnnotations | 要添加到 WOPI 密钥删除 Pod 的注释映射。 | {} |
wopiKeysDeletion.job.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度 WOPI 密钥删除 Job Pod。 | {} |
wopiKeysDeletion.job.podAffinity | 定义按节点相对于其他 Pod 调度 WOPI 密钥删除 Job Pod 的 Pod 亲和性规则。 | {} |
wopiKeysDeletion.job.nodeAffinity | 定义按节点调度 WOPI 密钥删除 Job Pod 的 节点亲和性规则。 | {} |
wopiKeysDeletion.job.nodeSelector | 用于 WOPI 密钥删除 Job Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
wopiKeysDeletion.job.tolerations | 用于 WOPI 密钥删除 Job Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
wopiKeysDeletion.job.initContainers | 定义在 Pod 中的 WOPI 密钥删除容器之前运行的容器。 | [] |
wopiKeysDeletion.job.image.repository | WOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像仓库。 | onlyoffice/docs-utils |
wopiKeysDeletion.job.image.tag | WOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像标签。 | 9.0.4-1 |
wopiKeysDeletion.job.image.pullPolicy | WOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像拉取策略。 | IfNotPresent |
wopiKeysDeletion.job.containerSecurityContext.enabled | 为 WOPI 密钥删除容器启用安全上下文。 | false |
wopiKeysDeletion.job.resources.requests | WOPI 密钥删除 Job 容器的请求资源。 | {} |
wopiKeysDeletion.job.resources.limits | WOPI 密钥删除 Job 容器的资源限制。 | {} |
tests.enabled | 启用 ONLYOFFICE 文档启动测试和连接依赖项可用性测试所需的资源创建。这些资源将在运行 helm test 命令时使用。 | true |
tests.annotations | 定义将额外添加到测试 Pod 的注释。如果设置,则优先于 commonAnnotations。 | {} |
tests.customPodAntiAffinity | 禁止在同一节点上调度包含指定标签的其他 Pod 时,调度测试 Pod。 | {} |
tests.podAffinity | 定义按节点相对于其他 Pod 调度测试 Pod 的 Pod 亲和性规则。 | {} |
tests.nodeAffinity | 定义按节点调度测试 Pod 的 节点亲和性规则。 | {} |
tests.nodeSelector | 用于测试 Pod 分配的节点标签。如果设置,则优先于 nodeSelector。 | {} |
tests.tolerations | 用于测试 Pod 分配的容忍度。如果设置,则优先于 tolerations。 | [] |
tests.initContainers | 定义在 Pod 中的测试容器之前运行的容器。 | [] |
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。用于商业开发者版。-ee。用于商业企业版。
此参数的默认值指向 ONLYOFFICE 文档服务器开发者版。要了解有关此版本的更多信息并将其与其他版本进行比较,请参阅此页面上的比较表。
使用 --set key=value[,key=value] 参数为 helm install 指定每个参数。例如:
$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com
此命令通过 HTTPS 暴露 ONLYOFFICE 文档。
或者,可以在安装 Chart 时提供一个 YAML 文件来指定参数的值。例如:
$ helm install documentserver -f values.yaml onlyoffice/docs
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 文档
-
通过服务暴露 ONLYOFFICE 文档(仅限 HTTP)
如果您打算通过 HTTPS 暴露 ONLYOFFICE 文档,应跳过此步骤。
这种暴露方式性能开销最小,它会创建一个负载均衡器来访问 ONLYOFFICE 文档。如果您使用外部 TLS 终结,并且 k8s 集群中没有其他 WEB 应用程序,请使用此暴露类型。
要通过服务暴露 ONLYOFFICE 文档,请将
service.type参数设置为 LoadBalancer:$ helm install documentserver onlyoffice/docs --set service.type=LoadBalancer,service.port=80运行以下命令获取
documentserver服务的 IP:$ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"之后,ONLYOFFICE 文档将在
http://DOCUMENTSERVER-SERVICE-IP/可用。如果服务 IP 为空,请尝试获取
documentserver服务的主机名:$ kubectl get service documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"在这种情况下,ONLYOFFICE 文档将在
http://DOCUMENTSERVER-SERVICE-HOSTNAME/可用。 -
通过 Ingress 暴露 ONLYOFFICE 文档
-
安装 Kubernetes Nginx Ingress 控制器
要将 Nginx Ingress 控制器安装到您的集群,请运行以下命令:
$ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2要使用相同参数安装 Nginx Ingress 并启用暴露 ingress-nginx 指标供 Prometheus 收集,请运行以下命令:$ helm install nginx-ingress -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/ingress_values.yaml ingress-nginx/ingress-nginx有关通过 Helm 安装 Nginx Ingress 的更多详细信息,请参阅此处。
-
通过 HTTP 暴露 ONLYOFFICE 文档
如果您打算通过 HTTPS 暴露 ONLYOFFICE 文档,应跳过此步骤。
与服务暴露相比,这种暴露方式性能开销更大,它也会创建一个负载均衡器来访问 ONLYOFFICE 文档。如果您使用外部 TLS 终结,并且 k8s 集群中有多个 WEB 应用程序,请使用此类型。您可以为它们使用一组 Ingress 实例和一个负载均衡器。这可以优化入口点性能并减少您的集群费用,因为提供商可能会对每个负载均衡器收费。
要通过 Ingress HTTP 暴露 ONLYOFFICE 文档,请将
ingress.enabled参数设置为 true:$ helm install documentserver onlyoffice/docs --set ingress.enabled=true运行以下命令获取
documentserverIngress 的 IP:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"之后,ONLYOFFICE 文档将在
http://DOCUMENTSERVER-INGRESS-IP/可用。如果 Ingress IP 为空,请尝试获取
documentserverIngress 的主机名:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"在这种情况下,ONLYOFFICE 文档将在
http://DOCUMENTSERVER-INGRESS-HOSTNAME/可用。 -
通过 HTTPS 暴露 ONLYOFFICE 文档
这种暴露方式允许您为 ONLYOFFICE 文档启用内部 TLS 终结。
创建包含 SSL 证书的
tls密钥。将 SSL 证书和私钥放入
tls.crt和tls.key文件中,然后运行:$ 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运行以下命令获取
documentserverIngress 的 IP:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"如果 Ingress IP 为空,请尝试获取
documentserverIngress 的主机名:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"通过您的 DNS 提供商将
documentserverIngress IP 或主机名与您的域名关联起来。之后,ONLYOFFICE 文档将在
https://your-domain-name/可用。 -
使用 Let's Encrypt 证书通过 HTTPS 暴露 ONLYOFFICE 文档
-
添加 Helm 仓库:
$ helm repo add jetstack https://charts.jetstack.io $ helm repo update -
安装 cert-manager
$ helm install cert-manager --version v1.17.4 jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true \ --set crds.keep=false接下来,通过将
ingress.enabled、ingress.ssl.enabled和ingress.letsencrypt.enabled参数设置为true来执行安装或升级。同时,在参数ingress.letsencrypt.email、ingress.host或ingress.tenants(例如,--set "ingress.tenants={tenant1.example.com,tenant2.example.com}")中设置您自己的值,如果您想使用多个域名。
-
添加 Helm 仓库:
-
安装 Kubernetes Nginx Ingress 控制器
-
在虚拟路径上暴露 ONLYOFFICE 文档
这种暴露方式允许您在虚拟路径上暴露 ONLYOFFICE 文档,例如
http://your-domain-name/docs。要通过 Ingress 在虚拟路径上暴露 ONLYOFFICE 文档,请设置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的虚拟路径配置,请将模式(/|$)(.*)附加到ingress.path,例如/docs变为/docs(/|$)(.*)。
-
通过服务暴露 ONLYOFFICE 文档(仅限 HTTP)
-
在 OpenShift 中通过路由暴露 ONLYOFFICE 文档
这种暴露方式允许您在 OpenShift 中通过路由暴露 ONLYOFFICE 文档。要通过路由暴露 ONLYOFFICE 文档,请使用以下参数:
openshift.route.enabled、openshift.route.host、openshift.route.path。$ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docs对于 tls 终结,请通过 OpenShift Web 控制台手动将证书添加到路由。
6. 扩展 ONLYOFFICE 文档(可选)
-
水平 Pod 自动缩放
您可以启用自动缩放,以便根据指标的值和类型自动计算
docservice和converter部署的副本数。对于资源指标,必须注册 API metrics.k8s.io,这通常由 metrics-server 提供。它可以作为集群附加组件启动。
要使用目标利用率值(
target.type==Utilization),必须在部署中指定resources.requests的值。有关水平 Pod 自动缩放的更多信息,请参阅此处。
要为
docservice部署启用 HPA,请指定docservice.autoscaling.enabled=true参数。在这种情况下,docservice.replicas参数将被忽略,副本数由 HPA 控制。类似地,要为
converter部署启用 HPA,请指定converter.autoscaling.enabled=true参数。在这种情况下,converter.replicas参数将被忽略,副本数由 HPA 控制。启用
autoscaling.enabled参数后,默认情况下自动缩放将根据平均 CPU 利用率百分比调整副本数。有关其他可配置的自动缩放参数,请参阅参数表。 -
手动缩放
docservice和converter部署默认各包含 2 个 Pod。要缩放
docservice部署,请使用以下命令:$ kubectl scale -n default deployment docservice --replicas=POD_COUNT其中 POD_COUNT 是
docservicePod 的数量。对
converter部署执行相同操作:$ kubectl scale -n default deployment converter --replicas=POD_COUNT
7. 更新 ONLYOFFICE 文档
必须设置更新参数。例如:
$ helm upgrade documentserver onlyoffice/docs \
--set docservice.image.tag=[version]
或者修改 values.yaml 文件并运行命令:
$ helm upgrade documentserver -f values.yaml onlyoffice/docs
运行 helm upgrade 命令会启动一个钩子,该钩子会关闭 ONLYOFFICE 文档并清理数据库。这在更新 ONLYOFFICE 文档版本时需要。默认的钩子执行时间为 300 秒。可以使用 --timeout [time] 更改执行时间,例如:
$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
如果您想更新 ONLYOFFICE 文档版本以外的任何参数,请在 helm upgrade 命令中不带 hooks 运行,例如:
$ helm upgrade documentserver onlyoffice/docs --set jwt.enabled=false --no-hooks
要回滚更新,请运行以下命令:
$ helm rollback documentserver
8. 关闭 ONLYOFFICE 文档(可选)
要执行关闭,请运行以下命令:
$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n <NAMESPACE>
其中 <NAMESPACE> 是安装了 ONLYOFFICE 文档的命名空间。如果未指定,将使用默认值:default。
例如:
$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n onlyoffice
成功执行 Job 创建的 Pod shutdown-ds 后,使用以下命令删除此 Job:
$ kubectl delete job shutdown-ds -n <NAMESPACE>
如果在停止 ONLYOFFICE 文档后需要再次启动它,请重新启动 docservice 和 converter Pod。例如,使用以下命令:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
9. 更新 ONLYOFFICE 文档许可证(可选)
从 v5.1.1 版本开始,您可以通过简单地使用新许可证重新创建密钥来更新许可证,而无需删除或重启 Pod。documentserver 现在能够在替换许可证文件后动态重新读取它。例如:
要更新许可证,您需要执行以下步骤:
- 将包含新密钥的 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 是包含许可证的现有密钥的名称
就这样,documentserver 将自行重新读取新许可证。
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. ONLYOFFICE 文档安装测试(可选)
您可以通过运行以下命令测试 ONLYOFFICE 文档的可用性以及对连接依赖项的访问:
$ helm test documentserver -n <NAMESPACE>
输出应包含以下行:
Phase: Succeeded
要查看作为 helm test 命令结果运行的 Pod 的日志,请运行以下命令:
$ kubectl logs -f test-ds -n <NAMESPACE>
ONLYOFFICE 文档的可用性检查被认为是优先级,因此如果检查失败并出现错误,则测试被视为失败。
之后,您可以通过运行以下命令删除 test-ds Pod:
$ kubectl delete pod test-ds -n <NAMESPACE>
11. 在私有 k8s 集群中运行任务(可选)
当运行用于安装、更新、回滚和删除的Job时,启动的容器需要访问互联网以下载最新的 sql 脚本。如果您的 k8s
集群中禁止容器访问外部网络,则可以通过设置privateCluster=true参数并手动创建一个包含必要 sql 脚本的ConfigMap来执行这些任务。
为此,请运行以下命令:
如果您的集群中已存在remove-db-scripts和init-db-scripts配置映射,请删除它们:
$ kubectl delete cm remove-db-scripts init-db-scripts
下载用于数据库清理和数据库表创建的 ONLYOFFICE 文档数据库脚本:
如果选择 PostgreSQL 作为数据库服务器:
$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/createdb.sql
如果选择 MySQL 作为数据库服务器:
$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/createdb.sql
从这些文件创建配置映射:
$ kubectl create configmap remove-db-scripts --from-file=./removetbl.sql
$ kubectl create configmap init-db-scripts --from-file=./createdb.sql
如果您为ConfigMap及其创建的文件指定了不同的名称,请为相应的任务设置适当的参数:
- 用于数据库清理脚本的
existingConfigmap.tblRemove.name和existingConfigmap.tblRemove.keyName - 用于数据库表创建脚本的
existingConfigmap.tblCreate.name和existingConfigmap.tblCreate.keyName
接下来,在执行helm install|upgrade|rollback|delete命令时,设置参数privateCluster=true
privateCluster=false,无需手动创建带有
sql 脚本的配置映射,并设置参数webProxy.enabled=true,同时为 Web 代理设置适当的参数。12. 访问信息页面(可选)
默认情况下,对/info页面的访问是受限的。为了允许访问,您需要使用proxy.infoAllowedIP参数指定 IP
地址或子网(在这种情况下,它们将是代理容器客户端)。考虑到 Kubernetes 网络交互的特性,有可能获取用户的原始
IP(代理客户端),尽管这不是标准场景。通常,Pod/节点/负载均衡器地址实际上是客户端,因此应使用这些地址。在这种情况下,信息页面的访问将对所有人可用。您可以使用 Nginx 基本认证进一步限制对info页面的访问,您可以通过设置proxy.infoAllowedUser参数值并使用proxy.infoAllowedPassword参数设置密码来启用该认证,或者您可以使用proxy.infoAllowedExistingSecret参数设置包含密码的现有密钥的名称。
使用 Grafana 可视化指标(可选)
1. 部署 Grafana
-
不安装现成仪表板部署 Grafana
如果您想部署 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 仪表板,请将
grafana.enabled和grafana.dashboard.enabled参数设置为true。如果 ONLYOFFICE 文档已安装,您需要运行helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=true命令,或者如果参数已在values.yaml文件中指定,则运行helm upgrade documentserver -f ./values.yaml onlyoffice/docs。结果,将以JSON格式从 Grafana 网站下载现成的仪表板,对其进行必要的编辑,并从中创建配置映射。还将添加一个仪表板来可视化来自 ONLYOFFICE 文档的指标(假设步骤 #6 已完成)。 -
安装 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 \ --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 中:
- 节点导出器
- 部署 Statefulset Daemonset
- 用于 Prometheus Redis 导出器的 Redis 仪表板
- RabbitMQ-概述
- PostgreSQL 数据库
- NGINX Ingress 控制器
- ONLYOFFICE 文档
- Pod 和容器的资源使用情况
您可以在此处查看在 Grafana 中可视化的 ONLYOFFICE 文档指标的描述。有关通过 Helm 安装 Grafana 的更多详细信息,请参阅此处。
-
安装现成的 Grafana 仪表板
2. 通过 Ingress 访问 Grafana
如果 ONLYOFFICE 文档在安装时使用了参数grafana.ingress.enabled(步骤
#5.2),则访问 Grafana 的地址为:http://INGRESS-ADDRESS/grafana/
如果 Ingress 是使用安全连接安装的(步骤 #5.3.2.3),则访问 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 接收到的指标。