メインコンテンツまでスキップ

Kubernetes向けONLYOFFICE Docs

はじめに​

重要

以下のガイドは、有料のクラスターライセンスソリューションにのみ有効です。

  • KubernetesまたはOpenShiftクラスターをインストールしている必要があります:
  • ローカルに設定されたkubectlのコピーも必要です。kubectlのインストールと設定については、こちらのガイドを参照してください。
  • Helm v3.7+をインストールする必要があります。インストール手順はこちらを参照してください。
  • OpenShiftを使用する場合、ocとkubectlの両方を使用してデプロイを管理できます。
  • OpenShiftクラスターでHelm Chartから'Docs'以外のコンポーネントをインストールする場合、アクセス権の問題を避けるためにcluster-adminロールを持つユーザーからインストールすることをお勧めします。必要なロールをユーザーに追加する方法については、こちらのガイドを参照してください。

デプロイ前提条件​

注記

OpenShiftクラスターにインストールする際に、SecurityContextConstraintsポリシーを適用する必要があるかもしれません。これは、ID = 1001のユーザーからコンテナを実行する権限を追加します。

これを行うには、以下のコマンドを実行してください:

$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/helm-components.yaml
$ oc adm policy add-scc-to-group scc-helm-components system:authenticated

または、ターゲットネームスペースから許可されたユーザーとグループの範囲を指定することもできます。依存関係をインストールする際に、runAsUserとfsGroupのパラメーターを参照してください(例:RabbitMQ、Redis、PostgreSQLなど)。

1. Helmリポジトリを追加​

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo add nfs-server-provisioner https://kubernetes-sigs.github.io/nfs-ganesha-server-and-external-provisioner
$ helm repo add onlyoffice https://download.onlyoffice.com/charts/stable
$ helm repo update

2. 永続ストレージのインストール​

重要

Amazon S3をキャッシュとして使用したい場合は、このステップをスキップしてください。

NFSサーバープロビジョナーのインストール

注記

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 Docsの100人のアクティブユーザーごとに8Gi以上の永続ストレージを使用することをお勧めします。

重要

PVC配置に使用されるPersistentVolumeタイプは、アクセスモードReadWriteManyをサポートする必要があります。また、PersistentVolumeは、ONLYOFFICE Docsを開始するユーザーを所有者として持つ必要があります。デフォルトではds(101:101)です。

WOPIを有効にしたい場合は、パラメーターwopi.enabled=trueを設定してください。この場合、永続ストレージは、クライアントのマウントされたディレクトリに対してキャッシュ属性が無効になっているクラスターのノードに接続する必要があります。NFSサーバープロビジョナーの場合、storageClass.mountOptionsパラメーターにnoacオプションを追加することで実現できます。詳細はこちらを参照してください。

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
注記

Prometheusで収集するためにRabbitMQメトリクスを公開するには、metrics.enabled=trueを設定してください。

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
注記

Prometheusで収集するためにRedisメトリクスを公開するには、metrics.enabled=trueを設定してください。また、次のパラメーターを追加してください: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
注記

Prometheusで収集するためにデータベースメトリクスを公開するには、metrics.enabled=trueを設定してください。また、次のパラメーターを追加してください: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 DocsでStatsDメトリクスを許可するには、このステップに従ってください。

7. Node-config設定ファイルを変更する​

重要

このステップはオプションです。設定ファイルを変更する必要がない場合は、完全にスキップできます。

  1. JSONファイルを含むConfigMapを作成する

    local.json構造を含むファイルからConfigMapを作成するには、次のコマンドを実行します:

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

    local-configの代わりに任意の名前を使用できます。

  2. ONLYOFFICE Docsをインストールする際のパラメーターを指定する

    ONLYOFFICE Docsをインストールする際に、extraConf.configMap=local-configとextraConf.filename=local.jsonのパラメーターを指定します。

    注記

    ONLYOFFICE Docsを既にインストールした後に設定ファイルを追加する必要がある場合は、ステップ7.1を実行し、次に

    helm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks

    コマンドを実行するか、

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

    を実行します(パラメーターがvalues.yamlファイルに指定されている場合)。

8. カスタムフォントを追加する​

重要

このステップはオプションです。フォントを追加する必要がない場合は、完全にスキップできます。

画像にフォントを追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。

9. プラグインを追加する​

重要

このステップはオプションです。プラグインを追加する必要がない場合は、完全にスキップできます。

画像にプラグインを追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。

10. カスタム辞書を追加する​

重要

このステップはオプションです。辞書を追加する必要がない場合は、完全にスキップできます。

画像にカスタム辞書を追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。

11. インターフェーステーマを変更する​

重要

このステップはオプションです。インターフェーステーマを変更する必要がない場合は、完全にスキップできます。

  1. JSONファイルを含むConfigMapを作成する

    インターフェーステーマを含むJSONファイルでConfigMapを作成するには、次のコマンドを実行します:

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

    custom-themesとcustom-themes.jsonの代わりに任意の名前を使用できます。

  2. ONLYOFFICE Docsをインストールする際のパラメーターを指定する

    ONLYOFFICE Docsをインストールする際に、extraThemes.configMap=custom-themesとextraThemes.filename=custom-themes.jsonのパラメーターを指定します。

    注記

    ONLYOFFICE Docsを既にインストールした後にインターフェーステーマを追加する必要がある場合は、ステップ11.1を実行し、次にhelm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooksコマンドを実行するか、パラメーターがvalues.yamlファイルに指定されている場合はhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksを実行します。

12. Amazon S3バケットをONLYOFFICE Helm Docsのキャッシュとして接続する​

重要

このステップはオプションです。Amazon S3をキャッシュストレージとして使用したくない場合は、完全にスキップできます。

Amazon S3バケットをキャッシュとして接続するには、設定ファイルを作成するか、既存のものを編集し、このガイドに従って、パラメーターpersistence.storageS3の値をtrueに変更します。

ONLYOFFICE Docsをデプロイする​

注記

OpenShiftクラスターにインストールする際には、SecurityContextConstraintsポリシーを適用する必要があるかもしれません。これは、ID = 101のユーザーからコンテナを実行する権限を追加します。

これを行うには、次のコマンドを実行します:

$ oc apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/scc/docs-components.yaml
$ oc adm policy add-scc-to-group scc-docs-components system:authenticated

または、ポッドテンプレートを記述するすべてのリソースに対して、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 Docsライセンスをデプロイする​

  1. シークレットを作成する

    有効なONLYOFFICE Docsライセンスをお持ちの場合、ファイルからlicenseというシークレットを作成します:

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

    ここで、SECRET_LICENSE_NAMEはライセンスを持つ将来のシークレットの名前です。

    注記

    ソースライセンスファイル名は「license.lic」である必要があります。この名前は作成されたシークレットのフィールドとして使用されます。

    注記

    既存のライセンスファイルを持つシークレットを作成せずにインストールを行う場合、空のシークレットlicenseが自動的に作成されます。ライセンスを使用して既存のシークレットを更新する方法については、こちらをご覧ください。

  2. ONLYOFFICE Docsをインストールする際のパラメータ指定

    ONLYOFFICE Docsをインストールする際には、license.existingSecret=[SECRET_LICENSE_NAME]パラメータを指定してください。

    $ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]
    注記

    ONLYOFFICE Docsを既にインストールした後でライセンスを追加する必要がある場合は、ステップ1.1を実行し、その後helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooksコマンドを実行するか、パラメータがvalues.yamlファイルに指定されている場合はhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksを実行してください。

