---
schema_version: "1"
id: 34610a3162b8f95a5a96d5e83acda7dd6e199f05ce9031eee6de3d3169f8f295
title: การปรับใช้แผนภูมิ helm
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/server-linux/server-helm-deploy.md
canonical_url: https://help.tableau.com/v0.0/server-linux/th-th/server-helm-deploy.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 079b5ca9d4afe23ea963e4ecb51a8c3de41867c18b62a25f31bb4769f66eda29
description: "สำคัญ: เอกสารนี้จัดทำขึ้นสำหรับผู้มีความรู้เกี่ยวกับ Helm และแผนภูมิ Helm และไม่ได้ยกตัวอย่างที่ละเอียดตามแบบแผน เอกสารได้รับการออกแบบมาสำหรับลูกค้าที่คุ้นเคยกับทั้ง Tableau Server และ Helm และแผนภูมิ Helm"
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# แผนภูมิ Helm ของ Tableau Server - การปรับใช้

**สำคัญ**: เอกสารนี้จัดทำขึ้นสำหรับผู้มีความรู้เกี่ยวกับ Helm และแผนภูมิ Helm และไม่ได้ยกตัวอย่างที่ละเอียดตามแบบแผน เอกสารได้รับการออกแบบมาสำหรับลูกค้าที่คุ้นเคยกับทั้ง Tableau Server และ Helm และแผนภูมิ Helm

หัวข้อนี้จะแนะนำคุณเกี่ยวกับขั้นตอนภาพรวมของการปรับใช้ Tableau Server บน Kubernetes โดยใช้แผนภูมิ Helm

## ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้น โปรดตรวจสอบว่าคุณได้ปฏิบัติตามข้อกำหนดเบื้องต้นแล้ว หากต้องการข้อมูลเพิ่มเติม โปรดดู[แผนภูมิ Helm ของ Tableau Server - ข้อกำหนดเบื้องต้น](https://help.tableau.com/v0.0/server-linux/th-th/server-helm-prerequisites.htm)

### ดาวน์โหลดแผนภูมิ Helm

