Tableau Server Helm Chart - Troubleshooting

Important: This documentation assumes a knowledge of Helm and Helm charts and does not attempt to provide detailed, prescriptive examples. It is designed for customers who are familiar with both Tableau Server and Helm and Helm charts.

Introduction

This topic provides help for you to diagnose and resolve common issues when deploying Tableau Server on Kubernetes using a Helm chart. It covers installation problems, runtime issues, and debugging techniques.

General Troubleshooting Steps

When encountering issues with Tableau Server in Kubernetes:

  1. Check pod status and events
  2. Review container logs
  3. Verify resource availability
  4. Check persistent volume claims
  5. Review Helm release status
  6. Examine service and network connectivity

Pods not starting

  1. Check pod status:

    kubectl get pods -l app.kubernetes.io/instance=tableau-server
    kubectl describe pod <pod-name>
  2. Check logs:

    kubectl logs <pod-name>
  3. Check events:

    kubectl get events --sort-by='.lastTimestamp'

Persistent volume issues

  1. Check PVC status:

    kubectl get pvc
    kubectl describe pvc <pvc-name>
  2. Verify storage class:

    kubectl get storageclass

License key issues

  1. Verify license key is set:

    kubectl get secret tableau-server-secrets -o 
    jsonpath='{.data.LICENSE_KEY}' | base64 -d
  2. Update license key:

    # Edit values.yaml and upgrade
    helm upgrade tableau-server ./helm/tableau-server -f ./helm/tableau-server/values.yaml

Health check failures

  1. Check health check script:

    kubectl exec <pod-name> -- /docker/alive-check
    kubectl exec <pod-name> -- /docker/server-ready-check
  2. Adjust health check timing:

    healthChecks:
    liveness:
    initialDelaySeconds: 600 # Increase if server takes longer to start

Multi-node bootstrap issues

  1. Verify bootstrap volume:

    kubectl get pvc | grep bootstrap
  2. Check bootstrap file:

    kubectl exec <primary-pod> -- ls -la /docker/config/bootstrap
  3. Verify ReadWriteMany access mode:

    persistence:
    bootstrap:
    accessMode: ReadWriteMany # Required for multi-node

     

  4. Verify bootstrap PV/PVC binding for EFS static provisioning:

    kubectl get pv tableau-bootstrap-pv
    kubectl get pvc -n default tableau-server-bootstrap
    kubectl describe pv tableau-bootstrap-pv
    kubectl describe pvc -n default tableau-server-bootstrap
  5. If mount fails after PVC is Bound, check for EFS CSI/IAM errors:

    kubectl describe pod -n default tableau-server-primary-0
    kubectl get events -n default --sort-by='.lastTimestamp'
  6. driver name efs.csi.aws.com not found errors:

    Install and verify the EKS add-on as described in Amazon Elastic Kubernetes Service (EKS) prerequisites.

  7. Fix DescribeMountTargets authorization failures

    • Preferred method:

      aws iam attach-role-policy \
      --role-name <your-node-instance-role> \
      --policy-arn
      arn:aws:iam::aws:policy/AmazonElasticFileSystemClientReadWriteAccess

      Then restart affected pods (primary node and all worker nodes. Workers are selected by label so any replica count is covered.

    • Alternate method

      Force mount the target IP in bootstrap PV config:

      Set persistence.bootstrap.pv.csi.volumeAttributes.mounttargetip (or manual PV volumeAttributes.mounttargetip) and re-apply/upgrade.

Additional Resources

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!