2. ONLYOFFICE Docsのデプロイ​

リリース名documentserverでONLYOFFICE Docsをデプロイするには:

$ helm install documentserver onlyoffice/docs

このコマンドは、デフォルトの設定でKubernetesクラスターにONLYOFFICE Docsをデプロイします。インストール中に設定できるパラメータはパラメータセクションにリストされています。

注記

Webプロキシの背後やインターネットアクセスがないプライベートk8sクラスターにONLYOFFICE Docsをインストールする場合は、以下の注意事項を参照してください。

3. ONLYOFFICE Docsのアンインストール​

documentserverデプロイメントをアンインストール/削除するには:

$ helm delete documentserver

helm deleteコマンドを実行すると、ONLYOFFICE Docsを完全に削除する前にいくつかの準備作業を行うフックが起動します。これにはサーバーの停止、使用されたPVCとデータベーステーブルのクリーンアップが含まれます。デフォルトのフック実行時間は300秒です。実行時間は--timeout [time]を使用して変更できます。例えば:

$ helm delete documentserver --timeout 25m
注記

Webプロキシの背後やインターネットアクセスがないプライベートk8sクラスターでONLYOFFICE Docsを削除する場合は、以下の注意事項を参照してください。

準備作業なしでONLYOFFICE Docsを削除したい場合は、次のコマンドを実行してください:

$ helm delete documentserver --no-hooks

helm deleteコマンドは、チャートに関連付けられたすべてのKubernetesコンポーネントを削除し、リリースを削除します。

4. パラメータ​

各パラメーターを指定するには、--set key=value[,key=value] 引数を helm install に使用します。例えば:

$ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com

このコマンドは、ONLYOFFICE Docs を HTTPS 経由で公開します。

または、チャートをインストールする際にパラメーターの値を指定する YAML ファイルを提供することもできます。例えば:

$ helm install documentserver -f values.yaml onlyoffice/docs
注記

デフォルトの values.yaml を使用できます。

