跳到主要内容

适用于 Kubernetes 的 ONLYOFFICE 文档

介绍​

重要

以下指南仅适用于付费集群许可解决方案。

  • 您必须已安装 Kubernetes 或 OpenShift 集群:
  • 您还应该拥有本地配置的 kubectl 副本。请参阅此指南了解如何安装和配置 kubectl。
  • 您应该安装 Helm v3.7+。请按照此处的说明进行安装。
  • 如果您使用 OpenShift,可以使用 oc 和 kubectl 来管理部署。
  • 如果从 Helm Chart 在 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

或者,您可以指定目标命名空间中允许的用户和组范围,在安装依赖项(如 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. 安装持久存储​

重要

如果您想使用 Amazon S3 作为缓存,请跳过此步骤。

安装 NFS 服务器预配置器

备注

安装 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 集群中可用的持久存储类。

    不同提供程序的持久存储类:

    • Amazon EKS:gp2
    • Digital Ocean:do-block-storage
    • IBM Cloud:默认 ibmc-file-bronze。更多存储类
    • Yandex Cloud:yc-network-hdd 或 yc-network-ssd。更多详情
    • minikube:standard
  • 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 或更多的持久存储。

重要

用于 PVC 放置的 PersistentVolume 类型必须支持访问模式 ReadWriteMany。此外,PersistentVolume 的所有者必须是启动 ONLYOFFICE 文档的用户。默认情况下是 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 的更多详细信息,请参阅此处。

6. 部署 StatsD 导出器​

重要

此步骤可选。如果您不想运行 StatsD 导出器,可以完全跳过此步骤。

  1. 添加 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
  2. 安装 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 的更多详细信息,请参阅此处。

  3. 安装 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 配置文件​

重要

此步骤可选。如果您不需要修改配置文件,可以完全跳过此步骤。

  1. 创建一个包含 json 文件的 ConfigMap

    为了从一个包含 local.json 结构的文件创建 ConfigMap,您需要运行以下命令:

    $ kubectl create configmap local-config \
    --from-file=./local.json
    备注

    可以使用任何名称代替 local-config。

  2. 在安装 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-hooks

    命令,或者运行

    helm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooks

    命令(如果参数已在 values.yaml 文件中指定)。

8. 添加自定义字体​

重要

此步骤可选。如果您不需要添加字体,可以完全跳过此步骤。

为了向镜像中添加字体,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。

9. 添加插件​

重要

此步骤可选。如果您不需要添加插件,可以完全跳过此步骤。

为了向镜像中添加插件,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。

10. 添加自定义字典​

重要

此步骤可选。如果您不需要添加字典,可以完全跳过此步骤。

为了向镜像中添加自定义字典,您需要重新构建镜像。请参考此手册中的相关步骤。然后在安装 ONLYOFFICE 文档时指定您的镜像。

11. 更改界面主题​

重要

此步骤可选。如果您不需要更改界面主题,可以完全跳过此步骤。

  1. 创建一个包含 json 文件的 ConfigMap

    为了创建一个包含界面主题的 json 文件的 ConfigMap,您需要运行以下命令:

    $ kubectl create configmap custom-themes \
    --from-file=./custom-themes.json
    备注

    您可以使用任何其他名称代替 custom-themes 和 custom-themes.json。

  2. 在安装 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。

12. 将 Amazon S3 存储桶作为缓存连接到 ONLYOFFICE Helm 文档​

重要

此步骤可选。如果您不想使用 Amazon S3 作为缓存存储,可以完全跳过此步骤。

为了将 Amazon S3 存储桶作为缓存连接,您需要根据本指南创建配置文件或编辑现有文件,并将参数 persistence.storageS3 的值更改为 true。

部署 ONLYOFFICE 文档​

备注

安装到 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

或者,您可以在描述 podTemplate 的所有资源的 commonAnnotations 或 annotations 中应用 nonroot-v2 SecurityContextConstraints (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 和 <resources>.containerSecurityContext.enabled 设置为 true。

1. 部署 ONLYOFFICE 文档许可证​

  1. 创建密钥

    如果您有有效的 ONLYOFFICE 文档许可证,请从文件创建名为 license 的密钥:

    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic

    其中 SECRET_LICENSE_NAME 是带有许可证的未来密钥的名称。

    备注

    源许可证文件名应为 'license.lic',因为此名称将用作创建密钥中的字段。

    备注

    如果安装时没有使用现有许可证文件创建密钥,则会自动创建一个空的密钥 license。有关如何更新现有许可证密钥的信息,请参阅此处。

  2. 在安装 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 集群上。参数部分列出了可以在安装过程中配置的参数。

备注

在位于 Web 代理后面或无法访问互联网的私有 k8s 集群中安装 ONLYOFFICE 文档时,请参阅下面的注意事项。

3. 卸载 ONLYOFFICE 文档​

要卸载/删除 documentserver 部署:

$ helm delete documentserver

执行 helm delete 命令会启动钩子,这些钩子在完全删除 ONLYOFFICE 文档之前执行一些准备操作,包括停止服务器、清理已使用的 PVC 和数据库表。默认的钩子执行时间为 300 秒。可以使用 --timeout [time] 更改执行时间,例如:

$ helm delete documentserver --timeout 25m
备注

在位于 Web 代理后面或无法访问互联网的私有 k8s 集群中删除 ONLYOFFICE 文档时,请参阅下面的注意事项。

如果您想删除 ONLYOFFICE 文档而不执行任何准备操作,请运行以下命令:

$ helm delete documentserver --no-hooks

helm delete 命令会删除与 Chart 关联的所有 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

此命令通过 HTTPS 暴露 ONLYOFFICE 文档。

或者,可以在安装 Chart 时提供一个 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.redisHostRedis 主机的 IP 地址或名称。如果在connections.redisClusterNodes和connections.redisSentinelNodes中设置了值,则不使用此参数。redis-master
connections.redisPortRedis 服务器端口号。如果在connections.redisClusterNodes和connections.redisSentinelNodes中设置了值,则不使用此参数。6379
connections.redisUserRedis 用户名称。如果您添加自定义配置文件,此参数中的值将覆盖local.json中options对象设置的值。default
connections.redisDBNum要选择的 Redis 逻辑数据库编号。如果您添加自定义配置文件,此参数中的值将覆盖local.json中options对象设置的值。0
connections.redisClusterNodesRedis 集群中的节点列表。无需指定集群中的每个节点,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.redisSentinelNodesRedis 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.amqpHostAMQP 服务器的 IP 地址或名称。rabbitmq
connections.amqpPort连接到 AMQP 服务器的端口。5672
connections.amqpVhost连接到 AMQP 服务器的虚拟主机。/
connections.amqpUserAMQP 服务器帐户的用户名。user
connections.amqpProto连接到 AMQP 服务器的协议。amqp
connections.amqpPasswordAMQP 服务器用户密码。如果设置,则优先于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.sizeONLYOFFICE 文档卷的 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.typePod 反亲和性类型。允许的值: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.replicasDocservice 副本数量。如果启用了 docservice.autoscaling.enabled 参数,则忽略此参数。2
docservice.updateStrategy.typeDocservice 部署更新策略类型。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.repositoryDocservice 容器镜像仓库*。onlyoffice/docs-docservice-de
docservice.image.tagDocservice 容器镜像标签。9.0.4-1
docservice.image.pullPolicyDocservice 容器镜像拉取策略。IfNotPresent
docservice.containerSecurityContext.enabled为 Docservice 容器启用安全上下文。false
docservice.lifecycleHooks定义 Docservice 容器生命周期钩子。用于在容器生命周期的特定点触发要运行的事件。{}
docservice.resources.requestsDocservice 容器的请求资源。{}
docservice.resources.limitsDocservice 容器的资源限制。{}
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.minReplicasDocservice 部署自动缩放的最小副本数。2
docservice.autoscaling.maxReplicasDocservice 部署自动缩放的最大副本数。4
docservice.autoscaling.targetCPU.enabled通过 CPU 使用率百分比启用 Docservice 部署的自动缩放。true
docservice.autoscaling.targetCPU.utilizationPercentageDocservice 部署自动缩放的目标 CPU 百分比。70
docservice.autoscaling.targetMemory.enabled通过内存使用率百分比启用 Docservice 部署的自动缩放。false
docservice.autoscaling.targetMemory.utilizationPercentageDocservice 部署自动缩放的目标内存百分比。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.repositoryDocservice 代理容器镜像仓库*。onlyoffice/docs-proxy-de
proxy.image.tagDocservice 代理容器镜像标签。9.0.4-1
proxy.image.pullPolicyDocservice 代理容器镜像拉取策略。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.dsUrlONLYOFFICE 文档外部地址。仅在需要检查示例中的转换操作时才应更改此设置(例如 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.existingONLYOFFICE 文档的现有服务名称。如果未指定,将创建一个名为 documentserver 的服务。""
service.annotations要添加到 ONLYOFFICE 文档服务的注释映射。如果设置,则优先于 commonAnnotations。{}
service.typeONLYOFFICE 文档服务类型。ClusterIP
service.portONLYOFFICE 文档服务端口。8888
service.sessionAffinityONLYOFFICE 文档服务的会话亲和性。如果未设置,则默认值将为 None。""
service.sessionAffinityConfigONLYOFFICE 文档服务会话亲和性的配置。在设置了 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.hostONLYOFFICE 文档 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.clusterIssuerNameClusterIssuer 名称。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.hostONLYOFFICE 文档路由的 OpenShift 路由主机名。""
openshift.route.path指定 ONLYOFFICE 文档可用的路径。/
openshift.route.wildcardPolicyOpenShift 路由中处理通配符子域的策略。允许的值为 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
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.repositoryGrafana 仪表板 ONLYOFFICE 文档 Job 的镜像仓库。onlyoffice/docs-utils
grafanaDashboard.job.image.tagGrafana 仪表板 ONLYOFFICE 文档 Job 的镜像标签。9.0.4-1
grafanaDashboard.job.image.pullPolicyGrafana 仪表板 ONLYOFFICE 文档 Job 的镜像拉取策略。IfNotPresent
grafanaDashboard.job.containerSecurityContext.enabled为 Grafana 仪表板容器启用安全上下文。false
grafanaDashboard.job.resources.requestsGrafana 仪表板 Job 容器的请求资源。{}
grafanaDashboard.job.resources.limitsGrafana 仪表板 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.repositoryWOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像仓库。onlyoffice/docs-utils
wopiKeysGeneration.job.image.tagWOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像标签。9.0.4-1
wopiKeysGeneration.job.image.pullPolicyWOPI 密钥生成 ONLYOFFICE 文档 Job 的镜像拉取策略。IfNotPresent
wopiKeysGeneration.job.containerSecurityContext.enabled为 WOPI 密钥生成容器启用安全上下文。false
wopiKeysGeneration.job.resources.requestsWOPI 密钥生成 Job 容器的请求资源。{}
wopiKeysGeneration.job.resources.limitsWOPI 密钥生成 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.repositoryWOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像仓库。onlyoffice/docs-utils
wopiKeysDeletion.job.image.tagWOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像标签。9.0.4-1
wopiKeysDeletion.job.image.pullPolicyWOPI 密钥删除 ONLYOFFICE 文档 Job 的镜像拉取策略。IfNotPresent
wopiKeysDeletion.job.containerSecurityContext.enabled为 WOPI 密钥删除容器启用安全上下文。false
wopiKeysDeletion.job.resources.requestsWOPI 密钥删除 Job 容器的请求资源。{}
wopiKeysDeletion.job.resources.limitsWOPI 密钥删除 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 文档服务器开发者版。要了解有关此版本的更多信息并将其与其他版本进行比较,请参阅此页面上的比较表。

5. 配置和安装细节​

  1. 示例部署(可选)

    重要

    此步骤可选。如果您不需要部署示例,可以完全跳过此步骤。

    要部署示例,请将 example.enabled 参数设置为 true:

    $ helm install documentserver onlyoffice/docs --set example.enabled=true
  2. 指标部署(可选)

    重要

    此步骤可选。如果您不需要部署指标,可以完全跳过此步骤。

    要部署指标,请将 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
  3. 暴露 ONLYOFFICE 文档

    1. 通过服务暴露 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/ 可用。

    2. 通过 Ingress 暴露 ONLYOFFICE 文档

      首先,安装 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

      有关通过 Helm 安装 Nginx Ingress 的更多详细信息,请参阅此处。

      然后选择暴露方式:

      • 通过 HTTP

        备注

        如果您打算通过 HTTPS 暴露 ONLYOFFICE 文档,应跳过此步骤。

        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true

        获取 Ingress 的 IP:

        $ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"

        ONLYOFFICE 文档将在 http://DOCUMENTSERVER-INGRESS-IP/ 可用(如果 IP 为空,请使用主机名)。

      • 通过 HTTPS(TLS 终结)

        创建包含 SSL 证书的 tls 密钥:

        $ 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

        通过您的 DNS 提供商将 Ingress IP 或主机名与您的域名关联起来。之后,ONLYOFFICE 文档将在 https://your-domain-name/ 可用。

      • 使用 Let's Encrypt 证书通过 HTTPS

        $ 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 文档,将 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(/|$)(.*)。

    3. 在 OpenShift 中通过路由暴露 ONLYOFFICE 文档

      $ 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 文档​

重要

此步骤可选。如果您想使用默认部署设置,可以完全跳过此步骤。

  1. 水平 Pod 自动缩放

    您可以启用自动缩放,以便根据指标的值和类型自动计算 docservice 和 converter 部署的副本数。

    对于资源指标,必须注册 API metrics.k8s.io,这通常由 metrics-server 提供。它可以作为集群附加组件启动。

    要为 docservice 部署启用 HPA,请指定 docservice.autoscaling.enabled=true 参数。类似地,要为 converter 部署启用 HPA,请指定 converter.autoscaling.enabled=true。在这两种情况下,相应的 replicas 参数将被忽略,副本数由 HPA 控制。

    有关水平 Pod 自动缩放的更多信息,请参阅此处。有关其他可配置的自动缩放参数,请参阅参数表。

  2. 手动缩放

    docservice 和 converter 部署默认各包含 2 个 Pod。

    要缩放 docservice 部署:

    $ kubectl scale -n default deployment docservice --replicas=POD_COUNT

    要缩放 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 文档并清理数据库。默认的钩子执行时间为 300 秒。要更改执行时间:

$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
备注

在位于 Web 代理后面或无法访问互联网的私有 k8s 集群中升级 ONLYOFFICE 文档时,请参阅下面的注意事项。

如果您想更新 ONLYOFFICE 文档版本以外的任何参数,请不带钩子运行 helm upgrade:

$ helm upgrade documentserver onlyoffice/docs --set jwt.enabled=false --no-hooks

要回滚更新:

$ helm rollback documentserver
备注

在私有 k8s 集群中回滚 ONLYOFFICE 文档时,请参阅下面的注意事项。

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

成功执行 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。要更新许可证:

  • 将新的 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 将自行重新读取新许可证。

已弃用方法

重启 docservice 和 converter Pod:

$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>

10. ONLYOFFICE 文档安装测试​

重要

此步骤可选。

测试 ONLYOFFICE 文档的可用性以及对连接依赖项的访问:

$ helm test documentserver -n <NAMESPACE>

输出应包含:

Phase: Succeeded

要查看测试日志:

$ kubectl logs -f test-ds -n <NAMESPACE>

测试完成后,删除 test-ds Pod:

$ kubectl delete pod test-ds -n <NAMESPACE>
备注

此测试仅供参考,不能保证 100% 的可用性。可以在应用程序日志中找到更详细的信息。

11. 在私有 k8s 集群中运行任务​

重要

此步骤可选。如果您的集群可以不受限制地访问互联网,可以完全跳过此步骤。

从 Helm chart 6.1.0 版本开始,初始化数据库所需的 SQL 脚本已包含在 docs-utils 镜像中,因此 Job 无需访问互联网来下载这些脚本。

备注

如果您将需要访问互联网的自定义脚本映射到 install.existingConfigmap.initdb 或 upgrade|rollback|delete.existingConfigmap.dsStop 参数指定的配置映射,并且您的网络中有可用的 Web 代理,请设置 webProxy.enabled=true 以及相应的 Web 代理参数,以便 Pod 的容器能够访问互联网。

12. 访问信息页面​

重要

此步骤可选。

默认情况下,对 /info 页面的访问是受限的。为了允许访问,请使用 proxy.infoAllowedIP 参数指定 IP 地址或子网。请注意,考虑到 Kubernetes 网络交互的特性,实际的客户端通常是 Pod、节点或负载均衡器地址,而不是用户的原始 IP。

您可以使用 Nginx 基本认证进一步限制访问,方法是设置 proxy.infoAllowedUser 参数并使用 proxy.infoAllowedPassword 设置密码。或者,通过设置 proxy.infoAllowedExistingSecret 来使用现有密钥。

使用 Grafana 可视化指标​

重要

本部分可选。如果您不想安装 Grafana,可以完全跳过本部分。

1. 部署 Grafana​

备注
  1. 不安装现成仪表板部署 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
  2. 安装现成仪表板并部署 Grafana

    1. 安装现成的 Grafana 仪表板

      将 grafana.enabled 和 grafana.dashboard.enabled 参数设置为 true。如果 ONLYOFFICE 文档已安装,请运行:

      helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=true

      结果,将以 JSON 格式从 Grafana 网站下载现成的仪表板,对其进行必要的编辑,并从中创建配置映射。还将添加一个仪表板来可视化来自 ONLYOFFICE 文档的指标(假设步骤 6(部署 StatsD 导出器)已完成)。

    2. 安装 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 的更多详细信息,请参阅此处。

2. 通过 Ingress 访问 Grafana​

备注

如果 ONLYOFFICE 文档在安装时使用了参数 grafana.ingress.enabled(指标部署),则访问 Grafana 的地址为:http://INGRESS-ADDRESS/grafana/

如果 Ingress 是使用安全连接安装的(通过 HTTPS 暴露 ONLYOFFICE 文档),则访问 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 接收到的指标。