Kubernetes向けONLYOFFICE Docs
はじめに
-
KubernetesまたはOpenShiftクラスターをインストールしている必要があります:
- Kubernetesのセットアップについては、こちらのリファレンスを参照してください。
- OpenShiftのセットアップについては、こちらのリファレンスを参照してください。
- ローカルに設定された
kubectlのコピーも必要です。kubectlのインストールと設定については、こちらのガイドを参照してください。 - Helm v3.7+をインストールする必要があります。インストール手順はこちらを参照してください。
- OpenShiftを使用する場合、
ocとkubectlの両方を使用してデプロイを管理できます。 - OpenShiftクラスターでHelm Chartから‘Docs’以外のコンポーネントをインストールする場合、アクセス権の問題を避けるために
cluster-adminロールを持つユーザーからインストールすることをお勧めします。必要なロールをユーザーに追加する方法については、こちらのガイドを参照してください。
デプロイ前提条件
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. 永続ストレージのインストール
NFSサーバープロビジョナーのインストール
NFSが作成されます。OpenShiftクラスターにインストールする際には、クラスター内でストレージクラスを作成する権限を持つロールを持つユーザーが必要です。詳細はこちらを参照してください。$ helm install nfs-server nfs-server-provisioner/nfs-server-provisioner \
--set persistence.enabled=true \
--set persistence.storageClass=PERSISTENT_STORAGE_CLASS \
--set persistence.size=PERSISTENT_SIZE
-
PERSISTENT_STORAGE_CLASSは、Kubernetesクラスターで利用可能な永続ストレージクラスです。各プロバイダーの永続ストレージクラス:
- Amazon EKS:
gp2 - Digital Ocean:
do-block-storage - IBM Cloud:デフォルト
ibmc-file-bronze。その他のストレージクラス - Yandex Cloud:
yc-network-hddまたはyc-network-ssd。詳細はこちら - minikube:
standard
- Amazon EKS:
PERSISTENT_SIZEは、nfs永続ストレージクラスのすべての永続ストレージの合計サイズです。サイズは、T、G、M、Ti、Gi、Miのいずれかのサフィックスを付けた整数として表現できます。例:9Gi。
Helmを使用してNFSサーバープロビジョナーをインストールする詳細については、こちらを参照してください。
永続ボリュームクレームの設定
デフォルトのnfs永続ボリュームクレームは8Giです。values.yamlファイルのpersistence.storageClassとpersistence.sizeセクションで変更できます。
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
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
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
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の永続ストレージを使用することをお勧めします。
metrics.enabled=trueを設定してください。また、次のパラメーターを追加してください:metrics.image.repository=bitnamilegacy/mysqld-exporterとmetrics.image.tag=0.17.2-debian-12-r16。6. StatsDエクスポーターをデプロイする
-
Helmリポジトリを追加する
$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts $ helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics $ helm repo update -
Prometheusのインストール
クラスターにPrometheusをインストールするには、次のコマンドを実行します:
$ helm install prometheus -f https://raw.githubusercontent.com/ONLYOFFICE/Kubernetes-Docs/master/sources/extraScrapeConfigs.yaml prometheus-community/prometheus \ --set server.global.scrape_interval=1mスクレイプ間隔を変更するには、
server.global.scrape_intervalパラメーターを指定します。Helmを使用してPrometheusをインストールする詳細については、こちらをご覧ください。
-
StatsDエクスポーターのインストール
クラスターにStatsDエクスポーターをインストールするには、次のコマンドを実行します:
$ helm install statsd-exporter prometheus-community/prometheus-statsd-exporter \ --set statsd.udpPort=8125 \ --set statsd.tcpPort=8126 \ --set statsd.eventFlushInterval=30000msHelmを使用してPrometheus StatsDエクスポーターをインストールする詳細については、こちらをご覧ください。
ONLYOFFICE DocsでStatsDメトリクスを許可するには、このステップに従ってください。
7. Node-config設定ファイルを変更する
-
JSONファイルを含むConfigMapを作成する
local.json構造を含むファイルからConfigMapを作成するには、次のコマンドを実行します:$ kubectl create configmap local-config \ --from-file=./local.jsonlocal-configの代わりに任意の名前を使用できます。 -
ONLYOFFICE Docsをインストールする際のパラメーターを指定する
ONLYOFFICE Docsをインストールする際に、
extraConf.configMap=local-configとextraConf.filename=local.jsonのパラメーターを指定します。ONLYOFFICE Docsを既にインストールした後に設定ファイルを追加する必要がある場合は、ステップ7.1を実行し、次に
コマンドまたはhelm upgrade documentserver onlyoffice/docs --set extraConf.configMap=local-config --set extraConf.filename=local.json --no-hooks
パラメーターがhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksvalues.yamlファイルに指定されている場合。
8. カスタムフォントを追加する
画像にフォントを追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。
9. プラグインを追加する
画像にプラグインを追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。
10. カスタム辞書を追加する
画像にカスタム辞書を追加するには、画像を再構築する必要があります。こちらのマニュアルの関連ステップを参照してください。その後、ONLYOFFICE Docsをインストールする際に画像を指定します。
11. インターフェーステーマを変更する
-
JSONファイルを含むConfigMapを作成する
インターフェーステーマを含むJSONファイルでConfigMapを作成するには、次のコマンドを実行します:
$ kubectl create configmap custom-themes \ --from-file=./custom-themes.jsoncustom-themesとcustom-themes.jsonの代わりに任意の名前を使用できます。 -
ONLYOFFICE Docsをインストールする際のパラメーターを指定する
ONLYOFFICE Docsをインストールする際に、
extraThemes.configMap=custom-themesとextraThemes.filename=custom-themes.jsonのパラメーターを指定します。ONLYOFFICE Docsを既にインストールした後にインターフェーステーマを追加する必要がある場合は、ステップ11.1を実行し、次にhelm upgrade documentserver onlyoffice/docs --set extraThemes.configMap=custom-themes --set extraThemes.filename=custom-themes.json --no-hooksコマンドまたはhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksパラメーターがvalues.yamlファイルに指定されている場合。
ONLYOFFICE Docsをデプロイする
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とをtrueに設定します。
1. ONLYOFFICE Docsライセンスをデプロイする
-
シークレットを作成する
有効なONLYOFFICE Docsライセンスをお持ちの場合、ファイルから
licenseというシークレットを作成します:$ kubectl create secret generic [SECRET_LICENSE_NAME] --from-file=path/to/license.licここで、
SECRET_LICENSE_NAMEはライセンスを持つ将来のシークレットの名前です。ソースライセンスファイル名は「license.lic」である必要があります。この名前は作成されたシークレットのフィールドとして使用されます。既存のライセンスファイルを持つシークレットを作成せずにインストールを行う場合、空のシークレットlicense自動的に作成されます。ライセンスを使用して既存のシークレットを更新する方法については、こちらをご覧ください。 -
ONLYOFFICE Docsをインストールする際のパラメータ指定
ONLYOFFICE Docsをインストールする際には、
license.existingSecret=[SECRET_LICENSE_NAME]パラメータを指定してください。$ helm install documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME]ONLYOFFICE Docsを既にインストールした後でライセンスを追加する必要がある場合は、ステップ1.1を実行し、その後helm upgrade documentserver onlyoffice/docs --set license.existingSecret=[SECRET_LICENSE_NAME] --no-hooksコマンドまたはhelm upgrade documentserver -f ./values.yaml onlyoffice/docs --no-hooksを実行してください。パラメータがvalues.yamlファイルに指定されている場合。
2. ONLYOFFICE Docsのデプロイ
リリース名documentserverでONLYOFFICE Docsをデプロイするには:
$ helm install documentserver onlyoffice/docs
このコマンドは、デフォルトの設定でKubernetesクラスターにONLYOFFICE Docsをデプロイします。インストール中に設定できるパラメータはパラメータセクションにリストされています。
3. ONLYOFFICE Docsのアンインストール
documentserverデプロイメントをアンインストール/削除するには:
$ helm delete documentserver
helm deleteコマンドを実行すると、ONLYOFFICE Docsを完全に削除する前にいくつかの準備作業を行うフックが起動します。これにはサーバーの停止、使用されたPVCとデータベーステーブルのクリーンアップが含まれます。デフォルトのフック実行時間は300秒です。実行時間は--timeout [time]を使用して変更できます。例えば:
$ helm delete documentserver --timeout 25m
準備作業なしでONLYOFFICE Docsを削除したい場合は、次のコマンドを実行してください:
$ helm delete documentserver --no-hooks
helm deleteコマンドは、チャートに関連付けられたすべてのKubernetesコンポーネントを削除し、リリースを削除します。
4. パラメータ
connections.dbType | データベースの種類。可能な値はpostgres、mariadb、mysql、oracle、mssql、damengです | postgres |
connections.dbHost | データベースホストのIPアドレスまたは名前 | postgresql |
connections.dbUser | データベースユーザー | postgres |
connections.dbPort | データベースサーバーのポート番号 | 5432 |
connections.dbName | アプリケーションが接続するデータベースの名前 | postgres |
connections.dbPassword | データベースユーザーのパスワード。設定されている場合、connections.dbExistingSecretより優先されます | "" |
connections.dbSecretKeyName | データベースユーザーパスワードを含むキーの名前 | postgres-password |
connections.dbExistingSecret | データベースパスワードに使用する既存のシークレットの名前。connections.dbSecretKeyNameで指定されたキーを含んでいる必要があります | postgresql |
connections.redisConnectorName | Redisに接続するために使用するコネクタを定義します。Redis Sentinelに接続する必要がある場合は、値をioredisに設定します | redis |
connections.redistHost | RedisホストのIPアドレスまたは名前。connections.redisClusterNodesおよびconnections.redisSentinelNodesに値が設定されている場合は使用されません | redis-master |
connections.redisPort | Redisサーバーのポート番号。connections.redisClusterNodesおよびconnections.redisSentinelNodesに値が設定されている場合は使用されません | 6379 |
connections.redisUser | Redisユーザー名。このパラメータの値は、カスタム設定ファイルを追加する場合、local.jsonのoptionsオブジェクトに設定された値を上書きします | default |
connections.redisDBNum | 選択されるRedis論理データベースの番号。カスタム設定ファイルを追加する場合、このパラメータの値はlocal.jsonのoptionsオブジェクトに設定された値を上書きします | 0 |
connections.redisClusterNodes | Redisクラスター内のノードのリスト。クラスター内のすべてのノードを指定する必要はなく、3つで十分です。複数の値を指定できます。host:port形式で指定する必要があります | [] |
connections.redisPassword | Redisアカウントに設定されたパスワード。設定されている場合、connections.redisExistingSecretより優先されます。このパラメータの値は、カスタム設定ファイルを追加する場合、local.jsonのoptionsオブジェクトに設定された値を上書きします | "" |
connections.redisSecretKeyName | Redisユーザーパスワードを含むキーの名前 | redis-password |
connections.redisExistingSecret | Redisパスワードに使用する既存のシークレットの名前。connections.redisSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsonのoptionsオブジェクトに設定されたパスワードを上書きします | redis |
connections.redisNoPass | パスワードなしでRedis認証を使用するかどうかを定義します。Redisサーバーへの接続にパスワードが必要ない場合、値をtrueに設定します | false |
connections.redisSentinelNodes | Redis Sentinelノードのリスト。すべてのノードを指定する必要はなく、3つで十分です。複数の値を指定できます。host:port形式で指定する必要があります。connections.redisConnectorNameがioredisに設定されている場合に使用されます | [] |
connections.redisSentinelGroupName | マスターと1つ以上のスレーブで構成されるRedisインスタンスのグループの名前。connections.redisConnectorNameがioredisに設定されている場合に使用されます | mymaster |
connections.redisSentinelExistingSecret | Redis Sentinelパスワードに使用する既存のシークレットの名前。connections.redisSentinelSecretKeyNameで指定されたキーを含んでいる必要があります。このシークレットからのパスワードは、local.jsonのiooptionsオブジェクトに設定されたパスワードを上書きします | "" |
connections.redisSentinelSecretKeyName | Redis Sentinelユーザーパスワードを含むキーの名前。redisSentinelPasswordにパスワードを設定した場合、ここで設定された値がキー名となるシークレットが自動的に作成されます | sentinel-password |
connections.redisSentinelPassword | Redis Sentinelアカウントに設定されたパスワード。設定されている場合、connections.redisSentinelExistingSecretより優先されます。このパラメータの値は、local.jsonのiooptionsオブジェクトに設定された値を上書きします | "" |
connections.redisSentinelNoPass | パスワードなしでRedis Sentinel認証を使用するかどうかを定義します。Redis Sentinelへの接続にパスワードが必要ない場合、値をtrueに設定します | true |
connections.amqpType | AMQPサーバーのタイプを定義します。可能な値はrabbitmqまたはactivemqです | rabbitmq |
connections.amqpHost | AMQPサーバーのIPアドレスまたは名前 | rabbitmq |
connections.amqpPort | AMQPサーバーへの接続ポート | 5672 |
connections.amqpVhost | AMQPサーバーへの接続のための仮想ホスト | / |
connections.amqpUser | AMQPサーバーアカウントのユーザー名 | user |
connections.amqpProto | AMQPサーバーへの接続プロトコル | amqp |
connections.amqpPassword | AMQPサーバーユーザーパスワード。設定されている場合、connections.amqpExistingSecretより優先されます | "" |
connections.amqpSecretKeyName | AMQPサーバーユーザーパスワードを含むキーの名前 | rabbitmq-password |
connections.amqpExistingSecret | AMQPサーバーパスワードに使用する既存のシークレットの名前。connections.amqpSecretKeyNameで指定されたキーを含んでいる必要があります | rabbitmq |
persistence.existingClaim | 使用する既存のPVCの名前。指定されていない場合は、「ds-files」という名前のPVCが作成されます | "" |
persistence.annotations | 「ds-files」PVCに追加で追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
persistence.storageClass | ONLYOFFICE Docsのデータおよびランタイム設定ボリューム用のPVCストレージクラス | nfs |
persistence.size | ONLYOFFICE Docsボリューム用のPVCストレージリクエスト | 8Gi |
persistence.storageS3 | S3をキャッシュストレージとして使用するかどうかを定義します。S3をキャッシュストレージとして使用する場合はtrueに設定します | false |
persistence.runtimeConfig.enabled | PVCを使用するかどうか、およびコンテナにマウントするかどうかを定義します | true |
persistence.runtimeConfig.existingClaim | ランタイム設定を保存するために使用される既存のPVCの名前。指定されていない場合は、「ds-runtime-config」という名前のPVCが作成されます | "" |
persistence.runtimeConfig.annotations | 「ds-runtime-config」PVCに追加で付加されるアノテーションを定義します。設定されている場合、commonAnnotationsよりも優先されます | {} |
persistence.runtimeConfig.size | ランタイム設定ボリューム用のPVCストレージリクエスト | 1Gi |
commonNameSuffix | 作成されたすべてのリソースの名前にサフィックスとして追加される名前 | "" |
namespaceOverride | ONLYOFFICE Docsがデプロイされるネームスペースの名前。設定されていない場合、名前は.Release.Namespaceから取得されます | "" |
commonLabels | デプロイされたすべてのリソースに追加で付加されるラベルを定義します。キーの値としてtplを使用することもできます | {} |
commonAnnotations | デプロイされたすべてのリソースに追加で付加されるアノテーションを定義します。キーの値としてtplを使用することもできます。一部のリソースはここで指定された値を独自のもので上書きする場合があります | {} |
serviceAccount.create | ServiceAccountの作成を有効にします | false |
serviceAccount.name | 使用するServiceAccountの名前。設定されていない場合、serviceAccount.createがtrueの場合は.Release.Nameから取得され、serviceAccount.createがfalseの場合は「default」となります | "" |
serviceAccount.annotations | ServiceAccountに追加するアノテーションのマップ。設定されている場合、commonAnnotationsよりも優先されます | {} |
serviceAccount.automountServiceAccountToken | 作成されたServiceAccountにServiceAccountTokenの自動マウントを有効にします。serviceAccount.createがtrueの場合にのみ使用されます | true |
license.existingSecret | ライセンスを含む既存のシークレットの名前。キーlicense.licを含む必要があります | "" |
license.existingClaim | ライセンスが保存されている既存のPVCの名前。ファイルlicense.licを含む必要があります | "" |
log.level | ログイベントの種類と重大度を定義します。可能な値はALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、MARK、OFFです | WARN |
log.type | ログイベントの形式を定義します。可能な値はpattern、json、basic、coloured、messagePassThrough、dummyです | pattern |
log.pattern | log.type=patternの場合のログパターンを定義します | [%d] [%p] %c - %.10000m |
wopi.enabled | WOPIが有効かどうかを定義します。このパラメータが有効になっている場合、クライアントのためにマウントされたディレクトリ(PVC)のキャッシュ属性を無効にする必要があります | false |
wopi.keys.generation | APIキーを生成するかどうかを定義します。wopi.enabledをtrueに設定した場合に使用されます | true |
wopi.keys.newKeysExistingSecret | WOPIキーを含む既存のシークレットの名前。キーWOPI_PRIVATE_KEY、WOPI_PUBLIC_KEY、WOPI_MODULUS_KEY、WOPI_EXPONENT_KEYを含む必要があります。設定されていない場合、新しいキーが生成され、それらからシークレットが作成されます | "" |
wopi.keys.oldKeysExistingSecret | 古いWOPIキーを含む既存のシークレットの名前。キーWOPI_PRIVATE_KEY_OLD、WOPI_PUBLIC_KEY_OLD、WOPI_MODULUS_KEY_OLD、WOPI_EXPONENT_KEY_OLDを含む必要があります。設定されていない場合、新しいキーが生成され、それらからシークレットが作成されます | "" |
metrics.enabled | ONLYOFFICE DocsのためのStatsDの有効化を指定します | false |
metrics.host | StatsDのリスニングホストを定義します | statsd-exporter-prometheus-statsd-exporter |
metrics.port | StatsDのリスニングポートを定義します | 8125 |
metrics.prefix | バックエンドサービスのためのStatsDメトリックプレフィックスを定義します | ds. |
extraConf.configMap | デフォルト値を上書きするjsonファイルを含むConfigMapの名前 | "" |
extraConf.filename | カスタム値を含むjsonファイルの名前。extraConf.ConfigMapのkey名と同じである必要があります | local.json |
extraThemes.configMap | インターフェーステーマを含むjsonファイルを含むConfigMapの名前 | "" |
extraThemes.filename | カスタムインターフェーステーマを含むjsonファイルの名前。extraThemes.configMapのkey名と同じである必要があります | custom-themes.json |
podAntiAffinity.type | Podのアンチアフィニティのタイプ。許可される値:softまたはhard | soft |
podAntiAffinity.topologyKey | 一致するノードラベルキー | kubernetes.io/hostname |
podAntiAffinity.weight | ノードを選択する際の優先度。1から100の範囲内です | 100 |
nodeSelector | Podの割り当てのためのノードラベル。各ONLYOFFICE Docsサービスはここで指定された値を独自のもので上書きすることができます | {} |
tolerations | Podの割り当てのための許容値。各ONLYOFFICE Docsサービスはここで指定された値を独自のもので上書きすることができます | [] |
imagePullSecrets | コンテナイメージレジストリのシークレット名 | "" |
requestFilteringAgent.allowPrivateIPAddress | プライベートIPアドレスへの接続が許可されているかどうかを定義します。requestFilteringAgentパラメータはJWTが無効な場合に使用されます:jwt.enabled=false | false |
requestFilteringAgent.allowMetaIPAddress | メタアドレスへの接続が許可されているかどうかを定義します | false |
requestFilteringAgent.allowIPAddressList | 接続が許可されているIPアドレスのリストを定義します。この値はrequestFilteringAgent.denyIPAddressListよりも優先されます | [] |
requestFilteringAgent.denyIPAddressList | 接続が許可されているIPアドレスのリストを定義します | [] |
docservice.annotations | Docservice Deploymentに追加で付加されるアノテーションを定義します。設定されている場合、commonAnnotationsよりも優先されます | {} |
docservice.podAnnotations | Docserviceデプロイメントポッドに追加するアノテーションのマップ | rollme: "{{ randAlphaNum 5 | quote }}" |
docservice.replicas | Docserviceのレプリカ数。docservice.autoscaling.enabledパラメータが有効な場合、無視されます | 2 |
docservice.updateStrategy.type | Docserviceデプロイメントの更新戦略タイプ | Recreate |
docservice.customPodAntiAffinity | 指定されたラベルを含む他のPodに対してDocservice Podのスケジューリングを同じノード上で禁止します | {} |
docservice.podAffinity | Docservice Podのスケジューリングに関するノード相対のPodアフィニティルールを定義します | {} |
docservice.nodeAffinity | Docservice Podのスケジューリングに関するノードアフィニティルールを定義します | {} |
docservice.nodeSelector | Docservice Podの割り当てのためのノードラベル。設定されている場合、nodeSelectorよりも優先されます | {} |
docservice.tolerations | Docservice Podの割り当てのための許容値。設定されている場合、tolerationsよりも優先されます | [] |
docservice.terminationGracePeriodSeconds | Docservice PodがTerminatingステータスになるまでの優雅な終了時間 | 30 |
docservice.hostAliases | DocserviceおよびProxyコンテナのホストファイルに追加のエントリを追加します | [] |
docservice.initContainers | Docserviceデプロイメントポッド内でdocserviceおよびproxyコンテナの前に実行されるコンテナを定義します。例えば、PersistentVolumeの所有者を変更するコンテナなど | [] |
docservice.image.repository | Docserviceコンテナイメージリポジトリ* | onlyoffice/docs-docservice-de |
docservice.image.tag | Docserviceコンテナイメージタグ | 9.0.4-1 |
docservice.image.pullPolicy | Docserviceコンテナイメージのプルポリシー | IfNotPresent |
docservice.containerSecurityContext.enabled | Docserviceコンテナのセキュリティコンテキストを有効にします | false
|
docservice.lifecycleHooks | Docserviceのコンテナライフサイクルフックを定義します。これは、コンテナのライフサイクルの特定のポイントで実行されるイベントをトリガーするために使用されます | {} |
docservice.resources.requests | Docserviceコンテナの要求されたリソース | {} |
docservice.resources.limits | Docserviceコンテナのリソース制限 | {} |
docservice.extraEnvVars | Docserviceコンテナの追加の環境変数を含む配列 | [] |
docservice.extraVolumes | Docservice Podの追加ボリュームを含む配列 | [] |
docservice.extraVolumeMounts | Docserviceコンテナの追加ボリュームマウントを含む配列 | [] |
docservice.readinessProbe.enabled | DocserviceコンテナのreadinessProbeを有効にする | true |
docservice.livenessProbe.enabled | DocserviceコンテナのlivenessProbeを有効にする | true |
docservice.startupProbe.enabled | DocserviceコンテナのstartupProbeを有効にする | true |
docservice.autoscaling.enabled | Docserviceデプロイメントのオートスケーリングを有効にする | false |
docservice.autoscaling.annotations | DocserviceデプロイメントHPAに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます | {} |
docservice.autoscaling.minReplicas | Docserviceデプロイメントのオートスケーリングの最小レプリカ数 | 2 |
docservice.autoscaling.maxReplicas | Docserviceデプロイメントのオートスケーリングの最大レプリカ数 | 4 |
docservice.autoscaling.targetCPU.enabled | CPU使用率に基づくDocserviceデプロイメントのオートスケーリングを有効にする | true |
docservice.autoscaling.targetCPU.utilizationPercentage | DocserviceデプロイメントのオートスケーリングのターゲットCPU使用率 | 70 |
docservice.autoscaling.targetMemory.enabled | メモリ使用率に基づくDocserviceデプロイメントのオートスケーリングを有効にする | false |
docservice.autoscaling.targetMemory.utilizationPercentage | Docserviceデプロイメントのオートスケーリングのターゲットメモリ使用率 | 70 |
docservice.autoscaling.customMetricsType | Docserviceデプロイメントのカスタム、追加または外部のオートスケーリングメトリクス | [] |
docservice.autoscaling.behavior | Docserviceデプロイメントのスケーリング動作ポリシーをscaleDownおよびscaleUpフィールドに対して設定します | {} |
proxy.accessLog | nginx設定のaccess_logフォーマットディレクティブを定義します | off |
proxy.logFormat | テキストとさまざまな変数を使用してログエントリのフォーマットを定義します | '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' |
proxy.gzipProxied | nginx設定のgzip_proxiedディレクティブを定義します | off |
proxy.clientMaxBodySize | nginx設定のclient_max_body_sizeディレクティブを定義します | 100m |
proxy.workerConnections | nginx設定のworker_connectionsディレクティブを定義します | 4096 |
proxy.secureLinkSecret | nginx設定ディレクティブsecure_link_md5のシークレットを定義します。値が空の場合、ランダムなものが生成され、後のアップグレードで使用されます。値が設定されている場合、それが使用されます | "" |
proxy.secureLinkExistingSecret | secure_linkに使用する既存のシークレットの名前。設定されている場合、proxy.secureLinkSecretより優先されます | "" |
proxy.infoAllowedIP | 情報ページにアクセスするためのIPアドレスを定義します | [] |
proxy.infoAllowedUser | 情報ページにアクセスするためのユーザー名を定義します。設定されていない場合、Nginxの基本認証は情報ページへのアクセスに適用されません。詳細はこちらを参照してください | "" |
proxy.infoAllowedPassword | 情報ページにアクセスするためのユーザーパスワードを定義します。proxy.infoAllowedUserが設定されている場合に使用されます。値が空の場合、ランダムなものが生成され、後のアップグレードで使用されます。値が設定されている場合、それが使用されます | "" |
proxy.infoAllowedSecretKeyName | 情報認証ユーザーパスワードを含むキーの名前。proxy.infoAllowedUserが設定されている場合に使用されます | info-auth-password |
proxy.infoAllowedExistingSecret | 情報認証パスワードに使用する既存のシークレットの名前。proxy.infoAllowedUserが設定されている場合に使用されます。proxy.infoAllowedSecretKeyNameで指定されたキーを含む必要があります。設定されている場合、proxy.infoAllowedPasswordより優先されます | "" |
proxy.welcomePage.enabled | ウェルカムページを表示するかどうかを定義します | true |
proxy.image.repository | Docservice Proxyコンテナイメージのリポジトリ* | onlyoffice/docs-proxy-de |
proxy.image.tag | Docservice Proxyコンテナイメージのタグ | 9.0.4-1 |
proxy.image.pullPolicy | Docservice Proxyコンテナイメージのプルポリシー | IfNotPresent |
proxy.containerSecurityContext.enabled | Proxyコンテナのセキュリティコンテキストを有効にする | false |
proxy.lifecycleHooks | Proxyのコンテナライフサイクルフックを定義します。これは、コンテナのライフサイクルの特定のポイントで実行されるイベントをトリガーするために使用されます | {} |
proxy.resources.requests | Proxyコンテナの要求されたリソース | {} |
proxy.resources.limits | Proxyコンテナのリソース制限 | {} |
proxy.extraEnvVars | Proxyコンテナの追加の環境変数を含む配列 | [] |
proxy.extraVolumeMounts | Proxyコンテナの追加ボリュームマウントを含む配列 | [] |
proxy.readinessProbe.enabled | ProxyコンテナのreadinessProbeを有効にする | true |
proxy.livenessProbe.enabled | ProxyコンテナのlivenessProbeを有効にする | true |
proxy.startupProbe.enabled | ProxyコンテナのstartupProbeを有効にする | true |
converter.annotations | Converterデプロイメントに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます | {} |
converter.podAnnotations | Converterデプロイメントポッドに追加する注釈のマップ | rollme: "{{ randAlphaNum 5 | quote }}" |
converter.replicas | Converterのレプリカ数。converter.autoscaling.enabledパラメータが有効な場合、無視されます | 2 |
converter.updateStrategy.type | Converterデプロイメントの更新戦略タイプ | Recreate |
converter.customPodAntiAffinity | 同じノード上の指定されたラベルを含む他のPodに対してConverter Podのスケジューリングを禁止します | {} |
converter.podAffinity | ノードに対してConverter Podのスケジューリングを行うためのPodアフィニティルールを定義します | {} |
converter.nodeAffinity | ノードに対してConverter Podのスケジューリングを行うためのノードアフィニティルールを定義します | {} |
converter.nodeSelector | Converter Podの割り当てに使用するノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
converter.tolerations | Converter Podの割り当てに使用するトレランス。設定されている場合、tolerationsより優先されます | [] |
converter.terminationGracePeriodSeconds | Converter PodがTerminatingステータスを持つ間に優雅に終了する時間 | 30 |
converter.hostAliases | Converterコンテナのホストファイルに追加のエントリを追加します | [] |
converter.initContainers | Converterデプロイメントポッド内でConverterコンテナの前に実行されるコンテナを定義します。例えば、PersistentVolumeの所有者を変更するコンテナなど | [] |
converter.image.repository | Converterコンテナイメージのリポジトリ* | onlyoffice/docs-converter-de |
converter.image.tag | Converterコンテナイメージのタグ | 9.0.4-1 |
converter.image.pullPolicy | Converterコンテナイメージのプルポリシー | IfNotPresent |
converter.containerSecurityContext.enabled | Converterコンテナのセキュリティコンテキストを有効にする | false |
converter.lifecycleHooks | コンバーターのコンテナライフサイクルフックを定義します。コンテナのライフサイクルの特定のポイントでイベントをトリガーするために使用されます | {} |
converter.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.enabled | CPU使用率によるコンバーターデプロイメントのオートスケーリングを有効にする | true |
converter.autoscaling.targetCPU.utilizationPercentage | コンバーターデプロイメントのオートスケーリング目標CPU使用率 | 70 |
converter.autoscaling.targetMemory.enabled | メモリ使用率によるコンバーターデプロイメントのオートスケーリングを有効にする | false |
converter.autoscaling.targetMemory.utilizationPercentage | コンバーターデプロイメントのオートスケーリング目標メモリ使用率 | 70 |
converter.autoscaling.customMetricsType | コンバーターデプロイメントのカスタム、追加または外部オートスケーリングメトリクス | [] |
converter.autoscaling.behavior | コンバーターデプロイメントのスケーリング動作ポリシーをscaleDownおよびscaleUpフィールドに対して設定する | {} |
example.enabled | Exampleのインストールを有効にする | false |
example.annotations | Example StatefulSetに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
example.podAnnotations | Example Podに追加するアノテーションのマップ | rollme: "{{ randAlphaNum 5 | quote }}" |
example.updateStrategy.type | Example StatefulSetの更新戦略タイプ | RollingUpdate |
example.customPodAntiAffinity | 指定されたラベルを含む他のPodと同じノード上でのExample Podのスケジューリングを禁止する | {} |
example.podAffinity | ノードに対するExample PodのスケジューリングのためのPodアフィニティルールを定義する | {} |
example.nodeAffinity | ノードに対するExample Podのスケジューリングのためのノードアフィニティルールを定義する | {} |
example.nodeSelector | Example Podsの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
example.tolerations | Example Podsの割り当てのための許容値。設定されている場合、tolerationsより優先されます | [] |
example.terminationGracePeriodSeconds | Example PodがTerminatingステータスになる間の優雅な終了時間 | 30 |
example.hostAliases | Exampleコンテナのホストファイルに追加エントリを追加する | [] |
example.initContainers | Pod内のExampleコンテナの前に実行されるコンテナを定義する | [] |
example.image.repository | Exampleコンテナのイメージ名 | onlyoffice/docs-example |
example.image.tag | Exampleコンテナのイメージタグ | 9.0.4-1 |
example.image.pullPolicy | Exampleコンテナのイメージプルポリシー | IfNotPresent |
example.containerSecurityContext.enabled | Exampleコンテナのセキュリティコンテキストを有効にする | false |
example.dsUrl | ONLYOFFICE Docsの外部アドレス。Exampleでの変換の動作を確認する必要がある場合のみ変更してください(例:http://<documentserver-address>/) | / |
example.resources.requests | Exampleコンテナの要求されたリソース | {} |
example.resources.limits | Exampleコンテナのリソース制限 | {} |
example.extraEnvVars | Exampleコンテナの追加環境変数の配列 | [] |
example.extraConf.configMap | デフォルト値を上書きするjsonファイルを含むConfigMapの名前。作成例はこちらを参照 | "" |
example.extraConf.filename | カスタム値を含むjsonファイルの名前。example.extraConf.ConfigMap内のkey名と同じでなければなりません | local.json |
example.extraVolumes | Example Podの追加ボリュームの配列 | [] |
example.extraVolumeMounts | Exampleコンテナの追加ボリュームマウントの配列 | [] |
jwt.enabled | ONLYOFFICE DocsによるJSON Web Tokenの検証を有効にする。受信および送信リクエストに共通 | true |
jwt.secret | ONLYOFFICE Docsへのリクエスト内のJSON Web Tokenを検証するための秘密鍵を定義する。受信および送信リクエストに共通。値が空の場合、ランダムなものが生成され、後のアップグレードで使用されます。値が設定されている場合、それが使用されます | "" |
jwt.header | JSON Web Tokenを送信するために使用されるHTTPヘッダーを定義する。受信および送信リクエストに共通 | Authorization |
jwt.inBody | ONLYOFFICE Docsへのリクエストボディ内のトークン検証を有効にする | false |
jwt.inbox | 受信リクエスト専用のJSON Web Token検証パラメータ。指定されていない場合、共通のjwtパラメータの値が使用されます | {} |
jwt.outbox | 送信リクエスト専用のJSON Web Token検証パラメータ。指定されていない場合、共通のjwtパラメータの値が使用されます | {} |
jwt.existingSecret | jwt用の変数を含む既存のシークレットの名前。指定されていない場合、jwtという名前のシークレットが作成されます | "" |
service.existing | ONLYOFFICE Docs用の既存のサービスの名前。指定されていない場合、documentserverという名前のサービスが作成されます | "" |
service.annotations | ONLYOFFICE Docsサービスに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます | {} |
service.type | ONLYOFFICE Docsサービスのタイプ | ClusterIP |
service.port | ONLYOFFICE Docsサービスのポート | 8888 |
service.sessionAffinity | ONLYOFFICE Docsサービスのセッションアフィニティ。設定されていない場合、デフォルト値としてNoneが設定されます | "" |
service.sessionAffinityConfig | ONLYOFFICE Docsサービスのセッションアフィニティの設定。service.sessionAffinityが設定されている場合に使用されます | {} |
ingress.enabled | ONLYOFFICE Docsのためのイングレスの作成を有効にする | false |
ingress.annotations | イングレスに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
ingress.ingressClassName | このイングレスを実装するために使用されるIngressClassを参照するために使用されます | nginx |
ingress.controllerName | 同じIngressClassNameを持つが異なるベンダーからのコントローラーを区別するために使用されます | ingress-nginx |
ingress.host | ONLYOFFICE Docsイングレスのホスト名 | "" |
ingress.tenants | 複数の名前を使用する必要がある場合のイングレスホスト名。例えば、マルチテナンシーの場合。設定されている場合、ingress.hostより優先されます。ingress.ssl.enabledがtrueに設定されている場合、指定されたすべてのドメインの証明書はingress.ssl.secretによって秘密として保持されていると想定されます | [] |
ingress.ssl.enabled | ONLYOFFICE DocsイングレスのSSLを有効にする | false |
ingress.ssl.secret | イングレスにマウントするためのSSLのシークレット名 | tls |
ingress.path | ONLYOFFICE Docsが利用可能になるパスを指定する | / |
ingress.pathType | ONLYOFFICE Docsのイングレスリソースのパスの種類を指定します。許可される値はExact、Prefix、またはImplementationSpecificです | ImplementationSpecific |
ingress.letsencrypt.enabled | Let's Encryptでの証明書リクエスト作成を有効にします。ingress.enabledがtrueに設定されている場合に使用されます | false |
ingress.letsencrypt.clusterIssuerName | ClusterIssuerの名前 | letsencrypt-prod |
ingress.letsencrypt.email | ACME登録に使用するあなたのメールアドレス | "" |
ingress.letsencrypt.server | 証明書リクエストを送信するLet's Encryptサーバーのアドレス | https://acme-v02.api.letsencrypt.org/directory |
ingress.letsencrypt.secretName | ACMEアカウントの秘密鍵を保存するために使用されるシークレットの名前 | letsencrypt-prod-private-key |
openshift.route.enabled | ONLYOFFICE DocsのためのOpenShiftルートの作成を有効にします | false |
openshift.route.annotations | OpenShiftルートに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます | {} |
openshift.route.host | ONLYOFFICE DocsルートのOpenShiftルートホスト名 | "" |
openshift.route.path | ONLYOFFICE Docsが利用可能になるパスを指定します | / |
openshift.route.wildcardPolicy | OpenShiftルートでワイルドカードサブドメインを処理するためのポリシー。許可される値はNone、Subdomainです | None |
grafana.enabled | Grafanaでのメトリクスの可視化に必要なリソースのインストールを有効にします | false |
grafana.namespace | RBACコンポーネントとGrafanaリソースがデプロイされる名前空間の名前。設定されていない場合、namespaceOverrideが設定されていればその名前、または.Release.Namespaceから取得されます | "" |
grafana.ingress.enabled | Grafanaのためのイングレスの作成を有効にします。grafana.enabledをtrueに設定し、Nginx Ingressを使用してGrafanaにアクセスしたい場合に使用されます | false |
grafana.ingress.annotations | Grafana Ingressに追加するアノテーションのマップ。設定されている場合、commonAnnotationsより優先されます | nginx.ingress.kubernetes.io/proxy-body-size: 100m |
grafana.dashboard.enabled | 既製のGrafanaダッシュボードのインストールを有効にします。grafana.enabledをtrueに設定した場合に使用されます | false |
podSecurityContext.enabled | ポッドのセキュリティコンテキストを有効にします | false |
podSecurityContext.converter.fsGroup | Converter Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します | 101 |
podSecurityContext.docservice.fsGroup | Docservice Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します | 101 |
podSecurityContext.jobs.fsGroup | Jobsによって作成されたポッドにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します | 101 |
podSecurityContext.example.fsGroup | Example Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します | 1001 |
podSecurityContext.tests.fsGroup | Test Podにマウントされた際にボリューム内のすべてのファイルの所有者と権限が変更されるグループIDを定義します | 101 |
webProxy.enabled | ネットワーク内でk8sクラスターのポッドがインターネットにアクセスするためにWebプロキシを使用するかどうかを指定します | false |
webProxy.http | HTTPトラフィック用のWebプロキシアドレス | http://proxy.example.com |
webProxy.https | HTTPSトラフィック用のWebプロキシアドレス | https://proxy.example.com |
webProxy.noProxy | Webプロキシを使用しないIPアドレスやk8sサービス名、ドメイン名のパターン | localhost,127.0.0.1,docservice |
privateCluster | インターネットアクセスのないプライベートネットワークでk8sクラスターを使用するかどうかを指定します | false |
upgrade.job.enabled | ONLYOFFICE 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.dsStop | ONLYOFFICE Docsのアップグレードスクリプトを含む既存のConfigMapの名前。設定されている場合、前の4つのパラメータは無視されます。stop.shというキーを含む必要があります | "" |
rollback.job.enabled | ONLYOFFICE 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.dsStop | ONLYOFFICE Docsのロールバックスクリプトを含む既存のConfigMapの名前。設定されている場合、前の4つのパラメータは無視されます。stop.shというキーを含む必要があります | "" |
delete.job.enabled | ONLYOFFICE 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.initContainers | Pod内の事前削除コンテナの前に実行されるコンテナを定義する | [] |
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.dsStop | ONLYOFFICE Docsの削除スクリプトを含む既存のConfigMapの名前。設定されている場合、前の2つのパラメータは無視されます。stop.shというキーを含む必要があります | "" |
install.job.enabled | ONLYOFFICE 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.initContainers | Pod内の事前インストールコンテナの前に実行されるコンテナを定義する | [] |
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.initdb | initdbスクリプトを含む既存のConfigMapの名前。設定されている場合、前の2つのパラメータは無視されます。initdb.shというキーを含む必要があります | "" |
clearCache.job.enabled | ONLYOFFICE Docsのアップグレード後にジョブClear Cacheを実行する。ジョブClear Cacheはpost-upgradeフックを持ち、Kubernetesでリソースがアップグレードされた後に実行されます。Cacheディレクトリをクリアします | true |
clearCache.job.annotations | Clear Cacheジョブに追加される注釈を定義します。設定されている場合、commonAnnotationsより優先されます | {} |
clearCache.job.podAnnotations | Clear 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.nodeSelector | Clear CacheジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
clearCache.job.tolerations | Clear CacheジョブPodの割り当てのための許容値。設定されている場合、tolerationsより優先されます | [] |
clearCache.job.initContainers | Pod内のClear Cacheコンテナの前に実行されるコンテナを定義する | [] |
clearCache.job.image.repository | Clear Cache ONLYOFFICE Docsイメージリポジトリによるジョブ | onlyoffice/docs-utils |
clearCache.job.image.tag | Clear Cache ONLYOFFICE Docsイメージタグによるジョブ | 9.0.4-1 |
clearCache.job.image.pullPolicy | Clear Cache ONLYOFFICE Docsイメージプルポリシーによるジョブ | IfNotPresent |
clearCache.job.containerSecurityContext.enabled | Clear Cacheコンテナに対するセキュリティコンテキストを有効にする | false |
clearCache.job.resources.requests | ジョブClear Cacheコンテナの要求リソース | {} |
clearCache.job.resources.limits | ジョブClear Cacheコンテナのリソース制限 | {} |
clearCache.existingConfigmap.name | Cacheディレクトリをクリアするカスタムスクリプトを含む既存のConfigMapの名前。設定されている場合、デフォルトのConfigMapは作成されません | "" |
clearCache.existingConfigmap.keyName | Cacheディレクトリをクリアする指示を含むスクリプトの名前。カスタムスクリプトを使用する場合、clearCache.existingConfigmap.nameのkey名と同じである必要があります | clearCache.sh |
grafanaDashboard.job.annotations | Grafana Dashboardジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
grafanaDashboard.job.podAnnotations | Grafana 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.nodeSelector | Grafana DashboardジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
grafanaDashboard.job.tolerations | Grafana DashboardジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます | [] |
grafanaDashboard.job.initContainers | Pod内のGrafana Dashboardコンテナの前に実行されるコンテナを定義します | [] |
grafanaDashboard.job.image.repository | Grafana DashboardジョブによるONLYOFFICE Docsイメージリポジトリ | onlyoffice/docs-utils |
grafanaDashboard.job.image.tag | Grafana DashboardジョブによるONLYOFFICE Docsイメージタグ | 9.0.4-1 |
grafanaDashboard.job.image.pullPolicy | Grafana DashboardジョブによるONLYOFFICE Docsイメージプルポリシー | IfNotPresent |
grafanaDashboard.job.containerSecurityContext.enabled | Grafana Dashboardコンテナのセキュリティコンテキストを有効にします | false |
grafanaDashboard.job.resources.requests | ジョブGrafana Dashboardコンテナの要求されたリソース | {} |
grafanaDashboard.job.resources.limits | ジョブGrafana Dashboardコンテナのリソース制限 | {} |
wopiKeysGeneration.job.annotations | Wopi Keys Generationジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
wopiKeysGeneration.job.podAnnotations | Wopi 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.nodeSelector | Wopi Keys GenerationジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
wopiKeysGeneration.job.tolerations | Wopi Keys GenerationジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます | [] |
wopiKeysGeneration.job.initContainers | Pod内のWopi Keys Generationコンテナの前に実行されるコンテナを定義します | [] |
wopiKeysGeneration.job.image.repository | Wopi Keys GenerationジョブによるONLYOFFICE Docsイメージリポジトリ | onlyoffice/docs-utils |
wopiKeysGeneration.job.image.tag | Wopi Keys GenerationジョブによるONLYOFFICE Docsイメージタグ | 9.0.4-1 |
wopiKeysGeneration.job.image.pullPolicy | Wopi Keys GenerationジョブによるONLYOFFICE Docsイメージプルポリシー | IfNotPresent |
wopiKeysGeneration.job.containerSecurityContext.enabled | Wopi Keys Generationコンテナのセキュリティコンテキストを有効にします | false |
wopiKeysGeneration.job.resources.requests | ジョブWopi Keys Generationコンテナの要求されたリソース | {} |
wopiKeysGeneration.job.resources.limits | ジョブWopi Keys Generationコンテナのリソース制限 | {} |
wopiKeysDeletion.job.enabled | ONLYOFFICE Docsを削除する前にWopi Keys Deletionジョブの実行を有効にします。自動的に生成されたWOPIシークレットを削除します。wopi.enabled、wopi.keys.generation、wopiKeysDeletion.job.enabledがtrueに設定されている場合に実行されます | true |
wopiKeysDeletion.job.annotations | Wopi Keys Deletionジョブに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
wopiKeysDeletion.job.podAnnotations | Wopi 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.nodeSelector | Wopi Keys DeletionジョブPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
wopiKeysDeletion.job.tolerations | Wopi Keys DeletionジョブPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます | [] |
wopiKeysDeletion.job.initContainers | Pod内のWopi Keys Deletionコンテナの前に実行されるコンテナを定義します | [] |
wopiKeysDeletion.job.image.repository | Wopi Keys DeletionジョブによるONLYOFFICE Docsイメージリポジトリ | onlyoffice/docs-utils |
wopiKeysDeletion.job.image.tag | Wopi Keys DeletionジョブによるONLYOFFICE Docsイメージタグ | 9.0.4-1 |
wopiKeysDeletion.job.image.pullPolicy | Wopi Keys DeletionジョブによるONLYOFFICE Docsイメージプルポリシー | IfNotPresent |
wopiKeysDeletion.job.containerSecurityContext.enabled | Wopi Keys Deletionコンテナのセキュリティコンテキストを有効にします | false |
wopiKeysDeletion.job.resources.requests | ジョブWopi Keys Deletionコンテナの要求されたリソース | {} |
wopiKeysDeletion.job.resources.limits | ジョブWopi Keys Deletionコンテナのリソース制限 | {} |
tests.enabled | ONLYOFFICE Docsの起動テストと接続された依存関係の可用性テストに必要なリソースの作成を有効にします。これらのリソースはhelm testコマンドを実行する際に使用されます | true |
tests.annotations | テストPodに追加されるアノテーションを定義します。設定されている場合、commonAnnotationsより優先されます | {} |
tests.customPodAntiAffinity | 指定されたラベルを含む他のPodと同じノード上でテストPodのスケジューリングを禁止します | {} |
tests.podAffinity | 他のPodに対するノードによるテストPodのスケジューリングのためのPodアフィニティルールを定義します | {} |
tests.nodeAffinity | ノードによるテストPodのスケジューリングのためのノードアフィニティルールを定義します | {} |
tests.nodeSelector | テストPodの割り当てのためのノードラベル。設定されている場合、nodeSelectorより優先されます | {} |
tests.tolerations | テストPodの割り当てのためのトレランス。設定されている場合、tolerationsより優先されます | [] |
tests.initContainers | Pod内のテストコンテナの前に実行されるコンテナを定義します | [] |
tests.image.repository | テストコンテナのイメージ名 | onlyoffice/docs-utils |
tests.image.tag | テストコンテナのイメージタグ | 9.0.4-1 |
tests.image.pullPolicy | テストコンテナのイメージプルポリシー | IfNotPresent |
tests.containerSecurityContext.enabled | テストコンテナのセキュリティコンテキストを有効にする | false |
tests.resources.requests | テストコンテナのリクエストされたリソース | {} |
tests.resources.limits | テストコンテナのリソース制限 | {} |
-
*注: イメージリポジトリの値にはプレフィックス -de が指定されており、これはソリューションタイプを意味します。可能なオプション:
-de. 商用デベロッパー版-ee. 商用エンタープライズ版
このパラメーターのデフォルト値は、ONLYOFFICE 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
5. 設定とインストールの詳細
-
例のデプロイメント(オプション)
例をデプロイするには、
example.enabledパラメーターを true に設定します:$ helm install documentserver onlyoffice/docs --set example.enabled=true -
メトリクスのデプロイメント(オプション)
メトリクスをデプロイするには、
metrics.enabledを true に設定します:$ helm install documentserver onlyoffice/docs --set metrics.enabled=trueGrafana を使用してメトリクスを視覚化したい場合は、
grafana.enabledをtrueに設定します。Grafana にアクセスするために Nginx Ingress を使用したい場合は、grafana.ingress.enabledをtrueに設定します:$ helm install documentserver onlyoffice/docs --set grafana.enabled=true --set grafana.ingress.enabled=true -
ONLYOFFICE Docs の公開
-
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=80documentserverサービスの 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/で利用可能になります。 -
ONLYOFFICE Docs を Ingress 経由で公開
-
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-nginxHelm を使用して Nginx Ingress をインストールする詳細については、こちらをご覧ください。
-
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=truedocumentserveringress IP を取得するには、次のコマンドを実行します:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"その後、ONLYOFFICE Docs は
http://DOCUMENTSERVER-INGRESS-IP/で利用可能になります。ingress IP が空の場合は、
documentserveringress のホスト名を取得してみてください:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"この場合、ONLYOFFICE Docs は
http://DOCUMENTSERVER-INGRESS-HOSTNAME/で利用可能になります。 -
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.comdocumentserveringress IP を取得するには、次のコマンドを実行します:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].ip}"ingress IP が空の場合は、
documentserveringress のホスト名を取得してみてください:$ kubectl get ingress documentserver -o jsonpath="{.status.loadBalancer.ingress[*].hostname}"DNS プロバイダーを通じて、
documentserveringress IP またはホスト名をドメイン名に関連付けます。その後、ONLYOFFICE Docs は
https://your-domain-name/で利用可能になります。 -
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.enabled、ingress.ssl.enabled、ingress.letsencrypt.enabledパラメーターをtrueに設定してインストールまたはアップグレードを実行します。また、複数のドメイン名を使用する場合は、ingress.letsencrypt.email、ingress.host、またはingress.tenantsパラメーターに独自の値を設定します(例:--set "ingress.tenants={tenant1.example.com,tenant2.example.com}")。
-
Helm リポジトリを追加します:
-
Kubernetes Nginx Ingress コントローラーのインストール
-
仮想パスで ONLYOFFICE Docs を公開
この公開タイプでは、ONLYOFFICE Docs を仮想パスで公開できます。例えば、
http://your-domain-name/docs。Ingress 経由で仮想パスで 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を使用して仮想パス設定を行う場合、ingress.pathにパターン(/|$)(.*)を追加します。例えば、/docsは/docs(/|$)(.*)となります。
-
ONLYOFFICE Docs をサービス経由で公開(HTTP のみ)
-
OpenShiftでルートを介してONLYOFFICE Docsを公開する
この公開方法を使用すると、OpenShiftでルートを介してONLYOFFICE Docsを公開できます。ルートを介してONLYOFFICE Docsを公開するには、次のパラメーターを使用します:
openshift.route.enabled、openshift.route.host、openshift.route.path。$ helm install documentserver onlyoffice/docs --set openshift.route.enabled=true,openshift.route.host=your-domain-name,openshift.route.path=/docstls終端のためには、OpenShiftのウェブコンソールを介して手動で証明書をルートに追加します。
6. ONLYOFFICE Docsのスケーリング(オプション)
-
水平Podオートスケーリング
オートスケーリングを有効にすると、
docserviceおよびconverterデプロイメントのレプリカ数が、値とメトリックの種類に基づいて自動的に計算されます。リソースメトリックの場合、API metrics.k8s.ioが登録されている必要があります。これは通常、metrics-serverによって提供され、クラスタアドオンとして起動できます。
ターゲット利用率値(
target.type==Utilization)を使用するには、デプロイメントでresources.requestsの値が指定されている必要があります。水平Podオートスケーリングの詳細については、こちらをご覧ください。
docserviceデプロイメントのHPAを有効にするには、docservice.autoscaling.enabled=trueパラメーターを指定します。この場合、docservice.replicasパラメーターは無視され、レプリカ数はHPAによって制御されます。同様に、
converterデプロイメントのHPAを有効にするには、converter.autoscaling.enabled=trueパラメーターを指定します。この場合、converter.replicasパラメーターは無視され、レプリカ数はHPAによって制御されます。autoscaling.enabledパラメーターが有効になっている場合、デフォルトでオートスケーリングはCPU利用率の平均パーセンテージに基づいてレプリカ数を調整します。他の設定可能なオートスケーリングパラメーターについては、パラメーター表をご覧ください。 -
手動スケーリング
docserviceおよびconverterデプロイメントは、デフォルトでそれぞれ2つのPodで構成されています。docserviceデプロイメントをスケールするには、次のコマンドを使用します:$ kubectl scale -n default deployment docservice --replicas=POD_COUNTここで、POD_COUNTは
docserviceの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
ONLYOFFICE Docsのバージョン以外のパラメーターを更新したい場合は、hooksなしでhelm upgradeコマンドを実行します。例えば:
$ helm upgrade documentserver onlyoffice/docs --set jwt.enabled=false --no-hooks
更新をロールバックするには、次のコマンドを実行します:
$ helm rollback documentserver
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は新しいライセンスを自動的に読み込みます。
$ 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>
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.nameとexistingConfigmap.tblRemove.keyName - データベーステーブル作成用スクリプトには
existingConfigmap.tblCreate.nameとexistingConfigmap.tblCreate.keyName
次に、helm install|upgrade|rollback|deleteコマンドを実行する際に、パラメータprivateCluster=trueを設定します
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を使用してメトリクスを視覚化する(オプション)
1. Grafanaのデプロイ
-
既製のダッシュボードをインストールせずにGrafanaをデプロイする
既製のダッシュボードをインストールしてGrafanaをデプロイしたい場合は、このステップをスキップしてください。
クラスターにGrafanaをインストールするには、次のコマンドを実行します:
$ helm install grafana --version 12.1.8 bitnami/grafana \ --set service.ports.grafana=80 \ --set config.useGrafanaIniFile=true \ --set config.grafanaIniConfigMap=grafana-ini \ --set datasources.secretName=grafana-datasource \ --set resourcesPreset=none \ --set image.repository=bitnamilegacy/grafana \ --set image.tag=12.1.1-debian-12-r1 \ --set global.security.allowInsecureImages=true -
既製のダッシュボードをインストールしてGrafanaをデプロイする
-
既製のGrafanaダッシュボードをインストールする
既製のGrafanaダッシュボードをインストールするには、
grafana.enabledとgrafana.dashboard.enabledパラメータをtrueに設定します。ONLYOFFICE 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がすでに完了していることが前提です)。 -
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をインストールする詳細についてはこちらをご覧ください。
-
既製のGrafanaダッシュボードをインストールする
2. Ingressを介してGrafanaにアクセスする
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から受信したメトリクスを表示する追加されたダッシュボードを見ることができます。