การปรับใช้แผนภูมิ helm

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

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

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

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

ก่อนที่คุณจะเริ่มต้น โปรดตรวจสอบว่าคุณได้ปฏิบัติตามข้อกำหนดเบื้องต้นแล้ว หากต้องการข้อมูลเพิ่มเติม โปรดดูแผนภูมิ Helm ของ Tableau Server - ข้อกำหนดเบื้องต้น

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

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

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

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

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

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

เพิ่มคีย์ใบอนุญาตของคุณไปยัง 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)

    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) สำหรับการแก้ไข <your-node-instance-role> จากกลุ่มโหนด

    efs-bootstrap Storageclass — ใช้ หากยังไม่มี ดูรายละเอียดในข้อกำหนดเบื้องต้นของ Amazon Elastic Kubernetes Service (EKS)

    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 หลายโหนด จัดการคำเตือนเหล่านี้ตามที่ระบุไว้ในเอกสารเซิร์ฟเวอร์ดัชนีและการค้นหาและบริการรวมของ Tableau Server

การติดตั้งที่กำหนดเอง

  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 ที่มีอยู่ล่วงหน้า (เช่น secrets.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 และtsm topology

  • สำหรับการปรับใช้ของลูกค้า ให้จัดเก็บข้อมูลเข้าสู่ระบบฐานข้อมูลในข้อมูลลับ 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

หากต้องการข้อมูลเพิ่มเติม โปรดดู:

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

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

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