すべてのパラメーターを表示
パラメーター説明デフォルト
connections.dbTypeデータベースの種類。可能な値はpostgres、mariadb、mysql、oracle、mssql、damengですpostgres
connections.dbHostデータベースホストのIPアドレスまたは名前postgresql
connections.dbUserデータベースユーザーpostgres
connections.dbPortデータベースサーバーのポート番号5432
connections.dbNameアプリケーションが接続するデータベースの名前postgres
connections.dbPasswordデータベースユーザーのパスワード。設定されている場合、connections.dbExistingSecretより優先されます""
connections.dbSecretKeyNameデータベースユーザーパスワードを含むキーの名前postgres-password
connections.dbExistingSecretデータベースパスワードに使用する既存のシークレットの名前。connections.dbSecretKeyNameで指定されたキーを含んでいる必要がありますpostgresql
connections.redisConnectorNameRedisに接続するために使用するコネクタを定義します。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.redisPasswordRedisアカウントに設定されたパスワード。設定されている場合、connections.redisExistingSecretより優先されます。このパラメータの値は、カスタム設定ファイルを追加する場合、local.jsonのoptionsオブジェクトに設定された値を上書きします""
connections.redisSecretKeyNameRedisユーザーパスワードを含むキーの名前redis-password
connections.redisExistingSecretRedisパスワードに使用する既存のシークレットの名前。connections.redisSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsonのoptionsオブジェクトに設定されたパスワードを上書きしますredis
connections.redisNoPassパスワードなしでRedis認証を使用するかどうかを定義します。Redisサーバーへの接続にパスワードが必要ない場合、値をtrueに設定しますfalse
connections.redisSentinelNodesRedis Sentinelノードのリスト。すべてのノードを指定する必要はなく、3つで十分です。複数の値を指定できます。host:port形式で指定する必要があります。connections.redisConnectorNameがioredisに設定されている場合に使用されます[]
connections.redisSentinelGroupNameマスターと1つ以上のスレーブで構成されるRedisインスタンスのグループの名前。connections.redisConnectorNameがioredisに設定されている場合に使用されますmymaster
connections.redisSentinelExistingSecretRedis Sentinelパスワードに使用する既存のシークレットの名前。connections.redisSentinelSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsonのiooptionsオブジェクトに設定されたパスワードを上書きします""
connections.redisSentinelSecretKeyNameRedis Sentinelユーザーパスワードを含むキーの名前。redisSentinelPasswordにパスワードを設定した場合、ここで設定された値がキー名となるシークレットが自動的に作成されますsentinel-password
connections.redisSentinelPasswordRedis Sentinelアカウントに設定されたパスワード。設定されている場合、connections.redisSentinelExistingSecretより優先されます。このパラメータの値は、local.jsonのiooptionsオブジェクトに設定された値を上書きします""
connections.redisSentinelNoPassパスワードなしでRedis Sentinel認証を使用するかどうかを定義します。Redis Sentinelへの接続にパスワードが必要ない場合、値をtrueに設定しますtrue
connections.amqpTypeAMQPサーバーのタイプを定義します。可能な値はrabbitmqまたはactivemqですrabbitmq
connections.amqpHostAMQPサーバーのIPアドレスまたは名前rabbitmq
connections.amqpPortAMQPサーバーへの接続ポート5672
connections.amqpVhostAMQPサーバーへの接続のための仮想ホスト/
connections.amqpUserAMQPサーバーアカウントのユーザー名user
connections.amqpProtoAMQPサーバーへの接続プロトコルamqp
connections.amqpPasswordAMQPサーバーユーザーパスワード。設定されている場合、connections.amqpExistingSecretより優先されます""
connections.amqpSecretKeyNameAMQPサーバーユーザーパスワードを含むキーの名前rabbitmq-password
connections.amqpExistingSecretAMQPサーバーパスワードに使用する既存のシークレットの名前。connections.amqpSecretKeyNameで指定されたキーを含んでいる必要がありますrabbitmq
persistence.existingClaim使用する既存のPVCの名前。指定されていない場合は、「ds-files」という名前のPVCが作成されます""
persistence.annotations「ds-files」PVCに追加で追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
persistence.storageClassONLYOFFICE Docsのデータおよびランタイム設定ボリューム用のPVCストレージクラスnfs
persistence.sizeONLYOFFICE Docsボリューム用のPVCストレージリクエスト8Gi
persistence.storageS3S3をキャッシュストレージとして使用するかどうかを定義します。S3をキャッシュストレージとして使用する場合はtrueに設定しますfalse
persistence.runtimeConfig.enabledPVCを使用するかどうか、およびコンテナにマウントするかどうかを定義しますtrue
persistence.runtimeConfig.existingClaimランタイム設定を保存するために使用される既存のPVCの名前。指定されていない場合は、「ds-runtime-config」という名前のPVCが作成されます""
persistence.runtimeConfig.annotations「ds-runtime-config」PVCに追加で付加されるアノテーションを定義します。設定されている場合、commonAnnotationsよりも優先されます{}
persistence.runtimeConfig.sizeランタイム設定ボリューム用のPVCストレージリクエスト1Gi
commonNameSuffix作成されたすべてのリソースの名前にサフィックスとして追加される名前""
namespaceOverrideONLYOFFICE Docsがデプロイされるネームスペースの名前。設定されていない場合、名前は.Release.Namespaceから取得されます""
commonLabelsデプロイされたすべてのリソースに追加で付加されるラベルを定義します。キーの値としてtplを使用することもできます{}
commonAnnotationsデプロイされたすべてのリソースに追加で付加されるアノテーションを定義します。キーの値としてtplを使用することもできます。一部のリソースはここで指定された値を独自のもので上書きする場合があります{}
serviceAccount.createServiceAccountの作成を有効にしますfalse
serviceAccount.name使用するServiceAccountの名前。設定されていない場合、serviceAccount.createがtrueの場合は.Release.Nameから取得され、serviceAccount.createがfalseの場合は「default」となります""
serviceAccount.annotationsServiceAccountに追加するアノテーションのマップ。設定されている場合、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.patternlog.type=patternの場合のログパターンを定義します[%d] [%p] %c - %.10000m
wopi.enabledWOPIが有効かどうかを定義します。このパラメータが有効になっている場合、クライアントのためにマウントされたディレクトリ(PVC)のキャッシュ属性を無効にする必要がありますfalse
wopi.keys.generationAPIキーを生成するかどうかを定義します。wopi.enabledをtrueに設定した場合に使用されますtrue
wopi.keys.newKeysExistingSecretWOPIキーを含む既存のシークレットの名前。キー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.enabledONLYOFFICE DocsのためのStatsDの有効化を指定しますfalse
metrics.hostStatsDのリスニングホストを定義しますstatsd-exporter-prometheus-statsd-exporter
metrics.portStatsDのリスニングポートを定義します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またはhardsoft
podAntiAffinity.topologyKey一致するノードラベルキーkubernetes.io/hostname
podAntiAffinity.weightノードを選択する際の優先度。1から100の範囲内です100
nodeSelectorPodの割り当てのためのノードラベル。各ONLYOFFICE Docsサービスはここで指定された値を独自のもので上書きすることができます{}
tolerationsPodの割り当てのための許容値。各ONLYOFFICE Docsサービスはここで指定された値を独自のもので上書きすることができます[]
imagePullSecretsコンテナイメージレジストリのシークレット名""
requestFilteringAgent.allowPrivateIPAddressプライベートIPアドレスへの接続が許可されているかどうかを定義します。requestFilteringAgentパラメータはJWTが無効な場合に使用されます:jwt.enabled=falsefalse
requestFilteringAgent.allowMetaIPAddressメタアドレスへの接続が許可されているかどうかを定義しますfalse
requestFilteringAgent.allowIPAddressList接続が許可されているIPアドレスのリストを定義します。この値はrequestFilteringAgent.denyIPAddressListよりも優先されます[]
requestFilteringAgent.denyIPAddressList接続が許可されているIPアドレスのリストを定義します[]
docservice.annotationsDocservice Deploymentに追加で付加されるアノテーションを定義します。設定されている場合、commonAnnotationsよりも優先されます{}
docservice.podAnnotationsDocserviceデプロイメントポッドに追加するアノテーションのマップrollme: "{{ randAlphaNum 5 | quote }}"
docservice.replicasDocserviceのレプリカ数。docservice.autoscaling.enabledパラメータが有効な場合、無視されます2
docservice.updateStrategy.typeDocserviceデプロイメントの更新戦略タイプRecreate
docservice.customPodAntiAffinity指定されたラベルを含む他のPodに対してDocservice Podのスケジューリングを同じノード上で禁止します{}
docservice.podAffinityDocservice Podのスケジューリングに関するノード相対のPodアフィニティルールを定義します{}
docservice.nodeAffinityDocservice Podのスケジューリングに関するノードアフィニティルールを定義します{}
docservice.nodeSelectorDocservice Podの割り当てのためのノードラベル。設定されている場合、nodeSelectorよりも優先されます{}
docservice.tolerationsDocservice Podの割り当てのための許容値。設定されている場合、tolerationsよりも優先されます[]
docservice.terminationGracePeriodSecondsDocservice PodがTerminatingステータスになるまでの優雅な終了時間30
docservice.hostAliasesDocserviceおよびProxyコンテナのホストファイルに追加のエントリを追加します[]
docservice.initContainersDocserviceデプロイメントポッド内でdocserviceおよびproxyコンテナの前に実行されるコンテナを定義します。例えば、PersistentVolumeの所有者を変更するコンテナなど[]
docservice.image.repositoryDocserviceコンテナイメージリポジトリ*onlyoffice/docs-docservice-de
docservice.image.tagDocserviceコンテナイメージタグ9.0.4-1
docservice.image.pullPolicyDocserviceコンテナイメージのプルポリシーIfNotPresent
docservice.containerSecurityContext.enabledDocserviceコンテナのセキュリティコンテキストを有効にしますfalse
docservice.lifecycleHooksDocserviceのコンテナライフサイクルフックを定義します。これは、コンテナのライフサイクルの特定のポイントで実行されるイベントをトリガーするために使用されます{}
docservice.resources.requestsDocserviceコンテナの要求されたリソース{}
docservice.resources.limitsDocserviceコンテナのリソース制限{}
docservice.extraEnvVarsDocserviceコンテナの追加の環境変数を含む配列[]
docservice.extraVolumesDocservice Podの追加ボリュームを含む配列[]
docservice.extraVolumeMountsDocserviceコンテナの追加ボリュームマウントを含む配列[]
docservice.readinessProbe.enabledDocserviceコンテナのreadinessProbeを有効にするtrue
docservice.livenessProbe.enabledDocserviceコンテナのlivenessProbeを有効にするtrue
docservice.startupProbe.enabledDocserviceコンテナのstartupProbeを有効にするtrue
docservice.autoscaling.enabledDocserviceデプロイメントのオートスケーリングを有効にするfalse
docservice.autoscaling.annotationsDocserviceデプロイメントHPAに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます{}
docservice.autoscaling.minReplicasDocserviceデプロイメントのオートスケーリングの最小レプリカ数2
docservice.autoscaling.maxReplicasDocserviceデプロイメントのオートスケーリングの最大レプリカ数4
docservice.autoscaling.targetCPU.enabledCPU使用率に基づくDocserviceデプロイメントのオートスケーリングを有効にするtrue
docservice.autoscaling.targetCPU.utilizationPercentageDocserviceデプロイメントのオートスケーリングのターゲットCPU使用率70
docservice.autoscaling.targetMemory.enabledメモリ使用率に基づくDocserviceデプロイメントのオートスケーリングを有効にするfalse
docservice.autoscaling.targetMemory.utilizationPercentageDocserviceデプロイメントのオートスケーリングのターゲットメモリ使用率70
docservice.autoscaling.customMetricsTypeDocserviceデプロイメントのカスタム、追加または外部のオートスケーリングメトリクス[]
docservice.autoscaling.behaviorDocserviceデプロイメントのスケーリング動作ポリシーをscaleDownおよびscaleUpフィールドに対して設定します{}
proxy.accessLognginx設定の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.gzipProxiednginx設定のgzip_proxiedディレクティブを定義しますoff
proxy.clientMaxBodySizenginx設定のclient_max_body_sizeディレクティブを定義します100m
proxy.workerConnectionsnginx設定のworker_connectionsディレクティブを定義します4096
proxy.secureLinkSecretnginx設定ディレクティブsecure_link_md5のシークレットを定義します。値が空の場合、ランダムなものが生成され、後のアップグレードで使用されます。値が設定されている場合、それが使用されます""
proxy.secureLinkExistingSecretsecure_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 Proxyコンテナイメージのリポジトリ*onlyoffice/docs-proxy-de
proxy.image.tagDocservice Proxyコンテナイメージのタグ9.0.4-1
proxy.image.pullPolicyDocservice ProxyコンテナイメージのプルポリシーIfNotPresent
proxy.containerSecurityContext.enabledProxyコンテナのセキュリティコンテキストを有効にするfalse
proxy.lifecycleHooksProxyのコンテナライフサイクルフックを定義します。これは、コンテナのライフサイクルの特定のポイントで実行されるイベントをトリガーするために使用されます{}
proxy.resources.requestsProxyコンテナの要求されたリソース{}
proxy.resources.limitsProxyコンテナのリソース制限{}
proxy.extraEnvVarsProxyコンテナの追加の環境変数を含む配列[]
proxy.extraVolumeMountsProxyコンテナの追加ボリュームマウントを含む配列[]
proxy.readinessProbe.enabledProxyコンテナのreadinessProbeを有効にするtrue
proxy.livenessProbe.enabledProxyコンテナのlivenessProbeを有効にするtrue
proxy.startupProbe.enabledProxyコンテナのstartupProbeを有効にするtrue
converter.annotationsConverterデプロイメントに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます{}
converter.podAnnotationsConverterデプロイメントポッドに追加する注釈のマップrollme: "{{ randAlphaNum 5 | quote }}"
converter.replicasConverterのレプリカ数。converter.autoscaling.enabledパラメータが有効な場合、無視されます2
converter.updateStrategy.typeConverterデプロイメントの更新戦略タイプRecreate
converter.customPodAntiAffinity同じノード上の指定されたラベルを含む他のPodに対してConverter Podのスケジューリングを禁止します{}
converter.podAffinityノードに対してConverter Podのスケジューリングを行うためのPodアフィニティルールを定義します{}
converter.nodeAffinityノードに対してConverter Podのスケジューリングを行うためのノードアフィニティルールを定義します{}
converter.nodeSelectorConverter Podの割り当てに使用するノードラベル。設定されている場合、nodeSelectorより優先されます{}
converter.tolerationsConverter Podの割り当てに使用するトレランス。設定されている場合、tolerationsより優先されます[]
converter.terminationGracePeriodSecondsConverter PodがTerminatingステータスを持つ間に優雅に終了する時間30
converter.hostAliasesConverterコンテナのホストファイルに追加のエントリを追加します[]
converter.initContainersConverterデプロイメントポッド内でConverterコンテナの前に実行されるコンテナを定義します。例えば、PersistentVolumeの所有者を変更するコンテナなど[]
converter.image.repositoryConverterコンテナイメージのリポジトリ*onlyoffice/docs-converter-de
converter.image.tagConverterコンテナイメージのタグ9.0.4-1
converter.image.pullPolicyConverterコンテナイメージのプルポリシーIfNotPresent
converter.containerSecurityContext.enabledConverterコンテナのセキュリティコンテキストを有効にするfalse
converter.lifecycleHooksコンバーターのコンテナライフサイクルフックを定義します。コンテナのライフサイクルの特定のポイントでイベントをトリガーするために使用されます{}
converter.resources.requestsコンバーターコンテナの要求されたリソース{}
converter.resources.limitsコンバーターコンテナのリソース制限{}
converter.extraEnvVarsコンバーターコンテナの追加環境変数の配列[]
converter.extraVolumesコンバーターポッドの追加ボリュームの配列[]
converter.extraVolumeMountsコンバーターコンテナの追加ボリュームマウントの配列[]
converter.autoscaling.enabledコンバーターデプロイメントのオートスケーリングを有効にするfalse
converter.autoscaling.annotationsコンバーターデプロイメントHPAに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
converter.autoscaling.minReplicasコンバーターデプロイメントのオートスケーリングの最小レプリカ数2
converter.autoscaling.maxReplicasコンバーターデプロイメントのオートスケーリングの最大レプリカ数16
converter.autoscaling.targetCPU.enabledCPU使用率によるコンバーターデプロイメントのオートスケーリングを有効にする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.enabledExampleのインストールを有効にするfalse
example.annotationsExample StatefulSetに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
example.podAnnotationsExample Podに追加するアノテーションのマップrollme: "{{ randAlphaNum 5 | quote }}"
example.updateStrategy.typeExample StatefulSetの更新戦略タイプRollingUpdate
example.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上でのExample Podのスケジューリングを禁止する{}
example.podAffinityノードに対するExample PodのスケジューリングのためのPodアフィニティルールを定義する{}
example.nodeAffinityノードに対するExample Podのスケジューリングのためのノードアフィニティルールを定義する{}
example.nodeSelectorExample Podsの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
example.tolerationsExample Podsの割り当てのための許容値。設定されている場合、tolerationsより優先されます[]
example.terminationGracePeriodSecondsExample PodがTerminatingステータスになる間の優雅な終了時間30
example.hostAliasesExampleコンテナのホストファイルに追加エントリを追加する[]
example.initContainersPod内のExampleコンテナの前に実行されるコンテナを定義する[]
example.image.repositoryExampleコンテナのイメージ名onlyoffice/docs-example
example.image.tagExampleコンテナのイメージタグ9.0.4-1
example.image.pullPolicyExampleコンテナのイメージプルポリシーIfNotPresent
example.containerSecurityContext.enabledExampleコンテナのセキュリティコンテキストを有効にするfalse
example.dsUrlONLYOFFICE Docsの外部アドレス。Exampleでの変換の動作を確認する必要がある場合のみ変更してください(例:http://<documentserver-address>/)/
example.resources.requestsExampleコンテナの要求されたリソース{}
example.resources.limitsExampleコンテナのリソース制限{}
example.extraEnvVarsExampleコンテナの追加環境変数の配列[]
example.extraConf.configMapデフォルト値を上書きするjsonファイルを含むConfigMapの名前。作成例はこちらを参照""
example.extraConf.filenameカスタム値を含むjsonファイルの名前。example.extraConf.ConfigMap内のkey名と同じでなければなりませんlocal.json
example.extraVolumesExample Podの追加ボリュームの配列[]
example.extraVolumeMountsExampleコンテナの追加ボリュームマウントの配列[]
jwt.enabledONLYOFFICE DocsによるJSON Web Tokenの検証を有効にする。受信および送信リクエストに共通true
jwt.secretONLYOFFICE Docsへのリクエスト内のJSON Web Tokenを検証するための秘密鍵を定義する。受信および送信リクエストに共通。値が空の場合、ランダムなものが生成され、後のアップグレードで使用されます。値が設定されている場合、それが使用されます""
jwt.headerJSON Web Tokenを送信するために使用されるHTTPヘッダーを定義する。受信および送信リクエストに共通Authorization
jwt.inBodyONLYOFFICE Docsへのリクエストボディ内のトークン検証を有効にするfalse
jwt.inbox受信リクエスト専用のJSON Web Token検証パラメータ。指定されていない場合、共通のjwtパラメータの値が使用されます{}
jwt.outbox送信リクエスト専用のJSON Web Token検証パラメータ。指定されていない場合、共通のjwtパラメータの値が使用されます{}
jwt.existingSecretjwt用の変数を含む既存のシークレットの名前。指定されていない場合、jwtという名前のシークレットが作成されます""
service.existingONLYOFFICE Docs用の既存のサービスの名前。指定されていない場合、documentserverという名前のサービスが作成されます""
service.annotationsONLYOFFICE Docsサービスに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます{}
service.typeONLYOFFICE DocsサービスのタイプClusterIP
service.portONLYOFFICE Docsサービスのポート8888
service.sessionAffinityONLYOFFICE Docsサービスのセッションアフィニティ。設定されていない場合、デフォルト値としてNoneが設定されます""
service.sessionAffinityConfigONLYOFFICE Docsサービスのセッションアフィニティの設定。service.sessionAffinityが設定されている場合に使用されます{}
ingress.enabledONLYOFFICE Docsのためのイングレスの作成を有効にするfalse
ingress.annotationsイングレスに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されますnginx.ingress.kubernetes.io/proxy-body-size: 100m
ingress.ingressClassNameこのイングレスを実装するために使用されるIngressClassを参照するために使用されますnginx
ingress.controllerName同じIngressClassNameを持つが異なるベンダーからのコントローラーを区別するために使用されますingress-nginx
ingress.hostONLYOFFICE Docsイングレスのホスト名""
ingress.tenants複数の名前を使用する必要がある場合のイングレスホスト名。例えば、マルチテナンシーの場合。設定されている場合、ingress.hostより優先されます。ingress.ssl.enabledがtrueに設定されている場合、指定されたすべてのドメインの証明書はingress.ssl.secretによって秘密として保持されていると想定されます[]
ingress.ssl.enabledONLYOFFICE DocsイングレスのSSLを有効にするfalse
ingress.ssl.secretイングレスにマウントするためのSSLのシークレット名tls
ingress.pathONLYOFFICE Docsが利用可能になるパスを指定する/
ingress.pathTypeONLYOFFICE Docsのイングレスリソースのパスの種類を指定します。許可される値はExact、Prefix、またはImplementationSpecificですImplementationSpecific
ingress.letsencrypt.enabledLet's Encryptでの証明書リクエスト作成を有効にします。ingress.enabledがtrueに設定されている場合に使用されますfalse
ingress.letsencrypt.clusterIssuerNameClusterIssuerの名前letsencrypt-prod
ingress.letsencrypt.emailACME登録に使用するあなたのメールアドレス""
ingress.letsencrypt.server証明書リクエストを送信するLet's Encryptサーバーのアドレスhttps://acme-v02.api.letsencrypt.org/directory
ingress.letsencrypt.secretNameACMEアカウントの秘密鍵を保存するために使用されるシークレットの名前letsencrypt-prod-private-key
openshift.route.enabledONLYOFFICE DocsのためのOpenShiftルートの作成を有効にしますfalse
openshift.route.annotationsOpenShiftルートに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます{}
openshift.route.hostONLYOFFICE DocsルートのOpenShiftルートホスト名""
openshift.route.pathONLYOFFICE Docsが利用可能になるパスを指定します/
openshift.route.wildcardPolicyOpenShiftルートでワイルドカードサブドメインを処理するためのポリシー。許可される値はNone、SubdomainですNone
grafana.enabledGrafanaでのメトリクスの可視化に必要なリソースのインストールを有効にしますfalse
grafana.namespaceRBACコンポーネントとGrafanaリソースがデプロイされる名前空間の名前。設定されていない場合、namespaceOverrideが設定されていればその名前、または.Release.Namespaceから取得されます""
grafana.ingress.enabledGrafanaのためのイングレスの作成を有効にします。grafana.enabledをtrueに設定し、Nginx Ingressを使用してGrafanaにアクセスしたい場合に使用されますfalse
grafana.ingress.annotationsGrafana Ingressに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されますnginx.ingress.kubernetes.io/proxy-body-size: 100m
grafana.dashboard.enabled既製のGrafanaダッシュボードのインストールを有効にします。grafana.enabledをtrueに設定した場合に使用されますfalse
podSecurityContext.enabledポッドのセキュリティコンテキストを有効にしますfalse
podSecurityContext.converter.fsGroupConverter Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します101
podSecurityContext.docservice.fsGroupDocservice Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します101
podSecurityContext.jobs.fsGroupJobsによって作成されたポッドにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します101
podSecurityContext.example.fsGroupExample Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します1001
podSecurityContext.tests.fsGroupTest Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します101
webProxy.enabledネットワーク内でk8sクラスターのポッドがインターネットにアクセスするためにWebプロキシを使用するかどうかを指定しますfalse
webProxy.httpHTTPトラフィック用のWebプロキシアドレスhttp://proxy.example.com
webProxy.httpsHTTPSトラフィック用のWebプロキシアドレスhttps://proxy.example.com
webProxy.noProxyWebプロキシを使用しないIPアドレスやk8sサービス名、ドメイン名のパターンlocalhost,127.0.0.1,docservice
upgrade.job.enabledONLYOFFICE Docsのアップグレード前にジョブを実行することを有効にしますtrue
upgrade.job.annotationsアップグレード前のジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
upgrade.job.podAnnotationsアップグレード前のポッドに追加するアノテーションのマップ{}
upgrade.job.customPodAntiAffinity同じノード上で指定されたラベルを含む他のポッドに対してアップグレード前のジョブポッドのスケジューリングを禁止します{}
upgrade.job.podAffinityノードに対するアップグレード前のジョブポッドのスケジューリングのためのポッドアフィニティルールを定義します{}
upgrade.job.nodeAffinityノードに対するアップグレード前のジョブポッドのスケジューリングのためのノードアフィニティルールを定義します{}
upgrade.job.nodeSelectorアップグレード前のジョブポッドの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
upgrade.job.tolerationsアップグレード前のジョブポッドの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます[]
upgrade.job.initContainersポッド内でアップグレード前のコンテナの前に実行されるコンテナを定義します[]
upgrade.job.image.repositoryアップグレードイメージリポジトリによるジョブonlyoffice/docs-utils
upgrade.job.image.tagアップグレードイメージタグによるジョブ9.0.4-1
upgrade.job.image.pullPolicyアップグレードイメージプルポリシーによるジョブIfNotPresent
upgrade.job.containerSecurityContext.enabledアップグレード前のコンテナのセキュリティコンテキストを有効にしますfalse
upgrade.job.resources.requestsアップグレード前のコンテナのために要求されたリソース{}
upgrade.job.resources.limitsアップグレード前のコンテナのためのリソース制限{}
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.dsStopONLYOFFICE Docsのアップグレードスクリプトを含む既存のConfigMapの名前。設定されている場合、前の4つのパラメータは無視されます。stop.shというキーを含む必要があります""
rollback.job.enabledONLYOFFICE Docsのロールバック前にジョブを実行することを有効にしますtrue
rollback.job.annotationsロールバック前のジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
rollback.job.podAnnotationsロールバック前のポッドに追加するアノテーションのマップ{}
rollback.job.customPodAntiAffinity同じノード上で指定されたラベルを含む他のポッドに対してロールバック前のジョブポッドのスケジューリングを禁止します{}
rollback.job.podAffinityノードに対するロールバック前のジョブポッドのスケジューリングのためのポッドアフィニティルールを定義します{}
rollback.job.nodeAffinityノードに対するロールバック前のジョブポッドのスケジューリングのためのノードアフィニティルールを定義します{}
rollback.job.nodeSelectorロールバック前のジョブポッドの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
rollback.job.tolerationsロールバック前のジョブポッドの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます[]
rollback.job.initContainersポッド内でロールバック前のコンテナの前に実行されるコンテナを定義します[]
rollback.job.image.repositoryロールバックイメージリポジトリによるジョブonlyoffice/docs-utils
rollback.job.image.tagロールバックイメージタグによるジョブ9.0.4-1
rollback.job.image.pullPolicyロールバックイメージプルポリシーによるジョブIfNotPresent
rollback.job.containerSecurityContext.enabledロールバック前のコンテナに対するセキュリティコンテキストを有効にするfalse
rollback.job.resources.requestsジョブロールバックコンテナの要求リソース{}
rollback.job.resources.limitsジョブロールバックコンテナのリソース制限{}
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.dsStopONLYOFFICE Docsのロールバックスクリプトを含む既存のConfigMapの名前。設定されている場合、前の4つのパラメータは無視されます。stop.shというキーを含む必要があります""
delete.job.enabledONLYOFFICE Docsを削除する前にジョブの事前削除を実行するtrue
delete.job.annotations事前削除ジョブに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます{}
delete.job.podAnnotations事前削除Podに追加する注釈のマップ{}
delete.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上での事前削除ジョブPodのスケジューリングを禁止する{}
delete.job.podAffinity他のPodに対するノードによる事前削除ジョブPodのスケジューリングのためのPodアフィニティルールを定義する{}
delete.job.nodeAffinityノードによる事前削除ジョブPodのスケジューリングのためのノードアフィニティルールを定義する{}
delete.job.nodeSelector事前削除ジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
delete.job.tolerations事前削除ジョブPodの割り当てのための許容値。設定されている場合、tolerationsより優先されます[]
delete.job.initContainersPod内の事前削除コンテナの前に実行されるコンテナを定義する[]
delete.job.image.repository削除イメージリポジトリによるジョブonlyoffice/docs-utils
delete.job.image.tag削除イメージタグによるジョブ9.0.4-1
delete.job.image.pullPolicy削除イメージプルポリシーによるジョブIfNotPresent
delete.job.containerSecurityContext.enabled事前削除コンテナに対するセキュリティコンテキストを有効にするfalse
delete.job.resources.requestsジョブ削除コンテナの要求リソース{}
delete.job.resources.limitsジョブ削除コンテナのリソース制限{}
delete.existingConfigmap.tblRemove.nameデータベースからテーブルを削除するためのSQLファイルを含む既存のConfigMapの名前remove-db-scripts
delete.existingConfigmap.tblRemove.keyNameデータベースからテーブルを削除するための指示を含むSQLファイルの名前。delete.existingConfigmap.tblRemove.name内のkey名と同じである必要がありますremovetbl.sql
delete.existingConfigmap.dsStopONLYOFFICE Docsの削除スクリプトを含む既存のConfigMapの名前。設定されている場合、前の2つのパラメータは無視されます。stop.shというキーを含む必要があります""
install.job.enabledONLYOFFICE Docsをインストールする前にジョブの事前インストールを実行するtrue
install.job.annotations事前インストールジョブに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます{}
install.job.podAnnotations事前インストールPodに追加する注釈のマップ{}
install.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上での事前インストールジョブPodのスケジューリングを禁止する{}
install.job.podAffinity他のPodに対するノードによる事前インストールジョブPodのスケジューリングのためのPodアフィニティルールを定義する{}
install.job.nodeAffinityノードによる事前インストールジョブPodのスケジューリングのためのノードアフィニティルールを定義する{}
install.job.nodeSelector事前インストールジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
install.job.tolerations事前インストールジョブPodの割り当てのための許容値。設定されている場合、tolerationsより優先されます[]
install.job.initContainersPod内の事前インストールコンテナの前に実行されるコンテナを定義する[]
install.job.image.repository事前インストールONLYOFFICE Docsイメージリポジトリによるジョブonlyoffice/docs-utils
install.job.image.tag事前インストールONLYOFFICE Docsイメージタグによるジョブ9.0.4-1
install.job.image.pullPolicy事前インストールONLYOFFICE DocsイメージプルポリシーによるジョブIfNotPresent
install.job.containerSecurityContext.enabled事前インストールコンテナに対するセキュリティコンテキストを有効にするfalse
install.job.resources.requestsジョブ事前インストールコンテナの要求リソース{}
install.job.resources.limitsジョブ事前インストールコンテナのリソース制限{}
install.existingConfigmap.tblCreate.nameデータベースからテーブルを作成するためのSQLファイルを含む既存のConfigMapの名前init-db-scripts
install.existingConfigmap.tblCreate.keyNameデータベースからテーブルを作成するための指示を含むSQLファイルの名前。install.existingConfigmap.tblCreate.name内のkey名と同じである必要がありますcreatedb.sql
install.existingConfigmap.initdbinitdbスクリプトを含む既存のConfigMapの名前。設定されている場合、前の2つのパラメータは無視されます。initdb.shというキーを含む必要があります""
clearCache.job.enabledONLYOFFICE Docsのアップグレード後にジョブClear Cacheを実行する。ジョブClear Cacheはpost-upgradeフックを持ち、Kubernetesでリソースがアップグレードされた後に実行されます。Cacheディレクトリをクリアしますtrue
clearCache.job.annotationsClear Cacheジョブに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます{}
clearCache.job.podAnnotationsClear Cache Podに追加する注釈のマップ{}
clearCache.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上でのClear CacheジョブPodのスケジューリングを禁止する{}
clearCache.job.podAffinity他のPodに対するノードによるClear CacheジョブPodのスケジューリングのためのPodアフィニティルールを定義する{}
clearCache.job.nodeAffinityノードによるClear CacheジョブPodのスケジューリングのためのノードアフィニティルールを定義する{}
clearCache.job.nodeSelectorClear CacheジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
clearCache.job.tolerationsClear CacheジョブPodの割り当てのための許容値。設定されている場合、tolerationsより優先されます[]
clearCache.job.initContainersPod内のClear Cacheコンテナの前に実行されるコンテナを定義する[]
clearCache.job.image.repositoryClear Cache ONLYOFFICE Docsイメージリポジトリによるジョブonlyoffice/docs-utils
clearCache.job.image.tagClear Cache ONLYOFFICE Docsイメージタグによるジョブ9.0.4-1
clearCache.job.image.pullPolicyClear Cache ONLYOFFICE DocsイメージプルポリシーによるジョブIfNotPresent
clearCache.job.containerSecurityContext.enabledClear Cacheコンテナに対するセキュリティコンテキストを有効にするfalse
clearCache.job.resources.requestsジョブClear Cacheコンテナの要求リソース{}
clearCache.job.resources.limitsジョブClear Cacheコンテナのリソース制限{}
clearCache.existingConfigmap.nameCacheディレクトリをクリアするカスタムスクリプトを含む既存のConfigMapの名前。設定されている場合、デフォルトのConfigMapは作成されません""
clearCache.existingConfigmap.keyNameCacheディレクトリをクリアする指示を含むスクリプトの名前。カスタムスクリプトを使用する場合、clearCache.existingConfigmap.nameのkey名と同じである必要がありますclearCache.sh
grafanaDashboard.job.annotationsGrafana Dashboardジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
grafanaDashboard.job.podAnnotationsGrafana Dashboard Podに追加するアノテーションのマップ{}
grafanaDashboard.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上でGrafana DashboardジョブPodのスケジューリングを禁止します{}
grafanaDashboard.job.podAffinity他のPodに対するノードによるGrafana DashboardジョブPodのスケジューリングのためのPodアフィニティルールを定義します{}
grafanaDashboard.job.nodeAffinityノードによるGrafana DashboardジョブPodのスケジューリングのためのノードアフィニティルールを定義します{}
grafanaDashboard.job.nodeSelectorGrafana DashboardジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
grafanaDashboard.job.tolerationsGrafana DashboardジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます[]
grafanaDashboard.job.initContainersPod内のGrafana Dashboardコンテナの前に実行されるコンテナを定義します[]
grafanaDashboard.job.image.repositoryGrafana DashboardジョブによるONLYOFFICE Docsイメージリポジトリonlyoffice/docs-utils
grafanaDashboard.job.image.tagGrafana DashboardジョブによるONLYOFFICE Docsイメージタグ9.0.4-1
grafanaDashboard.job.image.pullPolicyGrafana DashboardジョブによるONLYOFFICE DocsイメージプルポリシーIfNotPresent
grafanaDashboard.job.containerSecurityContext.enabledGrafana Dashboardコンテナのセキュリティコンテキストを有効にしますfalse
grafanaDashboard.job.resources.requestsジョブGrafana Dashboardコンテナの要求されたリソース{}
grafanaDashboard.job.resources.limitsジョブGrafana Dashboardコンテナのリソース制限{}
wopiKeysGeneration.job.annotationsWopi Keys Generationジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
wopiKeysGeneration.job.podAnnotationsWopi Keys Generation Podに追加するアノテーションのマップ{}
wopiKeysGeneration.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上でWopi Keys GenerationジョブPodのスケジューリングを禁止します{}
wopiKeysGeneration.job.podAffinity他のPodに対するノードによるWopi Keys GenerationジョブPodのスケジューリングのためのPodアフィニティルールを定義します{}
wopiKeysGeneration.job.nodeAffinityノードによるWopi Keys GenerationジョブPodのスケジューリングのためのノードアフィニティルールを定義します{}
wopiKeysGeneration.job.nodeSelectorWopi Keys GenerationジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
wopiKeysGeneration.job.tolerationsWopi Keys GenerationジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます[]
wopiKeysGeneration.job.initContainersPod内のWopi Keys Generationコンテナの前に実行されるコンテナを定義します[]
wopiKeysGeneration.job.image.repositoryWopi Keys GenerationジョブによるONLYOFFICE Docsイメージリポジトリonlyoffice/docs-utils
wopiKeysGeneration.job.image.tagWopi Keys GenerationジョブによるONLYOFFICE Docsイメージタグ9.0.4-1
wopiKeysGeneration.job.image.pullPolicyWopi Keys GenerationジョブによるONLYOFFICE DocsイメージプルポリシーIfNotPresent
wopiKeysGeneration.job.containerSecurityContext.enabledWopi Keys Generationコンテナのセキュリティコンテキストを有効にしますfalse
wopiKeysGeneration.job.resources.requestsジョブWopi Keys Generationコンテナの要求されたリソース{}
wopiKeysGeneration.job.resources.limitsジョブWopi Keys Generationコンテナのリソース制限{}
wopiKeysDeletion.job.enabledONLYOFFICE Docsを削除する前にWopi Keys Deletionジョブの実行を有効にします。自動的に生成されたWOPIシークレットを削除します。wopi.enabled、wopi.keys.generation、wopiKeysDeletion.job.enabledがtrueに設定されている場合に実行されますtrue
wopiKeysDeletion.job.annotationsWopi Keys Deletionジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます{}
wopiKeysDeletion.job.podAnnotationsWopi Keys Deletion Podに追加するアノテーションのマップ{}
wopiKeysDeletion.job.customPodAntiAffinity指定されたラベルを含む他のPodと同じノード上でWopi Keys DeletionジョブPodのスケジューリングを禁止します{}
wopiKeysDeletion.job.podAffinity他のPodに対するノードによるWopi Keys DeletionジョブPodのスケジューリングのためのPodアフィニティルールを定義します{}
wopiKeysDeletion.job.nodeAffinityノードによるWopi Keys DeletionジョブPodのスケジューリングのためのノードアフィニティルールを定義します{}
wopiKeysDeletion.job.nodeSelectorWopi Keys DeletionジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます{}
wopiKeysDeletion.job.tolerationsWopi Keys DeletionジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます[]
wopiKeysDeletion.job.initContainersPod内のWopi Keys Deletionコンテナの前に実行されるコンテナを定義します[]
wopiKeysDeletion.job.image.repositoryWopi Keys DeletionジョブによるONLYOFFICE Docsイメージリポジトリonlyoffice/docs-utils
wopiKeysDeletion.job.image.tagWopi Keys DeletionジョブによるONLYOFFICE Docsイメージタグ9.0.4-1
wopiKeysDeletion.job.image.pullPolicyWopi Keys DeletionジョブによるONLYOFFICE DocsイメージプルポリシーIfNotPresent
wopiKeysDeletion.job.containerSecurityContext.enabledWopi Keys Deletionコンテナのセキュリティコンテキストを有効にしますfalse
wopiKeysDeletion.job.resources.requestsジョブWopi Keys Deletionコンテナの要求されたリソース{}
wopiKeysDeletion.job.resources.limitsジョブWopi Keys Deletionコンテナのリソース制限{}
tests.enabledONLYOFFICE Docsの起動テストと接続された依存関係の可用性テストに必要なリソースの作成を有効にします。これらのリソースは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.initContainersPod内のテストコンテナの前に実行されるコンテナを定義します[]
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 Document Server デベロッパー版を指します。このエディションについて詳しく知り、他のエディションと比較するには、このページの比較表をご覧ください。

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 に設定します。Grafana にアクセスするために Nginx Ingress を使用したい場合は、grafana.ingress.enabled を true に設定します:

    $ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true
  3. ONLYOFFICE Docs の公開

    1. ONLYOFFICE Docs をサービス経由で公開(HTTP のみ)

      注記

      ONLYOFFICE Docs を HTTPS 経由で公開する場合は、このステップをスキップしてください。

      この公開タイプは、ONLYOFFICE Docs にアクセスするためのロードバランサーを作成します。外部 TLS 終端を使用し、k8s クラスター内に他の WEB アプリケーションがない場合にこの公開タイプを使用してください。

      ONLYOFFICE Docs をサービス経由で公開するには、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 Docs は http://DOCUMENTSERVER-SERVICE-IP/ で利用可能になります。

      サービス IP が空の場合は、documentserver サービスのホスト名を取得してみてください:

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

      この場合、ONLYOFFICE Docs は http://DOCUMENTSERVER-SERVICE-HOSTNAME/ で利用可能になります。

    2. ONLYOFFICE Docs を Ingress 経由で公開

      まず、Kubernetes Nginx Ingress コントローラーをインストールします:

      $ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2
      注記

      Prometheus への ingress-nginx メトリクスの公開を有効にするには、次のコマンドを実行します:

      $ 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 Docs を HTTPS 経由で公開する場合は、このステップをスキップしてください。

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

        ingress IP を取得します:

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

        ONLYOFFICE Docs は 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 Docs は 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

        次に、ingress.enabled、ingress.ssl.enabled、ingress.letsencrypt.enabled を true に設定し、ingress.letsencrypt.email と ingress.host(複数のドメインの場合は ingress.tenants)に独自の値を指定して、ONLYOFFICE Docs のインストールまたはアップグレードを実行します。

      • 仮想パス経由

        ingress.enabled、ingress.host、および ingress.path パラメーターを設定します:

        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.host=your-domain-name,ingress.path=/docs

        対応しているイングレスコントローラー:KubernetesによるIngress NGINX、NGINXによるNGINX Ingress、HAProxyによるHAProxy Ingress。

        Ingress NGINX by Kubernetes の場合は、ingress.path にパターン (/|$)(.*) を追加します。例えば、/docs(/|$)(.*)。

    3. OpenShift でルートを介して ONLYOFFICE Docs を公開

      $ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docs

      TLS 終端のためには、OpenShift のウェブコンソールを介して手動で証明書をルートに追加します。

6. ONLYOFFICE Docsのスケーリング​

重要

このステップはオプションです。デフォルトのデプロイメント設定を使用する場合は、完全にスキップできます。

  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 Docsの更新​

更新するには、アップグレード用のパラメーターを設定します。例えば:

$ helm upgrade documentserver onlyoffice/docs \
--set docservice.image.tag=[version]
注記

インストール時に指定されたパラメーターも指定する必要があります。

または、values.yamlファイルを修正して次のコマンドを実行します:

$ helm upgrade documentserver -f values.yaml onlyoffice/docs

helm upgrade コマンドは、ONLYOFFICE Docsをシャットダウンし、データベースをクリーンアップするフックを実行します。デフォルトのフック実行時間は300秒です。変更するには:

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

Webプロキシの背後やインターネットアクセスのないプライベートk8sクラスタでアップグレードする際は、以下のノートを参照してください。

ONLYOFFICE Docsのバージョン以外のパラメーターを更新するには、フックなしで helm upgrade を実行します:

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

更新をロールバックするには:

$ helm rollback documentserver
注記

プライベートk8sクラスタでロールバックする際は、以下のノートを参照してください。

8. ONLYOFFICE Docsのシャットダウン​

重要

このステップはオプションです。

シャットダウンを実行するには、次のコマンドを実行します:

$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n <NAMESPACE>

ここで、<NAMESPACE> はONLYOFFICE Docsがインストールされている名前空間です。指定されていない場合、デフォルト値は default です。例:

$ kubectl apply -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/shutdown-ds.yaml -n onlyoffice

shutdown-ds Podが正常に実行された後、ジョブを削除します:

$ kubectl delete job shutdown-ds -n <NAMESPACE>

シャットダウン後にONLYOFFICE Docsを再起動するには、docserviceおよびconverterのPodを再起動します:

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

9. ONLYOFFICE Docsライセンスの更新​

重要

このステップはオプションです。

バージョン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 Docsインストールテスト​

重要

このステップはオプションです。

ONLYOFFICE Docsの可用性と接続された依存関係へのアクセスをテストします:

$ 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チャートのバージョン6.1.0以降、データベースの初期化に必要なSQLスクリプトは docs-utils イメージに含まれているため、ジョブがそれらをダウンロードするためにインターネットにアクセスする必要はありません。

注記

install.existingConfigmap.initdb または upgrade|rollback|delete.existingConfigmap.dsStop パラメータで指定したconfigmapに、インターネットアクセスが必要なカスタムスクリプトをマッピングし、ネットワークでWebプロキシを使用できる場合は、Podのコンテナがインターネットにアクセスできるように、webProxy.enabled=true と適切なWebプロキシパラメータを設定します。

12. 情報ページへのアクセス​

重要

このステップはオプションです。

/info ページへのアクセスはデフォルトで制限されています。アクセスを許可するには、proxy.infoAllowedIP パラメーターを使用してIPアドレスまたはサブネットを指定します。Kubernetesネットワークの特性上、実際のクライアントは通常、元のユーザーIPではなく、Pod、ノード、またはロードバランサーのアドレスになることに注意してください。

proxy.infoAllowedUser パラメーターと proxy.infoAllowedPassword によるパスワードを設定することで、NginxのBasic認証を使用してアクセスをさらに制限できます。または、proxy.infoAllowedExistingSecret を設定して既存のシークレットを使用します。

Grafanaを使用してメトリクスを視覚化する​

重要

このセクションはオプションです。Grafanaをインストールしたくない場合は、完全にスキップできます。

1. Grafanaのデプロイ​

注記

ステップ6.2(Prometheusのインストール)がすでに完了していることが前提です。

  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 Docsがすでにインストールされている場合は、次のコマンドを実行します:

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

      これにより、GrafanaのウェブサイトからJSON形式の既製のダッシュボードがダウンロードされ、必要な編集が適用され、それらからconfigmapが作成されます。ONLYOFFICE Docsのメトリクス用のダッシュボードも追加されます(ステップ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にインポートされます:ノードエクスポーター、デプロイメント ステートフルセット デーモンセット、Prometheus Redis Exporter用のRedisダッシュボード、RabbitMQ-Overview、PostgreSQLデータベース、NGINX Ingressコントローラー、ONLYOFFICE Docs、Podおよびコンテナのリソース使用量。

      注記

      Grafanaで視覚化されるONLYOFFICE Docsのメトリクスの説明はこちらで確認できます。

      Helmを使用してGrafanaをインストールする詳細についてはこちらをご覧ください。

2. Ingressを介してGrafanaにアクセスする​

注記

Kubernetes Nginx Ingressコントローラーのインストールのステップがすでに完了していることが前提です。

ONLYOFFICE Docsがパラメーター grafana.ingress.enabled(メトリクスのデプロイメント)でインストールされた場合、Grafanaへのアクセスは次のアドレスになります:http://INGRESS-ADDRESS/grafana/

セキュア接続を使用してIngressがインストールされた場合(ONLYOFFICE DocsをHTTPS経由で公開)、Grafanaへのアクセスは次のアドレスになります:https://your-domain-name/grafana/

3. Grafanaで収集されたメトリクスを表示する​

http(s)://your-domain-name/grafana/ に移動し、次の情報でログインします:

Login - admin

パスワードを取得するには、次のコマンドを実行します:

$ kubectl get secret grafana-admin --namespace default -o jsonpath="{.data.GF_SECURITY_ADMIN_PASSWORD}" | base64 --decode

ダッシュボードセクションでは、Prometheusから受信したメトリクスを表示する追加されたダッシュボードを見ることができます。