この記事はAIによって翻訳されました

Kubernetes向けONLYOFFICE Docs

はじめに

重要 以下のガイドは、有料のクラスターライセンスソリューションにのみ有効です。
  • KubernetesまたはOpenShiftクラスターをインストールしている必要があります:
  • ローカルに設定されたkubectlのコピーも必要です。kubectlのインストールと設定については、こちらのガイドを参照してください。
  • Helm v3.7+をインストールする必要があります。インストール手順はこちらを参照してください。
  • OpenShiftを使用する場合、ockubectlの両方を使用してデプロイを管理できます。
  • 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

または、ターゲットネームスペースから許可されたユーザーとグループの範囲を指定することもできます。依存関係をインストールする際に、runAsUserfsGroupのパラメーターを参照してください(例: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永続ストレージクラスのすべての永続ストレージの合計サイズです。サイズは、TGMTiGiMiのいずれかのサフィックスを付けた整数として表現できます。例:9Gi

Helmを使用してNFSサーバープロビジョナーをインストールする詳細については、こちらを参照してください。

永続ボリュームクレームの設定

デフォルトのnfs永続ボリュームクレームは8Giです。values.yamlファイルのpersistence.storageClasspersistence.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をインストールする詳細については、こちらを参照してください。

クラスターにMySQLをインストールするには、以下のコマンドを実行してください:

$ helm install mysql --version 14.0.3 bitnami/mysql \
  --set auth.database=onlyoffice \
  --set auth.username=onlyoffice \
  --set primary.persistence.storageClass=PERSISTENT_STORAGE_CLASS \
  --set primary.persistence.size=PERSISTENT_SIZE \
  --set primary.resourcesPreset=none \
  --set image.repository=bitnamilegacy/mysql \
  --set global.security.allowInsecureImages=true \
  --set image.tag=9.4.0-debian-12-r1 \
  --set metrics.enabled=false

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

ここでPERSISTENT_SIZEはデータベースの永続ボリュームのサイズを指します。例:8Gi

ONLYOFFICE Docsの100人のアクティブユーザーごとに少なくとも2Giの永続ストレージを使用することをお勧めします。

データベースメトリクスをPrometheusで収集できるようにするには、metrics.enabled=trueを設定してください。また、次のパラメーターを追加してください:metrics.image.repository=bitnamilegacy/mysqld-exportermetrics.image.tag=0.17.2-debian-12-r16
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-configextraConf.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-themescustom-themes.jsonの代わりに任意の名前を使用できます。
  2. ONLYOFFICE Docsをインストールする際のパラメーターを指定する

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

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

Amazon S3バケットをキャッシュとして接続するには、設定ファイルを作成するか、既存のものを編集し、このガイドに従って、パラメーター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またはannotationsnonroot-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.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コマンドまたはhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksを実行してください。パラメータがvalues.yamlファイルに指定されている場合。
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. パラメータ
connections.dbTypeデータベースの種類。可能な値はpostgresmariadbmysqloraclemssqldamengです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.redistHostRedisホストのIPアドレスまたは名前。connections.redisClusterNodesおよびconnections.redisSentinelNodesに値が設定されている場合は使用されませんredis-master
connections.redisPortRedisサーバーのポート番号。connections.redisClusterNodesおよびconnections.redisSentinelNodesに値が設定されている場合は使用されません6379
connections.redisUserRedisユーザー名。このパラメータの値は、カスタム設定ファイルを追加する場合、local.jsonoptionsオブジェクトに設定された値を上書きしますdefault
connections.redisDBNum選択されるRedis論理データベースの番号。カスタム設定ファイルを追加する場合、このパラメータの値はlocal.jsonoptionsオブジェクトに設定された値を上書きします0
connections.redisClusterNodesRedisクラスター内のノードのリスト。クラスター内のすべてのノードを指定する必要はなく、3つで十分です。複数の値を指定できます。host:port形式で指定する必要があります[]
connections.redisPasswordRedisアカウントに設定されたパスワード。設定されている場合、connections.redisExistingSecretより優先されます。このパラメータの値は、カスタム設定ファイルを追加する場合、local.jsonoptionsオブジェクトに設定された値を上書きします""
connections.redisSecretKeyNameRedisユーザーパスワードを含むキーの名前redis-password
connections.redisExistingSecretRedisパスワードに使用する既存のシークレットの名前。connections.redisSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsonoptionsオブジェクトに設定されたパスワードを上書きしますredis
connections.redisNoPassパスワードなしでRedis認証を使用するかどうかを定義します。Redisサーバーへの接続にパスワードが必要ない場合、値をtrueに設定しますfalse
connections.redisSentinelNodesRedis Sentinelノードのリスト。すべてのノードを指定する必要はなく、3つで十分です。複数の値を指定できます。host:port形式で指定する必要があります。connections.redisConnectorNameioredisに設定されている場合に使用されます[]
connections.redisSentinelGroupNameマスターと1つ以上のスレーブで構成されるRedisインスタンスのグループの名前。connections.redisConnectorNameioredisに設定されている場合に使用されますmymaster
connections.redisSentinelExistingSecretRedis Sentinelパスワードに使用する既存のシークレットの名前。connections.redisSentinelSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsoniooptionsオブジェクトに設定されたパスワードを上書きします""
connections.redisSentinelSecretKeyNameRedis Sentinelユーザーパスワードを含むキーの名前。redisSentinelPasswordにパスワードを設定した場合、ここで設定された値がキー名となるシークレットが自動的に作成されますsentinel-password
connections.redisSentinelPasswordRedis Sentinelアカウントに設定されたパスワード。設定されている場合、connections.redisSentinelExistingSecretより優先されます。このパラメータの値は、local.jsoniooptionsオブジェクトに設定された値を上書きします""
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.createtrueの場合は.Release.Nameから取得され、serviceAccount.createfalseの場合は「default」となります""
serviceAccount.annotationsServiceAccountに追加するアノテーションのマップ。設定されている場合、commonAnnotationsよりも優先されます{}
serviceAccount.automountServiceAccountToken作成されたServiceAccountにServiceAccountTokenの自動マウントを有効にします。serviceAccount.createtrueの場合にのみ使用されますtrue
license.existingSecretライセンスを含む既存のシークレットの名前。キーlicense.licを含む必要があります""
license.existingClaimライセンスが保存されている既存のPVCの名前。ファイルlicense.licを含む必要があります""
log.levelログイベントの種類と重大度を定義します。可能な値はALLTRACEDEBUGINFOWARNERRORFATALMARKOFFですWARN
log.typeログイベントの形式を定義します。可能な値はpatternjsonbasiccolouredmessagePassThroughdummyですpattern
log.patternlog.type=patternの場合のログパターンを定義します[%d] [%p] %c - %.10000m
wopi.enabledWOPIが有効かどうかを定義します。このパラメータが有効になっている場合、クライアントのためにマウントされたディレクトリ(PVC)のキャッシュ属性を無効にする必要がありますfalse
wopi.keys.generationAPIキーを生成するかどうかを定義します。wopi.enabledtrueに設定した場合に使用されますtrue
wopi.keys.newKeysExistingSecretWOPIキーを含む既存のシークレットの名前。キーWOPI_PRIVATE_KEYWOPI_PUBLIC_KEYWOPI_MODULUS_KEYWOPI_EXPONENT_KEYを含む必要があります。設定されていない場合、新しいキーが生成され、それらからシークレットが作成されます""
wopi.keys.oldKeysExistingSecret古いWOPIキーを含む既存のシークレットの名前。キーWOPI_PRIVATE_KEY_OLDWOPI_PUBLIC_KEY_OLDWOPI_MODULUS_KEY_OLDWOPI_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.ConfigMapkey名と同じである必要がありますlocal.json
extraThemes.configMapインターフェーステーマを含むjsonファイルを含むConfigMapの名前""
extraThemes.filenameカスタムインターフェーステーマを含むjsonファイルの名前。extraThemes.configMapkey名と同じである必要があります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.enabledtrueに設定されている場合、指定されたすべてのドメインの証明書はingress.ssl.secretによって秘密として保持されていると想定されます[]
ingress.ssl.enabledONLYOFFICE DocsイングレスのSSLを有効にするfalse
ingress.ssl.secretイングレスにマウントするためのSSLのシークレット名tls
ingress.pathONLYOFFICE Docsが利用可能になるパスを指定する/
ingress.pathTypeONLYOFFICE Docsのイングレスリソースのパスの種類を指定します。許可される値はExactPrefix、またはImplementationSpecificですImplementationSpecific
ingress.letsencrypt.enabledLet's Encryptでの証明書リクエスト作成を有効にします。ingress.enabledtrueに設定されている場合に使用されます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ルートでワイルドカードサブドメインを処理するためのポリシー。許可される値はNoneSubdomainですNone
grafana.enabledGrafanaでのメトリクスの可視化に必要なリソースのインストールを有効にしますfalse
grafana.namespaceRBACコンポーネントとGrafanaリソースがデプロイされる名前空間の名前。設定されていない場合、namespaceOverrideが設定されていればその名前、または.Release.Namespaceから取得されます""
grafana.ingress.enabledGrafanaのためのイングレスの作成を有効にします。grafana.enabledtrueに設定し、Nginx Ingressを使用してGrafanaにアクセスしたい場合に使用されますfalse
grafana.ingress.annotationsGrafana Ingressに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されますnginx.ingress.kubernetes.io/proxy-body-size: 100m
grafana.dashboard.enabled既製のGrafanaダッシュボードのインストールを有効にします。grafana.enabledtrueに設定した場合に使用されます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
privateClusterインターネットアクセスのないプライベートネットワークでk8sクラスターを使用するかどうかを指定しますfalse
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.namekey名と同じである必要がありますremovetbl.sql
upgrade.existingConfigmap.tblCreate.nameデータベースからテーブルを作成するためのSQLファイルを含む既存のConfigMapの名前init-db-scripts
upgrade.existingConfigmap.tblCreate.keyNameデータベースからテーブルを作成するための指示を含むSQLファイルの名前。upgrade.existingConfigmap.tblCreate.namekey名と同じである必要があります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.namekey名と同じである必要があります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.enabled ONLYOFFICE Docsを削除する前にWopi Keys Deletionジョブの実行を有効にします。自動的に生成されたWOPIシークレットを削除します。wopi.enabledwopi.keys.generationwopiKeysDeletion.job.enabledtrueに設定されている場合に実行されます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 デベロッパー版を指します。このエディションについて詳しく知り、他のエディションと比較するには、このページの比較表をご覧ください。

各パラメーターを指定するには、--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 を使用できます。
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.enabledtrue に設定します。Grafana にアクセスするために Nginx Ingress を使用したい場合は、grafana.ingress.enabledtrue に設定します:

    $ 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 経由で公開
      1. Kubernetes Nginx Ingress コントローラーのインストール

        クラスターに Nginx Ingress コントローラーをインストールするには、次のコマンドを実行します:

        $ helm install nginx-ingress ingress-nginx/ingress-nginx --set controller.publishService.enabled=true,controller.replicaCount=2
        同じパラメーターで Nginx Ingress をインストールし、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 をインストールする詳細については、こちらをご覧ください。

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

        この公開タイプは、サービス経由の公開と比較してパフォーマンスのオーバーヘッドが多く、ONLYOFFICE Docs にアクセスするためのロードバランサーも作成します。外部 TLS 終端を使用し、k8s クラスター内に複数の WEB アプリケーションがある場合にこのタイプを使用します。これにより、エントリーポイントのパフォーマンスを最適化し、クラスターの支払いを削減できます。プロバイダーは各ロードバランサーに対して料金を請求することがあります。

        Ingress HTTP 経由で ONLYOFFICE Docs を公開するには、ingress.enabled パラメーターを true に設定します:

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

        documentserver ingress IP を取得するには、次のコマンドを実行します:

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

        その後、ONLYOFFICE Docs は http://DOCUMENTSERVER-INGRESS-IP/ で利用可能になります。

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

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

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

      3. ONLYOFFICE Docs を HTTPS 経由で公開

        この公開タイプは、ONLYOFFICE Docs の内部 TLS 終端を有効にすることができます。

        SSL 証明書を含む tls シークレットを作成します。

        SSL 証明書と秘密鍵を tls.crt および tls.key ファイルに入れ、次を実行します:

        $ kubectl create secret generic tls \
          --from-file=./tls.crt \
          --from-file=./tls.key
        $ helm install documentserver onlyoffice/docs --set ingress.enabled=true,ingress.ssl.enabled=true,ingress.host=example.com

        documentserver ingress IP を取得するには、次のコマンドを実行します:

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

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

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

        DNS プロバイダーを通じて、documentserver ingress IP またはホスト名をドメイン名に関連付けます。

        その後、ONLYOFFICE Docs は https://your-domain-name/ で利用可能になります。

      4. Let's Encrypt 証明書を使用して HTTPS 経由で ONLYOFFICE Docs を公開
        • Helm リポジトリを追加します:
          $ helm repo add jetstack https://charts.jetstack.io
          $ helm repo update
        • cert-manager のインストール
          $ helm install cert-manager --version v1.17.4 jetstack/cert-manager \
            --namespace cert-manager \
            --create-namespace \
            --set crds.enabled=true \
            --set crds.keep=false

          次に、ingress.enabledingress.ssl.enabledingress.letsencrypt.enabled パラメーターを true に設定してインストールまたはアップグレードを実行します。また、複数のドメイン名を使用する場合は、ingress.letsencrypt.emailingress.host、または ingress.tenants パラメーターに独自の値を設定します(例:--set "ingress.tenants={tenant1.example.com,tenant2.example.com}")。

    3. 仮想パスで ONLYOFFICE Docs を公開

      この公開タイプでは、ONLYOFFICE Docs を仮想パスで公開できます。例えば、http://your-domain-name/docs。Ingress 経由で仮想パスで ONLYOFFICE Docs を公開するには、ingress.enabledingress.host、および ingress.path パラメーターを設定します。

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

      仮想パス設定に対応したイングレスコントローラーの一覧:

      KubernetesによるIngress NGINXを使用して仮想パス設定を行う場合、ingress.pathにパターン(/|$)(.*)を追加します。例えば、/docs/docs(/|$)(.*)となります。

  4. OpenShiftでルートを介してONLYOFFICE Docsを公開する

    この公開方法を使用すると、OpenShiftでルートを介してONLYOFFICE Docsを公開できます。ルートを介してONLYOFFICE Docsを公開するには、次のパラメーターを使用します:openshift.route.enabledopenshift.route.hostopenshift.route.path

    $ 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によって提供され、クラスタアドオンとして起動できます。

    ターゲット利用率値(target.type==Utilization)を使用するには、デプロイメントでresources.requestsの値が指定されている必要があります。

    水平Podオートスケーリングの詳細については、こちらをご覧ください。

    docserviceデプロイメントのHPAを有効にするには、docservice.autoscaling.enabled=trueパラメーターを指定します。この場合、docservice.replicasパラメーターは無視され、レプリカ数はHPAによって制御されます。

    同様に、converterデプロイメントのHPAを有効にするには、converter.autoscaling.enabled=trueパラメーターを指定します。この場合、converter.replicasパラメーターは無視され、レプリカ数はHPAによって制御されます。

    autoscaling.enabledパラメーターが有効になっている場合、デフォルトでオートスケーリングはCPU利用率の平均パーセンテージに基づいてレプリカ数を調整します。他の設定可能なオートスケーリングパラメーターについては、パラメーター表をご覧ください。

  2. 手動スケーリング

    docserviceおよびconverterデプロイメントは、デフォルトでそれぞれ2つのPodで構成されています。

    docserviceデプロイメントをスケールするには、次のコマンドを使用します:

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

    ここで、POD_COUNTdocserviceのPodの数です。

    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をシャットダウンし、データベースをクリーンアップするフックが実行されます。これは、ONLYOFFICE Docsのバージョンを更新する際に必要です。デフォルトのフック実行時間は300秒です。実行時間は--timeout [time]を使用して変更できます。例えば:

$ helm upgrade documentserver -f values.yaml onlyoffice/docs --timeout 15m
Webプロキシの背後やインターネットアクセスのないプライベートk8sクラスタでONLYOFFICE Docsをアップグレードする際は、以下のノートを参照してください。

ONLYOFFICE Docsのバージョン以外のパラメーターを更新したい場合は、hooksなしでhelm upgradeコマンドを実行します。例えば:

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

更新をロールバックするには、次のコマンドを実行します:

$ helm rollback documentserver
Webプロキシの背後やインターネットアクセスのないプライベートk8sクラスタでONLYOFFICE Docsをロールバックする際は、以下のノートを参照してください。
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

ジョブを作成したPod shutdown-dsが正常に実行された後、このジョブを次のコマンドで削除します:

$ 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以降では、新しいライセンスでシークレットを再作成するだけで、ポッドを削除したり再起動したりせずにライセンスを更新できます。documentserverは、ライセンスファイルを置き換えた後に動的に読み込み直すことができます。例えば:

ライセンスを更新するには、次の手順を実行する必要があります:

  • 新しいキーを含むlicense.licファイルをディレクトリに配置します
  • 次のコマンドを実行します:
    $ kubectl delete secret [SECRET_LICENSE_NAME] -n <NAMESPACE>
    $ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.lic -n <NAMESPACE>

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

これで完了です。documentserverは新しいライセンスを自動的に読み込みます。

[非推奨の方法]docserviceおよびconverterのPodを再起動します。例えば、次のコマンドを使用します:
$ kubectl delete pod converter-*** docservice-*** -n <NAMESPACE>
10. ONLYOFFICE Docsインストールテスト(オプション)

次のコマンドを実行することで、ONLYOFFICE Docsの可用性と接続された依存関係へのアクセスをテストできます:

$ helm test documentserver -n <NAMESPACE>

出力には次の行が含まれているはずです:

Phase: Succeeded

helm testコマンドの結果として実行されるPodのログを表示するには、次のコマンドを実行します:

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

ONLYOFFICE Docsの可用性チェックは優先事項と見なされるため、エラーで失敗した場合、テストは失敗と見なされます。

その後、次のコマンドを実行してtest-ds Podを削除できます:

$ kubectl delete pod test-ds -n <NAMESPACE>
このテストは情報提供のみを目的としており、100%の可用性結果を保証するものではありません。すべてのチェックが正常に完了しても、アプリケーションでエラーが発生する場合があります。この場合、アプリケーションログで詳細情報を確認できます。
11. プライベートk8sクラスタでのジョブ実行(オプション)

インストール、更新、ロールバック、および削除のためのJobを実行する際、起動されるコンテナは最新のSQLスクリプトをダウンロードするためにインターネットアクセスが必要です。k8sクラスタ内でコンテナの外部ネットワークへのアクセスが禁止されている場合、privateCluster=trueパラメーターを設定し、必要なSQLスクリプトを含むConfigMapを手動で作成することでこれらのジョブを実行できます。

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

クラスタにremove-db-scriptsおよびinit-db-scriptsのconfigmapsが既にある場合、それらを削除します:

$ kubectl delete cm remove-db-scripts init-db-scripts

データベースのクリーンアップとデータベーステーブルの作成のために、ONLYOFFICE Docsのデータベーススクリプトをダウンロードします:

データベースサーバーとしてPostgreSQLを選択した場合:

$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/postgresql/createdb.sql

データベースサーバーとしてMySQLを選択した場合:

$ wget -O removetbl.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/removetbl.sql
$ wget -O createdb.sql https://raw.githubusercontent.com/ONLYOFFICE/server/master/schema/mysql/createdb.sql

これらからConfigMapを作成します:

$ kubectl create configmap remove-db-scripts --from-file=./removetbl.sql
$ kubectl create configmap init-db-scripts --from-file=./createdb.sql

ConfigMapおよびそれが作成されるファイルに異なる名前を指定した場合、対応するジョブの適切なパラメータを設定します:

  • データベースクリーンアップ用スクリプトにはexistingConfigmap.tblRemove.nameexistingConfigmap.tblRemove.keyName
  • データベーステーブル作成用スクリプトにはexistingConfigmap.tblCreate.nameexistingConfigmap.tblCreate.keyName

次に、helm install|upgrade|rollback|deleteコマンドを実行する際に、パラメータprivateCluster=trueを設定します

ネットワーク内でWebプロキシを使用してPodコンテナがインターネットにアクセスできる場合、パラメータprivateCluster=falseを設定し、手動でSQLスクリプトを含むconfigmapsを作成せずに、パラメータwebProxy.enabled=trueを設定し、Webプロキシの適切なパラメータを設定することができます。
12. 情報ページへのアクセス(オプション)

/infoページへのアクセスはデフォルトで制限されています。アクセスを許可するためには、proxy.infoAllowedIPパラメータを使用してIPアドレスまたはサブネット(この場合はプロキシコンテナクライアントになります)を指定する必要があります。Kubernetesネットワークの相互作用の特性を考慮すると、標準的なシナリオではありませんが、ユーザーの元のIP(プロキシクライアント)を取得することが可能です。一般的には、Pod / ノード / ロードバランサーのアドレスが実際のクライアントとなるため、これらのアドレスを使用します。この場合、情報ページへのアクセスは誰でも可能になります。Nginxの基本認証を使用してinfoページへのアクセスをさらに制限することができ、proxy.infoAllowedUserパラメータ値を設定し、proxy.infoAllowedPasswordパラメータを使用してパスワードを設定することで有効にすることができます。または、proxy.infoAllowedExistingSecretパラメータを設定して既存のパスワードを持つシークレットを使用することもできます。

Grafanaを使用してメトリクスを視覚化する(オプション)

このステップはオプションです。Grafanaをインストールしたくない場合は、このセクションをスキップできます。
1. Grafanaのデプロイ
ステップ#6.2がすでに完了していることが前提です。
  1. 既製のダッシュボードをインストールせずにGrafanaをデプロイする
    既製のダッシュボードをインストールしてGrafanaをデプロイしたい場合は、このステップをスキップしてください。

    クラスターにGrafanaをインストールするには、次のコマンドを実行します:

    $ helm install grafana --version 12.1.8 bitnami/grafana \
      --set service.ports.grafana=80 \
      --set config.useGrafanaIniFile=true \
      --set config.grafanaIniConfigMap=grafana-ini \
      --set datasources.secretName=grafana-datasource \
      --set resourcesPreset=none \
      --set image.repository=bitnamilegacy/grafana \
      --set image.tag=12.1.1-debian-12-r1 \
      --set global.security.allowInsecureImages=true
  2. 既製のダッシュボードをインストールしてGrafanaをデプロイする
    1. 既製のGrafanaダッシュボードをインストールする

      既製のGrafanaダッシュボードをインストールするには、grafana.enabledgrafana.dashboard.enabledパラメータをtrueに設定します。ONLYOFFICE Docsがすでにインストールされている場合、helm upgrade documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.dashboard.enabled=trueコマンドを実行するか、values.yamlファイルにパラメータが指定されている場合はhelm upgrade documentserver -f ./values.yaml onlyoffice/docsを実行します。その結果、JSON形式の既製のダッシュボードがGrafanaのウェブサイトからダウンロードされ、必要な編集が行われ、それらからconfigmapが作成されます。また、ONLYOFFICE Docsからのメトリクスを視覚化するためのダッシュボードも追加されます(ステップ#6がすでに完了していることが前提です)。

    2. Grafanaのインストール

      クラスターにGrafanaをインストールするには、次のコマンドを実行します:

      $ helm install grafana --version 12.1.8 bitnami/grafana \
        --set service.ports.grafana=80 \
        --set config.useGrafanaIniFile=true \
        --set config.grafanaIniConfigMap=grafana-ini \
        --set datasources.secretName=grafana-datasource \
        --set resourcesPreset=none \
        --set image.repository=bitnamilegacy/grafana \
        --set image.tag=12.1.1-debian-12-r1 \
        --set global.security.allowInsecureImages=true \
        --set dashboardsProvider.enabled=true \
        --set dashboardsConfigMaps[0].configMapName=dashboard-node-exporter \
        --set dashboardsConfigMaps[0].fileName=dashboard-node-exporter.json \
        --set dashboardsConfigMaps[1].configMapName=dashboard-deployment \
        --set dashboardsConfigMaps[1].fileName=dashboard-deployment.json \
        --set dashboardsConfigMaps[2].configMapName=dashboard-redis \
        --set dashboardsConfigMaps[2].fileName=dashboard-redis.json \
        --set dashboardsConfigMaps[3].configMapName=dashboard-rabbitmq \
        --set dashboardsConfigMaps[3].fileName=dashboard-rabbitmq.json \
        --set dashboardsConfigMaps[4].configMapName=dashboard-postgresql \
        --set dashboardsConfigMaps[4].fileName=dashboard-postgresql.json \
        --set dashboardsConfigMaps[5].configMapName=dashboard-nginx-ingress \
        --set dashboardsConfigMaps[5].fileName=dashboard-nginx-ingress.json \
        --set dashboardsConfigMaps[6].configMapName=dashboard-documentserver \
        --set dashboardsConfigMaps[6].fileName=dashboard-documentserver.json \
        --set dashboardsConfigMaps[7].configMapName=dashboard-cluster-resourses \
        --set dashboardsConfigMaps[7].fileName=dashboard-cluster-resourses.json

      このコマンドを実行すると、次のダッシュボードがGrafanaにインポートされます:

      • ノードエクスポーター
      • デプロイメント ステートフルセット デーモンセット
      • Prometheus Redis Exporter用のRedisダッシュボード
      • RabbitMQ-Overview
      • PostgreSQLデータベース
      • NGINX Ingressコントローラー
      • ONLYOFFICE Docs
      • Podおよびコンテナのリソース使用量
      Grafanaで視覚化されるONLYOFFICE Docsのメトリクスの説明はこちらで確認できます。

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

2. Ingressを介してGrafanaにアクセスする
ステップ#5.3.2.1がすでに完了していることが前提です。

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

セキュア接続を使用してIngresがインストールされた場合(ステップ#5.3.2.3)、Grafanaへのアクセスは次のアドレスになります:https://your-domain-name/grafana/

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

次のアドレスに移動します:http(s)://your-domain-name/grafana/

ログイン - admin

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

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

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

次の項目が含まれている記事:タグ:
すべてのタグを見る