容器中的 Tableau Server

簡介

容器中的 Tableau Server 是 Tableau 的第一款容器型伺服器產品。「容器」中的 Tableau Server 是一種在 Linux Docker 容器內執行的多合一 Tableau Server 執行個體。換句話說,容器中的 Tableau Server 映像是指執行整個自封式 Tableau Server 應用程式的 Docker 映像。容器中的 Tableau Server 是我們支援在容器型環境中執行 Tableau Server 的眾多步驟中的第一步。

要理解容器中的 Tableau Server 概念,最簡單的方法是將其視為已預先安裝 Tableau Server 的 VM。該映像基於 UBI 8 映像(適用於版本 2022.1 及更早版本的 CentOS 7),並在容器內執行 supervisord(而不是 systemd)。容器啟動 supervisord 時,其將立即嘗試初始化及啟動 Tableau Server。此處的大部分文件旨在描述如何提供設定和善用自動化作業,以便您可以在 Docker 環境中執行 Tableau Server。

容器中的 Tableau Server 映像設定工具可協助您建立和自訂容器映像,以包含自訂套件和成品。該工具的主要功能之一是組建容器映像,並安裝自訂資料連接器。

容器中的 Tableau Server 限制

  • 容器中的 Tableau Server 僅支援使用伺服器 ATR 啟用授權。2023.1 及更高版本支援使用伺服器 ATR 進行離線啟用。此功能在容器中可用,但需要額外的步驟和核准。若您需要在實體隔離斷網或離線環境中執行容器中的 Tableau Server,請聯絡您的客戶代表以取得更多資訊。
  • 容器中的 Tableau Server 目前不支援 Resource Monitoring Tool (RMT) 代理程式。
  • 容器中的 Tableau Server 不支援 Kerberos。

要在概念證明情境中快速測試容器中的 Tableau Server 映像,請參閱容器中的 Tableau Server - 快速入門

容器中的 Tableau Server 的基本工作流程

以下為使用容器中的 Tableau Server 的基本工作流程。可以在連結中找到每個步驟的詳細說明。

  1. 使用設定工具建立容器中的 Tableau Server 的自訂映像。請參閱容器中的 Tableau Server - 使用設定工具
  2. 執行建立的映像,以啟動和使用容器中的 Tableau Server。請參閱容器中的 Tableau Server - 使用映像

Tableau Server 功能注意事項

某些 Tableau Server 功能在容器中的工作方式有所不同。本節會介紹在容器環境中具有特殊或不同注意事項的特定功能。

Active Directory

設定 AD 網域控制器

若計劃使用 Active Directory 作為 Tableau Server 網頁和站點的身分存放區,則需要考慮額外的注意事項。在 Linux 環境中執行的 Tableau Server 會透過檢查其 IP 子網路來動態確定要與之通訊的 AD 網域控制器。可以為容器指派任意 IP 位址,在這種情況下,Tableau Server 不一定能夠使用其 IP 位址來查找合適的網域控制器。因此,可能需要設定特定的網域控制器/主機名稱,以便 Tableau Server 與之通訊。為此,請執行以下步驟:

  1. 確定希望 Tableau Server 使用哪個網域控制器並取得主機名稱。
  2. 使用標準 Tableau Server 管理設定選項將組態金鑰 wgserver.domain.ldap.hostname 設定為主機名稱:

    • 在 json 組態檔 CONFIG_FILE 中設定值。
    • 使用 TSM 設定命令

      tsm configuration set -k wgserver.domain.ldap.hostname -v <hostname>

將 AD 憑證匯入 Tableau Server Keystore

預設情況下,只要使用簡單繫結,容器中的 Tableau Server 就會透過 StartTLS 與 AD 通訊。所以在這種設定下執行容器時,需要將AD伺服器憑證匯入 Tableau Server Keystore,否則伺服器初始化會失敗。為此,請執行以下步驟:

  1. 建立 pre-init-command 指令碼(請查看預初始化指令碼部分)。新增下列行,以將 AD 憑證新增到 Tableau Server Keystore。

    ${INSTALL_DIR}/packages/repository.${SERVICE_VERSION}/jre/bin/keytool -importcert -noprompt -alias startTlsCert -file <mounted-certificate-path> -storetype JKS -storepass changeit -keystore ${DATA_DIR}/config/tableauservicesmanagerca.jks
  2. pre-init-command 指令碼中,將 AD 伺服器憑證掛載到為 -file 參數提供的檔案路徑中。

或者,可以停用透過 StartTLS 與 AD 通訊的預設設定。將 wgserver.domain.ldap.starttls.enabled 設定為 false ,以停用 StartTLS。但不建議。

附註: 有關 AD 的範例設定實體,請參閱 LDAP - Active Directory

部署設定範例

Docker

容器中的 Tableau Server 基本使用方式
docker run \
-e LICENSE_KEY=<key>
-p 8080:8080
-d <Tableau Server in a Container image ID or tag>
容器中的 Tableau Server 基本使用方式與自動建立初始管理員使用者
docker run \
-e LICENSE_KEY=<key> \
-e TABLEAU_USERNAME=<myadmin> \
-e TABLEAU_PASSWORD_FILE=/etc/tableau-admin-secret \
-v <full-path-to-pw-file>:/etc/tableau-admin-secret \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
僅限 TSM 模式
docker run \
-e TSM_ONLY=1 \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
多節點基本使用方式
初始節點

選項 1:若伺服器設定 (CONFIG_FILE) 指定多節點拓撲,請使用此選項:

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-v <full-path-to-config-file>:/docker/config/config.json:ro \
-e LICENSE_KEY=<key> \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>

選項 2:若想要多節點部署,即使伺服器設定未指定多節點拓撲,也可以使用此選項:

docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e LICENSE_KEY=<key> -e ALWAYS_WRITE_BOOTSTRAP_FILE=1 \
-p 8080:8080 -p 8800-9000:8800-9000 -p 27000-27010:27000-27010 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
額外節點
docker run \
-v <network-shared-directory>:/docker/config/bootstrap \
-e BOOTSTRAP_INSTALL=1 \
-p 8080:8080 -p 8800-9000:8800-9000 \
--hostname=<static (internal) name of host machine> \
-d <Tableau Server in a Container image ID or tag>
外部化資料使用方式
docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
Init 容器基本使用方式

Init 容器

docker run \
-v <empty-data-dir>:/var/opt/tableau \
-e LICENSE_KEY=<key> \
-e INIT_CONTAINER=1 \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

執行容器

docker run \
-v <empty-data-dir>:/var/opt/tableau \
--hostname=<static (internal) name of host machine> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>
從備份單一節點進行基本還原
docker run \
-v <full-path-to-backup-file>:/docker/config/backup/backup-file.tsbak \
-v <full-path-to-config-only-file>:/docker/config/config.json:ro \
-v <full-path-to-identity-store-config-only-file>:/docker/config/identity-store-config.json \
-e LICENSE_KEY=<key> \
-p 8080:8080 -d <Tableau Server in a Container image ID or tag>

Docker-Compose

version: '3.2'
services:
    tableau-server:
         hostname: localhost
         volumes:
              - <your-tsm-command-file>:/docker/config/tsm-commands:ro
              - <your-config-file >:/docker/config/config.json:ro
         ports:
              - "8080:8080"
         image: ${IMAGE_NAME}
         environment:
              - LICENSE_KEY=<license-key>

 

 

感謝您的意見反應!已成功提交您的意見回饋。謝謝!