---
schema_version: "1"
id: 7533c2138e1aba1ec7b24555effc835611587f706adb4bdd3fce41bffff32cff
title: Helm Chart 必要條件
collection: tableau
version: next
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/next/zh-tw/server/server-helm-prerequisites.md
canonical_url: https://help.tableau.com/v0.0/server/zh-tw/server-helm-prerequisites.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1bf2c8dea7291e2d7f63d5e023e7eb67b4bed7c77a97e617e1d1c83457304cac
description: 重要提示：本文件假設您瞭解 Helm 和 Helm Chart，並且不嘗試提供詳細的規範性範例。它是為熟悉 Tableau Server 以及 Helm 和 Helm Chart的客戶設計的。
---
[跳至主要內容](#main-content)

# Tableau Server Helm Chart - 必要條件

**重要提示**：本文件假設您瞭解 Helm 和 Helm Chart，並且不嘗試提供詳細的規範性範例。它是為熟悉 Tableau Server 以及 Helm 和 Helm Chart的客戶設計的。

本主題會介紹使用 Helm Chart 部署 Tableau Server 所需的必要條件。

## Helm Chart 下載和分發

Helm Chart 會作為容器中的 Tableau Server 設定工具 (`tableau-server-container-setup-tool-<version>.tar.gz`) 中的一部分提供，並可從 [Tableau Server 下載](http://tableau.com/zh-tw/support/releases/server/latest)頁面下載。

擷取後，所需的 Helm Chart 檔案位於 `helm/tableau` 目錄中。

## 所需工具

- 已設定為存取 Kubernetes 叢集的 `kubectl` CLI
- `helm` CLI 版本 3.x 或更高版本
- 可存取 Kubernetes 叢集 (1.19+)

## 叢集要求

- 至少一個節點，具有 16GB RAM 和 4 個 CPU 核心（建議 8 個內核）。
- 已設定 StorageClass，以進行動態 PersistentVolume 佈建。
- 能夠建立負載平衡器服務或輸入資源。

## 所需資訊

在開始之前，請確保您具有以下內容：

- Tableau Server **產品金鑰**
- 初始帳戶的 **TSM 管理員 `username` 和** `**password**`
- 用於存取的 Tableau Server **主機名稱**

## Amazon Elastic Kubernetes Service (EKS) 必要條件

### `efs-bootstrap` StorageClass

預設情況下，`efs-bootstrap` 不會在 EKS 中建立。對於多節點啟動程序共用，請在安裝 Helm 之前建立。

對於多節點部署，啟動程序儲存必須可佈建，然後 Pod 才能進行排程。若 `efs-bootstrap` StorageClass 不會動態佈建 EFS 磁碟區，您必須：

- 預先建立靜態啟動程序 PV，並將其繫結至 `tableau-server-bootstrap`
    
    或
- 設定 `persistence.bootstrap.createPV: true`，並提供 `valid persistence.bootstrap.pv.csi.volumeHandle`（實際 EFS ID、fs-...）。

若未執行此操作，Pod 會保持在「擱置」狀態，且 PVC 未繫結。

1. 確保叢集中已安裝 EFS CSI 驅動程式。
    
    kubectl get csidriver efs.csi.aws.com
    
    即使未安裝 EKS 管理的附加元件，`CSIDriver` 物件也可能存在。明確確認附加元件。
    
    若收到 `ResourceNotFoundException` 錯誤（無附加元件），或 Pod 之後失敗，並出現掛接錯誤（如 `driver name efs.csi.aws.com not found in the list of registered CSI drivers`），請安裝 EKS 附加元件並等待狀態變為 ACTIVE，然後驗證節點外掛程式 Pod。
    
    這是必要的，因為多節點啟動程序使用 EFS 支援的磁碟區 (ReadWriteMany)。若其他節點上沒有 EFS CSI 節點外掛程式，啟動程序 PVC 可以進行繫結，但掛接會失敗，Pod 會保持 `Init/Pending` 狀態。
    
    若 EFS 掛接失敗，並出現：
    
    is not authorized to perform: elasticfilesystem:DescribeMountTargets
    
    或
    
    Failed to resolve "fs-....efs.<region>.amazonaws.com"
    
    請使用以下其中一種補救措施：
    
    - **EKS 節點角色上的 IAM 修正**（慣用）：授與 EFS 和 EC2 讀取權限，以便掛接目標和 AZ 探索運作。從節點群組中解析節點執行個體角色名稱：
        
        aws eks list-nodegroups --cluster-name <cluster-name>  
        aws eks describe-nodegroup \\  
        \--cluster-name <cluster-name> \\  
        \--nodegroup-name <nodegroup-name> \\  
        \--query "nodegroup.nodeRole" \\  
        \--output text
    - 在 `attach-role-policy` 中**使用 IAM \*\*角色名稱\*\*** （ARN 的最後區段）：
        
        aws iam attach-role-policy \\  
        \--role-name <your-node-instance-role> \\  
        \--policy-arn arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadWriteAccess
        
        aws iam attach-role-policy \\  
        \--role-name <your-node-instance-role> \\  
        \--policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
        
        - 涉及的典型權限：
            
            - elasticfilesystem:DescribeMountTargets, 
                elasticfilesystem:DescribeFileSystems
            - `ec2:DescribeAvailabilityZones` （`DescribeAvailabilityZones` 出現在掛接錯誤中時通常需要此權限）
    - **明確掛接目標 IP**：環境中 DNS/探索受到限制時，在啟動程序 PV CSI 磁碟區屬性上設定 `mounttargetip`。
        
        - Helm 值（`createPV: true` 路徑）：
            
            persistence:  
              bootstrap:  
                pv:  
                  csi:  
                    volumeAttributes:  
            mounttargetip: "10.x.x.x"
        - 手動 PV 路徑
            
            spec:  
              csi:  
                driver: efs.csi.aws.com  
                volumeHandle: fs-xxxxxxxx  
                volumeAttributes:  
                  mounttargetip: 10.x.x.x
2. 建立 `efs-bootstrap` StorageClass（範例）：
    
    apiVersion: storage.k8s.io/v1  
    kind: StorageClass
    metadata:  
      name: efs-bootstrap  
    provisioner: efs.csi.aws.com  
    reclaimPolicy: Retain  
    volumeBindingMode: Immediate  
    allowVolumeExpansion: true
3. 選擇一個啟動程序佈建路徑（必需）：

- **動態 EFS 佈建路徑**：
    
    使用為存取點設定的 EFS CSI 動態 StorageClass（例如 `provisioningMode: efs-ap, fileSystemId` 和根據平台標準的 permissions/basePath 參數）。
- **靜態 PV 路徑**：
    
    使用 `csi.driver: efs.csi.aws.com` 和 `csi.volumeHandle: fs-...` 手動建立 `tableau-bootstrap-pv`
    
    然後設定：
    
    - `persistence.bootstrap.createPV: false`
    - `persistence.bootstrap.volumeName: tableau-bootstrap-pv`
- **Helm 建立的靜態 PV 路徑**：
    
    設定：
    
    - `persistence.bootstrap.createPV: true`
    - `persistence.bootstrap.pv.csi.volumeHandle: fs-...`

## 非 EKS 必要條件

### `ReadWriteMany` StorageClass

對於未託管在 EKS 上的叢集（或若未使用 EFS），多節點啟動程序共用的關鍵要求是為啟動程序磁碟區提供一個支援 `ReadWriteMany (RWX)` 存取模式的 StorageClass。這是必需的，因為啟動程序儲存必須可佈建，然後 Pod 才能排程。

適用於 Kubernetes 的常見自我託管 RWX 儲存後端包括：

- NFS（最通用，最容易進行測試）
- CephFS
- Longhorn（若已安裝）
- GlusterFS
- NetApp/其他企業儲存

您必須確保已安裝適用於所選後端的相應 CSI 驅動程式。

若要將 Tableau Server 設定為使用自訂 RWX StorageClass，請更新 Helm 值（例如， `values-multinode.yaml`），以將 `persistence.bootstrap.storageClass` 設定為 StorageClass 的名稱：

persistence:
  # ... other persistence settings ...

  # Bootstrap volume (required for multi-node)
  bootstrap:
    enabled: true
    storageClass: "my-rwx-storage" # <--- Replace with your StorageClass name
    accessMode: ReadWriteMany
    size: 1Gi
    createPV: false

## 其他資源

- [Tableau Server Helm Chart - 概觀](https://help.tableau.com/v0.0/server/zh-tw/server-in-container_helm-chart.htm)
- [Tableau Server Helm Chart - 部署](https://help.tableau.com/v0.0/server/zh-tw/server-helm-deploy.htm)
- [Tableau Server Helm Chart - 疑難排解](https://help.tableau.com/v0.0/server/zh-tw/server-helm-troubleshooting.htm)
- [Helm 文件](https://helm.sh/docs/)
- [Tableau Server 文件](https://help.tableau.com/current/server-linux/zh-tw/)