要在 Google Cloud (GKE) 或 Azure (AKS) 中 Kubernetes 上的 Presto 上部署 QueryGrid,请在 Viewpoint 中创建 Presto 目标连接器。请在 Server 属性中使用云预留的静态外部 IP。有关如何预留静态 IP 地址(如果尚未预留静态 IP 地址)的信息,请参阅 Google Cloud 或 Azure 文档。Google Cloud 静态 IP 必须是 premium 静态 IP。
- 下载 tdqg-presto-k8s-deploy 包(如果尚未获取),请参见下载必需的软件包获取更多信息。
- 解压缩 tdqg-presto-k8s-deploy 包,然后获取以下文件:
- tdqg-node docker image.zip
- tdqg-init-presto docker image.zip
- tdqg-presto-node.zip.zip
- 使用云预留的静态外部 IP 创建 Presto 目标连接器。
- 如果您以前使用 install_tdqg_node_pod.py 脚本以在 Kubernetes(GKE 或 AKS)中的 Presto 上自动部署 QueryGrid,则可以使用相同的脚本创建 Presto 目标连接器。请将网络结构和连接器详细信息添加到 tdqg_input.yaml 文件中。在 Server 属性中提供云预留的静态外部 IP 并运行脚本。
- 如果您没有使用此脚本,请在 Viewpoint 上创建 Presto 连接器,并在 Server 属性中使用云预留的静态外部 IP。
- 创建 Presto values.yaml 文件,以使用 Helm 图表部署 Presto。在修改现有 Presto 部署时,必须更新 Presto values.yaml 文件的版本,以包括 QueryGrid 部分。修改时有两个选项:手动和使用安装脚本。
操作 说明 添加新的 Presto 部署 在添加新的 Presto 部署时,tdqg-presto-node 下的 presto_values.yaml 可以用作 values.yaml 文件。 - 执行标准 Presto 配置任务,如节点数、CPU、内存、要指向数据库的目录等。
- 将 initFile 下的 节点软件版本 和 Presto 连接器版本 替换为实际版本。
修改现有 Presto 部署 将以下部分从 presto_values.yaml 文件添加到您现有的 Presto values.yaml 配置文件: - initFile.sh – 将节点软件版本和 Presto 连接器版本替换为实际版本
- additionalVolumes – 允许 tdqg-node Pod 和 Presto Pod 交换文件的 hostPaths 卷
- coordinator: affinity 和 worker: affinity – Presto 协调器和工作线程不得共享同一主机
- catalogs – 添加 qgremote 目录
- 通过运行 helm repo add 命令来添加 Starburst Presto 存储库,以使用 Helm 部署 Presto。
- 添加 Helm 存储库后,使用以下命令部署 Presto:
helm upgrade my-presto starburstdata/starburst-enterprise \ --install \ --version <Presto_version> \ #e.g. 380.0.1 --values <path to Presto values.yaml file>
- 检查操作是否成功:kubectl get pods -o wide如果显示以下内容,表示操作成功:
- 每个 Kubernetes 主机对应的处于运行状态的 tdqg-node Pod
- Presto 协调器 Pod
- 先前指定的 Presto 工作线程 Pod 的数量
如果 Pod 正在启动和停止,请查看容器日志以排除故障。
- 公开 Kubernetes Pod 网络外部的 Presto 服务器。为此,可以使用静态 IP 创建负载平衡器。有关如何创建负载平衡器的信息,请参阅 Starburst Enterprise Presto 和 Google Cloud/Azure 文档。如有必要,请重新部署 Presto Pod。
- 等待大约 30 秒后运行 kubectl get services,确认已将外部 IP 分配给 Presto 协调器。升级 QueryGrid 节点或连接器软件时,节点软件版本和Presto 连接器版本需要在 Presto 配置 yaml 文件中更新并重新应用,这将触发所有 Presto Pod 的重新启动。