---
schema_version: "1"
id: 5de3773468cafafb0a893aa8998dd5f2cb595f57512dc526839465c6892b8dc0
title: Helm チャートの展開
collection: tableau
version: next
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/next/ja-jp/server/server-helm-deploy.md
canonical_url: https://help.tableau.com/v0.0/server/ja-jp/server-helm-deploy.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 3ccc68d7522de5136ff528166bbbf77aa47a2baab3da6ce3652ecc3de1ec12fd
description: "重要: このドキュメントは、Helm と Helm チャートに関する知識があることを前提としており、詳細で規範的な例を提供するものではありません。これは、Tableau Server、Helm、Helm チャートのすべてに精通しているお客様向けに設計されています。"
---
[メイン コンテンツに進む](#main-content)

# Tableau Server Helm チャート - 展開

**重要**: このドキュメントは、Helm と Helm チャートに関する知識があることを前提としており、詳細で規範的な例を提供するものではありません。これは、Tableau Server、Helm、Helm チャートのすべてに精通しているお客様向けに設計されています。

このトピックでは、Helm チャートを使用して Kubernetes にTableau Server を展開する大まかなステップを説明します。

## 前提条件

開始する前に、前提条件を満たしていることを確認してください。詳細については、「[Tableau Server Helm チャート - 前提条件](https://help.tableau.com/v0.0/server/ja-jp/server-helm-prerequisites.htm)」を参照してください。

### Helm チャートのダウンロード

Helm チャートは、コンテナ内の Tableau Server のセットアップ ツール (`tableau-server-container-setup-tool-<version>.tar.gz`) の一部として提供され、[Tableau Server のダウンロード](http://tableau.com/ja-jp/support/releases/server/latest) ページからダウンロードできます。

抽出後、必要な Helm チャート ファイルは `helm/tableau` ディレクトリに格納されます。

## Helm チャートを使用した Tableau Server の展開の概要

**重要**: これは、Helm チャートを使用した Tableau Server の展開の基本的な概要です。完全なステップを説明するものではありません。Helm と Helm チャートの知識があることを前提としています。

開始する前に、Helm チャートを使用して Tableau Server を展開するための前提条件を満たしていることを確認してください。詳細については、「[Tableau Server Helm チャート - 前提条件](https://help.tableau.com/v0.0/server/ja-jp/server-helm-prerequisites.htm)」を参照してください。

### ライセンス キーを values.yaml に追加する

`values.yaml` を編集し、ライセンス キーを設定します。

### シングルノードの Tableau Server の展開

プロンプトで次のコマンドを実行して、Tableau Server のシングルノード インスタンスを展開します (たとえば、`tableau` または `default` のように、リリース名前空間を `<namespace>` に置き換えてください)。

helm install tableau-server ./helm/tableau-server \\  
  -n <namespace> \\  
  --create-namespace \\
  -f ./helm/tableau-server/values-single.yaml

### マルチノードの Tableau Server の展開

上記と同じ名前空間規則を使用して、プロンプトで次のコマンドを実行し、Server のマルチノード インスタンスを展開します。

helm install tableau-server ./helm/tableau-server \\  
\-n <namespace> \\  
\--create-namespace \\
-f ./helm/tableau-server/values-multinode.yaml

## EKS マルチノードのランブック (名前空間 + 静的 bootstrap PV)

このセクションでは、EKS の操作の順序 (専用名前空間、EFS CSI アドオン、ノード ロール上の IAM、静的 bootstrap PV、Helm) について説明します。

1. 専用の名前空間を作成します。
    
    これは、bootstrap PV の `claimFef.namespace` と一致する必要があります。この例では、`tableau`.を使用します。
    
    kubectl create namespace tableau-server
    kubectl get namespace tableau
2. EFS CSI アドオンが存在していることを確認します。
    
    アドオンが見つからない場合は、作成してステータスが `ACTIVE` になるまで待機します。
    
    kubectl get csidriver efs.csi.aws.com
    aws eks describe-addon \\
      --cluster-name <cluster-name> \\  
      --addon-name aws-efs-csi-driver \\
      --region <region> \\
      --query 'addon.status'
3. Storageclass を確認します。
    
    `efs-bootstrap` Storageclass — まだ存在していない場合は適用します。詳細については、「[Amazon Elastic Kubernetes Service (EKS) の前提条件](https://help.tableau.com/v0.0/server/ja-jp/server-helm-prerequisites.htm#EKS-Prereq-storageclass)」を参照してください。
    
    kubectl get csidriver efs.csi.aws.com
    aws eks describe-addon \\
      --cluster-name <cluster-name> \\  
      --addon-name aws-efs-csi-driver \\
      --region <region> \\
      --query 'addon.status'
4. 静的 bootstrap PVを確認します。
    
    `claimRef` は、Helm チャートで作成されるものと同じ名前空間と PVC 名を参照する必要があります (`tableau-server-bootstrap`)。`fs-...` を EFS ファイルシステム ID に置き換えます。
    
    cat > /tmp/tableau-bootstrap-pv.yaml <<'EOF'
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: tableau-bootstrap-pv
    spec:
      capacity:
        storage: 1Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
    persistentVolumeReclaimPolicy: Retain
    storageClassName: efs-bootstrap
    claimRef:
      namespace: tableau
      name: tableau-server-bootstrap
    csi:
      driver: efs.csi.aws.com
      volumeHandle: <fs-xxxxxxxxxxxxxxxxx>
    EOF
    kubectl apply -f /tmp/tableau-bootstrap-pv.yaml
    kubectl get pv tableau-bootstrap-pv
5. ノード インスタンス ロール上の IAM。
    
    EFS クライアントと EC2 読み取り専用ポリシーをアタッチします。ノード グループからの `<your-node-instance-role>` を解決するには、「[Amazon Elastic Kubernetes Service (EKS) の前提条件](https://help.tableau.com/v0.0/server/ja-jp/server-helm-prerequisites.htm#EKS-Prereq-storageclass)」を参照してください。
    
    `efs-bootstrap` Storageclass — まだ存在していない場合は適用します。詳細については、「[Amazon Elastic Kubernetes Service (EKS) の前提条件](https://help.tableau.com/v0.0/server/ja-jp/server-helm-prerequisites.htm#EKS-Prereq-storageclass)」を参照してください。
    
    kubectl get csidriver efs.csi.aws.com
    aws eks describe-addon \\
      --cluster-name <cluster-name> \\  
      --addon-name aws-efs-csi-driver \\
      --region <region> \\
      --query 'addon.status'
6. 値
    
    `values-multinode.yaml` (またはオーバーレイ) で、手動静的 PV モードを設定します
    
    persistence:
      bootstrap:  
        createPV: false  
        volumeName: tableau-bootstrap-pv  
        storageClass: efs-bootstrap
7. `image.repository`、`image.tag`、およびシークレット/ライセンスが必要に応じて設定されていることを確認します。
8. Helm チャートをインストールします
    
    チャートを PV `claimRef` と同じ名前空間にインストールします。
    
    helm install tableau-server ./helm/tableau-server \\
      -n tableau \\  
      -f ./helm/tableau-server/values-multinode.yaml
9. ストレージとポッドを確認します。
    
    kubectl get pv,pvc -n tableau
    kubectl get pods -n tableau -w
10. データ PVC ステータス
    
    EBS ボリュームがアタッチされるまで、データ PVC に `Pending` が短時間表示される場合があります。すべての PVC が `Bound`、`Running` の順に移行し、最終的に `READY 1/1` になる必要があります。
11. トポロジ (オプション)
    
    インストール後のフックが無効になっている場合は、ノード `clustercontroller` を設定して、保留中の変更を適用する必要があります (このドキュメントで後述されている「インストール後のトポロジの自動化 (フック)」を参照してください)。複数の Tableau ノードがある場合、`tsm pending-changes apply` コマンドを実行すると、インデックス作成/検索サーバーの分散または調整サービス アンサンブルに関する警告が表示されることがあります。「[インデックス作成/検索サーバー](https://help.tableau.com/v0.0/server/ja-jp/server_process_index-and-search.htm)」および「[Tableau Server 調整サービス](https://help.tableau.com/v0.0/server/ja-jp/server_process_coordination.htm)」に記載されている説明に従って、これらの警告に対処してください。

### カスタム インストール

1. 値のカスタマイズ
    
    cp ./helm/tableau-server/values.yaml   
    ./helm/tableau-server/my-values.yaml  
    \# Edit ./helm/tableau-server/my-values.yaml with your configuration
2. カスタム値を使用したインストール
    
    helm install tableau-server ./helm/tableau-server -f ./helm/tableau-server/my-values.yaml

## 構成

### 展開モード

#### シングルノード展開

シングルノード展開では、Tableau Server をモノリシック コンテナとして実行します。

`values-single.yaml` を使用するか、以下のように設定します。

deploymentMode: "single"  
primary:  
  replicaCount: 1  
worker:  
  replicaCount: 0

#### マルチノード展開

マルチノード展開では、1 つのプライマリと 1 つ以上のワーカーを実行します。`worker.replicaCount` を使用してワーカー数を設定します — 1、2、またはクラスターの容量と Tableau のトポロジで許容されるそれ以上の値を使用します。チャートは `replicaCount: N` に対して `tableau-server-worker-0 … tableau-server-worker-(N-1)` を作成します。

`values-multinode.yaml` (既定の例では 2 つのワーカーを使用) を使用するか、以下のように明示的に設定します。

deploymentMode: "multinode"  
primary:  
  replicaCount: 1  
worker:  
  replicaCount: 3    # example: three workers

トポロジ アライメント: `values-multinode.yaml` にはサンプル `config.configJson` トポロジ (`node1`、`node2`、`node3` などのノード ID) が付属しています。`worker.replicaCount` を変更したり、サービスを再配置したりする場合は、TSM ノードの数とロールが展開と一致するように、そのトポロジ (および関連するTableau プロセスの割り当て) を更新します。クラスタリングとプロセスのレイアウトについては、Tableau Server のヘルプを参照してください。

### 主要な構成オプション

#### イメージの構成

image:  
  repository: tableau\_server\_image  
  tag: "latest"  
  pullPolicy: IfNotPresent  
  pullSecrets: \[\]

#### ライセンスとシークレット

secrets:
  licenseKey: "YOUR-LICENSE-KEY"  
  tsmRemotePassword: "password"  
  tableauUsername: "admin"  
  tableauPassword: "password"

または、環境変数を使用してこれらを設定することもできます。

env:  
  LICENSE\_KEY: "YOUR-LICENSE-KEY"  
  TSM\_REMOTE\_PASSWORD: "password"  
  TABLEAU\_USERNAME: "admin"  
  TABLEAU\_PASSWORD: "password"

別のファイル (例: `secrets.yaml`) を使用して、`-f` スイッチを使って渡すことをお勧めします。

`secrets.yaml`:

secrets:  
  licenseKey: "YOUR-LICENSE-KEY"  
  tsmRemotePassword: "YOUR-TSM-PASSWORD"  
  tableauUsername: "YOUR-ADMIN-USER"  
  tableauPassword: "YOUR-ADMIN-PASSWORD"

`secrets.yaml` を使用したインストール/アップグレードの例:

helm upgrade --install tableau-server ./helm/tableau-server \\  
  -n default \\  
  -f ./helm/tableau-server/values-multinode.yaml \\  
  -f ./helm/tableau-server/secrets.yaml

**注:** 既存の Kubernetes シークレット (例: `ecrets.existingSecret`) の参照は現在サポートされていません。唯一サポートされている方法は、別のシークレット値ファイルを使用してチャート値を指定することです。

#### 外部 PostgreSQL リポジトリ

既定では、Helm チャートは、専用の値キーを使用して外部リポジトリを有効にしません。

外部リポジトリを有効にするには、次のステップを実行することをお勧めします。

1. チャートを展開し、プライマリが正常であることを確認します。
2. プライマリ ポッドから Tableau `tsm external repository` コマンドを実行します。
3. 保留中の変更を適用します。

ワークフローの例 (コマンドの検出と適用):

\# Discover command syntax for your Tableau version
kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm topology external-services repository enable --help'  
\# After enabling external repository with Tableau-supported args/options:  
kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm pending-changes apply -iw --ignore-prompt'  
kubectl exec -n default tableau-server-primary-0 -- sh -lc 'tsm status -v'

注:

- 外部リポジトリの構成は、Tableau のバージョンによって異なります (SSL モード、フェールオーバー オプション、認証資格情報フィールド)。詳細については、「[Tableau Server 外部リポジトリ](https://help.tableau.com/v0.0/server/ja-jp/server_external_repo.htm)」と「[tsm topology](https://help.tableau.com/v0.0/server/ja-jp/cli_topology_tsm.htm)」を参照してください。
- お客様の環境への展開では、データベースの認証資格情報を Kubernetes シークレットに保存し、シェル履歴にプレーン テキストを含めないようにします。

#### 永続ストレージ

persistence:  
  enabled: true  
  storageClass: "standard"  
  accessMode: ReadWriteOnce  
  size: 100Gi  
  
  # Bootstrap volume (required for multi-node)  
  bootstrap:  
    enabled: true  
    storageClass: "standard"  
    accessMode: ReadWriteMany  
    size: 1Gi  
    createPV: false

静的な EFS CSI (例: `mounttargetip` を指定) を使用するクラスターの場合、Helm はbootstrap PV と PVC の両方を管理できます。

persistence:  
  bootstrap:  
    enabled: true  
    storageClass: "efs-bootstrap"  
    accessMode: ReadWriteMany  
    size: 1Gi  
    createPV: true  
    permissionsFix:  
      enabled: true  
    pv:  
      name: "tableau-bootstrap-pv"  
      csi:  
        driver: efs.csi.aws.com  
        volumeHandle: "fs-xxxxxxxx"  
        volumeAttributes:  
          mounttargetip: "10.x.x.x"

`permissionsFix.enabled` は、Tableauプロセス (UID/GID 999:998) が共有 EFS マウント (既定値: `root:root`) に `bootstrap.json` を書き込めるように、init コンテナを追加します　`chown/chmods /docker/config/bootstrap`。

`createPV: true` の場合、チャートは値 (`tableau-bootstrap-pv` など) から bootstrap PV を作成し、それに `tableau-server-bootstrap` PVC をバインドします。

bootstrap PV を手動で管理する場合は、最初に `tableau-bootstrap-pv` を作成してから、`createPV: false` と `volumeName: tableau-bootstrap-pv:` を指定して Helm をインストールします。

apiVersion: v1
kind: PersistentVolume
metadata:
  name: tableau-bootstrap-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-bootstrap
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-xxxxxxxx
    volumeAttributes:
      mounttargetip: 10.x.x.x

kubectl apply -f tableau-bootstrap-pv.yaml
kubectl get pv tableau-bootstrap-pv

#### リソースの制限

primary:
  resources:
    limits:
      cpu: "4"
      memory: "8Gi"
    requests:
      cpu: "2"
      memory: "4Gi"

worker:
  resources:
    limits:
      cpu: "4"
      memory: "8Gi"
    requests:
      cpu: "2"
      memory: "4Gi"

#### サービス構成

service:
  primary:
    type: ClusterIP  # or NodePort, LoadBalancer
    ports:
      http: 80
      https: 8080
      tsm: 8850

#### Ingress

ingress:
  enabled: true
  className: "nginx"
  hosts:
    - host: tableau.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: tableau-tls
      hosts:
        - tableau.example.com

#### Ingress セットアップのランブック (例: NGINX Ingress コントローラー)

1. クラスターに Ingress コントローラーをインストールします (チャート ingress を有効にする前に行う必要があります)。
2. 値ファイルに Ingress 値を設定します。
    
    ingress:  
      enabled: true  
      className: "nginx"  
      annotations:  
        nginx.ingress.kubernetes.io/proxy-body-size: "64m"  
        nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"  
        nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"  
      hosts:  
        - host: tableau.example.com  
          paths:  
            - path: /  
              pathType: Prefix  
      tls:  
        - secretName: tableau-tls  
          hosts:  
            - tableau.example.com
3. Ingress/ロード バランサーのエンドポイントに tableau.example.com を指す DNS レコードを作成します。
4. リリース名前空間で TLS シークレットを作成 (または cert-manager を使用) します。
5. 展開/アップグレード チャートと Ingress の検証:
    
    helm upgrade --install tableau-server ./helm/tableau-server -n default -f ./helm/tableau-server/values.yaml  
    kubectl get ingress -n default  
    kubectl describe ingress tableau-server

詳細については、以下を参照してください。

- [Kubernetes Ingress の概念](https://kubernetes.io/docs/concepts/services-networking/ingress/)
- [ingress-nginx 導入ガイド](https://kubernetes.github.io/ingress-nginx/deploy/)
- [Cert-manager を開始する](https://cert-manager.io/docs/tutorials/getting-started-aks-letsencrypt/)

#### ヘルス チェック

このチャートでは、startup プローブ、liveness プローブ、および readiness プローブがサポートされています。startup プローブでは、liveness/readiness を実行する前に、初回初期化 (failureThreshold: 200 × periodSeconds など) を長時間実行することができます。

healthChecks:
  startup:
    enabled: true
    initialDelaySeconds: 300
    periodSeconds: 15
    timeoutSeconds: 30
    failureThreshold: 200
  liveness:
    enabled: true
    initialDelaySeconds: 300
    periodSeconds: 30
    timeoutSeconds: 10
    failureThreshold: 3
  readiness:
    enabled: true
    initialDelaySeconds: 300
    periodSeconds: 10
    timeoutSeconds: 5
    failureThreshold: 3

マルチノード ワーカー ポッドの場合、ワーカーが限定されたプロセス セット (たとえば、管理エージェント + クラスター コントローラーのみ) を実行するときのプローブの誤検知を防ぐため、チャートは既定で `worker.healthChecks.enabled: false` に設定されます。

### 使用方法

#### Tableau Server にアクセスする

インストール後、サービス構成に基づいて Tableau Server にアクセスします。

- **ClusterIP**: ポート フォワーディングまたは Ingress を使用する
- **NodePort**: `<node-ip>:<node-port>` 経由でアクセスする
- **LoadBalancer**:指定された外部 IP 経由でアクセスする

#### TSM コマンドを使用する

\# Get pod name
POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}')

# Run tabcmd
kubectl exec -it $POD\_NAME -- tsm status
kubectl exec -it $POD\_NAME -- tsm configuration get

#### tabcmd を使用する

\# Get pod name
POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}')

# Run tabcmd
kubectl exec -it $POD\_NAME -- tabcmd login -u admin -p password
kubectl exec -it $POD\_NAME -- tabcmd sites

#### Tableau Server ログの表示

\# Primary node logs
kubectl logs -l app.kubernetes.io/component=primary -f

# Worker node logs (multi-node)
kubectl logs -l app.kubernetes.io/component=worker -f

# All logs
kubectl logs -l app.kubernetes.io/instance=tableau-server -f

#### シェルへのアクセス

\# Get pod name
POD\_NAME=$(kubectl get pods -l app.kubernetes.io/component=primary -o jsonpath='{.items\[0\].metadata.name}')

# Open shell
kubectl exec -it $POD\_NAME -- /bin/bash

### アップグレード

#### Tableau Server Helm チャートをアップグレードする

helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/values.yaml

#### 新しい値を使用してアップグレードする

helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/new-values.yaml

### インストール後のトポロジの自動化 (フック)

マルチノード インストールの場合、このチャートは次のようなインストール後/アップグレード後のフック ジョブを実行できます。

- ワーカー ノードが TSM に登録されるまで待機します
- ワーカー `clustercontroller` プロセスの割り当てを設定します
- 変更が保留中の場合は `tsm pending-changes apply -iw --ignore-prompt` を実行します

構成:

hooks:
  autoApplyWorkerTopology:
    enabled: true
    kubectlImage: "bitnami/kubectl:latest"
    timeoutSeconds: 3600

既定:

- `values.yaml` で無効になっています
- `values-multinode.yaml`で、`hooks.autoApplyWorkerTopology.enabled` を確認します (リリースに応じて `true` または `false` に設定されていますが、ハンズオフ ワーカーの `clustercontroller` 設定で有効にできます)

以下のフックの実行を検証します。

kubectl get jobs -n default
kubectl get pods -n default -l job-name=tableau-server-hook-topology
kubectl logs -n default job/tableau-server-hook-topology

フックが無効になっているか失敗した場合の手動フォールバック — ワーカー TSMノードごとに `tsm topology set-process` を実行します (通常、ワーカーが N 個ある場合は node2 から node (1+N) まで)。`tsm topology list-nodes -v` を使用して ID を確認します。

kubectl exec -n default tableau-server-primary-0 -- sh -lc '
tsm topology set-process -n node2 -pr clustercontroller -c 1
tsm topology set-process -n node3 -pr clustercontroller -c 1
# Add one line per additional worker node, e.g. for four workers:
# tsm topology set-process -n node4 -pr clustercontroller -c 1
# tsm topology set-process -n node5 -pr clustercontroller -c 1
tsm pending-changes apply -iw --ignore-prompt
tsm topology list-nodes -v

tsm status -v

**注**: `tsm pending-changes apply` に `-iw` を付けてください。この環境では、`-ig` オプションは無効です。

### アンインストール

helm uninstall tableau-server

**警告**: これにより、永続ボリュームを含むすべてのリソースが削除されます。アンインストールする前に、必ずデータをバックアップしてください。

#### 検証のステップ

リリース前またはチャートの変更時に、次のコマンドを実行します。

1. リント:
    
    helm lint helm/tableau-server -f helm/tableau-server/values-single.yaml  
    helm lint helm/tableau-server -f helm/tableau-server/values-multinode.yaml
2. テンプレート (ドライラン):
    
    helm template tableau-server helm/tableau-server -f helm/tableau-server/values-single.yaml  
    helm template tableau-server helm/tableau-server -f helm/tableau-server/values-multinode.yaml
3. インストール テスト (オプション):
    
    1. テスト名前空間で、values-single または values-multinode を使用して `helm install` を実行します。
    2. `kubectl rollout status` (StatefulSetの場合、ポッドが準備完了するまで待機する) と基本的なスモーク チェック (例: サービスへの `tsm status` または HTTP) を実行します。

詳細なトラブルシューティングについては、「[Tableau Server Helm チャート - トラブルシューティング](https://help.tableau.com/v0.0/server/ja-jp/server-helm-troubleshooting.htm)」を参照してください。

## その他のリソース

- [Tableau Server ドキュメント](https://help.tableau.com/current/server-linux/ja-jp/)
- [Helm ドキュメント](https://helm.sh/docs/)
- [Helm チャートのアップグレード](https://helm.sh/docs/helm/helm_upgrade/)