แผนภูมิ Helm จะถูกส่งมอบโดยเป็นส่วนหนึ่งของเครื่องมือการตั้งค่า Tableau Server in a Container (`tableau-server-container-setup-tool-<version>.tar.gz`) และสามารถดาวน์โหลดได้จากหน้า[การดาวน์โหลด Tableau Server](http://tableau.com/th-th/support/releases/server/latest)

หลังจากแยกข้อมูลแล้ว ไฟล์แผนภูมิ Helm ที่จำเป็นจะอยู่ในไดเรกทอรี `helm/tableau`

## สรุปภาพรวมโดยใช้แผนภูมิ Helm เพื่อปรับใช้ Tableau Server

**สำคัญ**: นี่คือคำอธิบายภาพรวมพื้นฐานของการปรับใช้ Tableau Server โดยใช้แผนภูมิ Helm โดยไม่ได้มีวัตถุประสงค์เพื่ออธิบายขั้นตอนที่ครบถ้วนทั้งหมด คำอธิบายนี้จัดทำขึ้นสำหรับผู้มีความรู้เกี่ยวกับ Helm และแผนภูมิ Helm

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณได้ปฏิบัติตามข้อกำหนดเบื้องต้นสำหรับการปรับใช้ Tableau Server โดยใช้แผนภูมิ Helm ดูรายละเอียดที่[แผนภูมิ Helm ของ Tableau Server - ข้อกำหนดเบื้องต้น](https://help.tableau.com/v0.0/server-linux/th-th/server-helm-prerequisites.htm)

### เพิ่มคีย์ใบอนุญาตของคุณไปยัง values.yaml

แก้ไข `values.yaml` และตั้งค่าคีย์ใบอนุญาตของคุณ

### ปรับใช้ Tableau Server แบบโหนดเดียว

ปรับใช้อินสแตนซ์แบบโหนดเดียวของ Tableau Server โดยใช้คำสั่งเหล่านี้เมื่อได้รับข้อความแจ้ง (แทนที่เนมสเปซรุ่นของคุณเป็น `<namespace>` เช่น `tableau` หรือ `default`):

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

### ปรับใช้ Tableau 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. สร้างเนมสเปซเฉพาะ
    
    ต้องตรงกับ `claimFef.namespace` บน Bootstrap PV ตัวอย่างนี้จะใช้ `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-linux/th-th/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` ต้องอ้างอิงเนมสเปซและชื่อ PVC เดียวกันกับที่แผนภูมิ Helm สร้างขึ้น (`tableau-server-bootstrap`) แทนที่ `fs-...` ด้วย ID ระบบไฟล์ EFS ของคุณ:
    
    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 ดู[ข้อกำหนดเบื้องต้นของ Amazon Elastic Kubernetes Service (EKS)](https://help.tableau.com/v0.0/server-linux/th-th/server-helm-prerequisites.htm#EKS-Prereq-storageclass) สำหรับการแก้ไข `<your-node-instance-role>` จากกลุ่มโหนด
    
    `efs-bootstrap` Storageclass — ใช้ หากยังไม่มี ดูรายละเอียดใน[ข้อกำหนดเบื้องต้นของ Amazon Elastic Kubernetes Service (EKS)](https://help.tableau.com/v0.0/server-linux/th-th/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 ข้อมูล
    
    PVC ข้อมูลอาจแสดง `Pending` ชั่วครู่จนกว่าปริมาณ EBS จะแนบมา PVC ทั้งหมดควรเปลี่ยนเป็น `Bound`จากนั้นจึงเป็น `Running`และในท้ายที่สุดจะเป็น `READY 1/1`
11. โทโพโลยี (ไม่บังคับ)
    
    หากจุดแทรกโค้ดหลังการติดตั้งปิดใช้งานอยู่ คุณอาจต้องตั้งค่าโหนด `clustercontroller` และใช้การเปลี่ยนแปลงที่รอดำเนินการ (ดูโทโพโลยีอัตโนมัติหลังการติดตั้ง (จุดแทรกโค้ด) ในเอกสารนี้ในภายหลัง) คำสั่ง `tsm pending-changes apply` อาจส่งผลให้เกิดคำเตือนเกี่ยวกับการเผยแพร่เซิร์ฟเวอร์ดัชนีและการค้นหาหรือชุดบริการรวมเมื่อคุณมีโหนด Tableau หลายโหนด จัดการคำเตือนเหล่านี้ตามที่ระบุไว้ในเอกสาร[เซิร์ฟเวอร์ดัชนีและการค้นหา](https://help.tableau.com/v0.0/server-linux/th-th/server_process_index-and-search.htm)และ[บริการรวมของ Tableau Server](https://help.tableau.com/v0.0/server-linux/th-th/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 เป็นคอนเทนเนอร์แบบ Monolithic

ใช้ `values-single.yaml` หรือตั้งค่า:

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

#### การปรับใช้หลายโหนด

การปรับใช้หลายโหนดจะเรียกใช้งานโหนดหลักหนึ่งรายการและตัวดำเนินการอย่างน้อยหนึ่งรายการ ตั้งค่าจำนวนตัวดำเนินการด้วย `worker.replicaCount` — ใช้ 1, 2 หรือค่าที่สูงกว่าความจุคลัสเตอร์ของคุณและโทโพโลยี Tableau อนุญาต แผนภูมิจะสร้าง `tableau-server-worker-0 … tableau-server-worker-(N-1)` สำหรับ `replicaCount: N`

ใช้ `values-multinode.yaml` (ตัวอย่างเริ่มต้นใช้ตัวดำเนินการสองรายการ) หรือตั้งค่าอย่างชัดเจน:

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

การจัดตำแหน่งโทโพโลยี: `values-multinode.yaml` มาพร้อมกับตัวอย่างโทโพโลยี `config.configJson` (ID โหนด เช่น `node1`, `node2`, `node3`) หากคุณเปลี่ยน `worker.replicaCount` หรือจัดเรียงบริการใหม่ อัปเดตโทโพโลยีนั้น (และการกำหนดกระบวนการ Tableau ที่เกี่ยวข้อง) เพื่อให้จำนวนและบทบาทของโหนด TSM ตรงกับการปรับใช้ของคุณ โปรดดูความช่วยเหลือเกี่ยวกับ 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 ที่มีอยู่ล่วงหน้า (เช่น s`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-linux/th-th/server_external_repo.htm) และ[tsm topology](https://help.tableau.com/v0.0/server-linux/th-th/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` เพิ่มคอนเทนเนอร์ตั้งต้นที่ `chown/chmods /docker/config/bootstrap` เพื่อให้กระบวนการ Tableau (UID/GID 999:998) สามารถเขียน `bootstrap.json` บนการติดตั้ง EFS ที่แชร์ซึ่งมีค่าเริ่มต้นเป็น `root:root`

เมื่อ `createPV: true`แผนภูมิจะสร้าง Bootstrap PV จากค่า (เช่น `tableau-bootstrap-pv`) และผูก `tableau-server-bootstrap` PVC เข้าด้วยกัน

หากคุณจัดการ Bootstrap PV ด้วยตนเอง ให้สร้าง `tableau-bootstrap-pv` ก่อน จากนั้นติดตั้ง Helm ด้วย `createPV: false` และ `volumeName: tableau-bootstrap-pv:`

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:
  enabled: true
  className: "nginx"
  hosts:
    - host: tableau.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: tableau-tls
      hosts:
        - tableau.example.com

#### คู่มือปฏิบัติงานสำหรับการตั้งค่าขาเข้า (ตัวอย่าง: ตัวควบคุมขาเข้า NGINX)

1. ติดตั้งตัวควบคุมขาเข้าในคลัสเตอร์ (จำเป็นก่อนเปิดใช้งานข้อมูลขาเข้าของแผนภูมิ)
2. ตั้งค่าขาเข้าในไฟล์ค่าของคุณ:
    
    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. สร้างระเบียน DNS ที่ชี้ไปที่ tableau.example.com ไปยังปลายทางตัวจัดสรรภาระงาน/ขาเข้าของคุณ
4. สร้างข้อมูลลับ TLS (หรือใช้ cert-manager) ในเนมสเปซรุ่น
5. ปรับใช้/อัปเกรดแผนภูมิและยืนยันข้อมูลขาเข้า:
    
    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](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/)

#### การตรวจสอบสถานะ

แผนภูมิรองรับการตรวจสอบการเริ่มต้นใช้งาน สถานะการทำงาน และความพร้อม การตรวจสอบการเริ่มต้นระบบอนุญาตให้เริ่มต้นครั้งแรกเป็นเวลานาน (เช่น 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**: ใช้การส่งต่อพอร์ตหรือข้อมูลขาเข้า
- **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

### การอัปเกรด

#### อัปเกรดแผนภูมิ Helm ของ Tableau Server

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 topology set-process` สำหรับโหนด TSM ของตัวดำเนินการแต่ละโหนด (โดยทั่วไปคือโหนด 2 ถึงโหนด (1+N) เมื่อคุณมี N ตัวดำเนินการให้ยืนยัน ID ด้วย `tsm topology list-nodes -v`):

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

**หมายเหตุ**: ใช้ `-iw` สำหรับ `tsm pending-changes apply` ตัวเลือก `-ig` ไม่ถูกต้องในสภาพแวดล้อมนี้

### การถอนการติดตั้ง

helm uninstall tableau-server

**คำเตือน**: การดำเนินการนี้จะลบทรัพยากรทั้งหมดรวมถึงโวลุ่มถาวร ตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลของคุณก่อนที่จะถอนการติดตั้ง

#### ขั้นตอนการตรวจสอบความถูกต้อง

ก่อนเปิดตัวหรือเมื่อเปลี่ยนแผนภูมิ ให้เรียกใช้:

1. Lint:
    
    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. ในเนมสเปซทดสอบ ให้เรียกใช้ `helm install` พร้อมค่า-เดียวหรือค่า-หลายโหนด
    2. เรียกใช้ `kubectl rollout status` (สำหรับ StatefulSet ให้รอพ็อดพร้อมใช้งาน) และการตรวจสอบเบื้องต้นพื้นฐาน (เช่น `tsm status` หรือ HTTP ไปยังบริการ)

สำหรับการแก้ปัญหาโดยละเอียด โปรดดูที่[แผนภูมิ Helm ของ Tableau Server - การแก้ปัญหา](https://help.tableau.com/v0.0/server-linux/th-th/server-helm-troubleshooting.htm).

## แหล่งข้อมูลเพิ่มเติม

- [เอกสารของ Tableau Server](https://help.tableau.com/current/server-linux/th-th/)
- [เอกสารประกอบของ Helm](https://helm.sh/docs/)
- [อัปเกรดแผนภูมิ Helm](https://helm.sh/docs/helm/helm_upgrade/)