Tableau Server 和 Helm 图表

Tableau Server Helm 图表 - 概述

重要信息:本文档假设您了解 Helm 和 Helm 图表,并不试图提供详细的说明性示例。它是为熟悉 Tableau Server 以及 Helm 和 Helm 图表的客户设计的。

简介

Tableau Server Helm 图表使您能够使用 Kubernetes 的包管理器 Helm 在 Kubernetes 群集上部署和管理 Tableau Server。此 Helm 图表打包了在容器化环境中运行 Tableau Server 所需的所有 Kubernetes 资源,提供了一个声明性和可重复的部署过程。

什么是 Helm?

Helm 是 Kubernetes 的包管理器,可简化应用程序的部署和管理。Helm 使用图表,图表是预先配置的 Kubernetes 资源包。Tableau Server 的 Helm 图表捆绑了所有必要的组件,包括:

  • Deployment 和 StatefulSet
  • Service 和 Ingress 配置
  • ConfigMap 和 Secret
  • 数据存储的 PersistentVolumeClaim
  • RBAC 策略和 ServiceAccount

架构

组件

Tableau Server Helm 图表部署以下主要组件:

Tableau Server 容器

  • 在 Linux 容器内运行完整的 Tableau Server 实例
  • 基于具有 supervisord 管理流程的 UBI 8 映像
  • 容器启动时自动初始化和启动 Tableau Server

Kubernetes 资源

  • StatefulSet:管理具有稳定网络身份的 Tableau Server pod
  • PersistentVolumeClaim:为 Tableau 数据提供位于 /var/opt/tableau 的持久性存储
  • Service:在群集中公开 Tableau Server
  • Ingress(可选):提供对 Tableau Server 的外部访问
  • ConfigMap:存储非敏感配置
  • Secret:存储敏感数据,如许可证和密码

部署拓扑

单节点部署

  • 一个 Tableau Server pod,所有进程位于单个节点上
  • 适用于开发、测试和小型生产工作负载
  • 配置最简单,资源要求最低

多节点部署

  • 跨节点分布的多个 Tableau Server pod
  • 用于引导程序协调的共享网络存储
  • 为生产工作负载提供更高的可用性和可扩展性
  • 需要额外的节点协调配置

安全注意事项

  • 密文管理:始终对生产中的敏感数据使用 Kubernetes 密文
  • 网络策略:考虑实施网络策略以限制 pod 通信
  • RBAC:图表创建一个服务帐户;根据需要配置 RBAC
  • 映像安全:使用可信容器映像并扫描漏洞
  • TLS/SSL:为生产环境中的入口启用 TLS

使用 Helm 的好处

简化部署

  • 通过单一 helm install 命令安装 Tableau Server
  • 通过值文件进行声明性配置
  • 版本控制的基础架构即代码

轻松更新和回滚

  • 使用 helm upgrade 升级 Tableau Server 版本
  • 如果出现问题,可回滚到以前的版本
  • 跟踪部署历史记录

一致的环境

  • 相同的图表部署到开发、暂存和生产
  • 通过值文件进行特定于环境的自定义
  • 减少配置漂移

内置最佳做法

  • 预先配置的资源请求和限制
  • 运行状况检查和就绪情况探测器
  • 安全上下文和 RBAC 策略

支持的平台

Kubernetes 发行版

  • 自托管 Kubernetes 群集 (1.19+)
  • Amazon EKS (Elastic Kubernetes Service)
  • Azure AKS (Azure Kubernetes Service)
  • Google GKE (Google Kubernetes Engine)
  • Red Hat OpenShift

生产要求

  • Kubernetes 1.19 或更高版本
  • Helm 3.x
  • 持久性存储资源调配器(适用于 PersistentVolumes)
  • 负载平衡器或入口控制器(用于外部访问)
  • 每个节点至少 16GB RAM 和 4 个 CPU 内核(建议使用 8 个 CPU 内核 - 请参见Tableau Server 的最低硬件要求和推荐配置)

限制

尽管 Helm 图表提供了许多好处,但请注意以下几点:

  • 每个 pod 运行一个完整的 Tableau Server 实例,而不是单独的微服务。
  • 容器重启需要重新初始化进程(但不是数据)。
  • 由于 Tableau Server 的架构,不支持水平 pod 自动扩展。
  • 多节点部署需要共享网络存储进行协调。
  • 某些高级 Tableau Server 配置可能需要自定义初始化脚本。

基础入门

若要开始使用 Tableau Server Helm 图表,请参见Tableau Server Helm 图表 - 先决条件。

有关部署示例,请参见Tableau Server Helm 图表 - 部署。

有关疑难解答指南,请参见Tableau Server Helm 图表 - 疑难解答。

其他资源