要在 Google Kubernetes Engine (GKE) 或 Azure Kubernetes Service (AKS) 上运行的 kubernetes 中的 Presto 上部署 QueryGrid,必须在集群中的每个 Kubernetes 节点上添加 tdqg-node Pod。
此过程假定已具备以下先决条件:
- 已创建或正在运行 Kubernetes 集群。
- Kubernetes 集群有足够的资源来运行 QueryGrid Presto 节点 Pod。以下是 AKS/GKS 上 QueryGrid Presto 节点 Pod 的最低要求:
- 4 GB RAM CPU 数量 - 1
- kubectl 版本与 kubernetes 集群版本相同。
- helm 为 3.2.4 或更高版本。
- 下载 tdqg-presto-k8s-deploy 包,请参见下载必需的软件包获取更多信息。
- 如果需要,请通过执行以下操作将 QueryGrid Docker 映像上载到云 Docker 映像中:
- 解压缩 tdqg-presto-k8s-deploy 包,然后获取以下文件:
- docker-images 文件夹下的 tdqg-node_version.tar.gz 和 tdqg-init-presto_version
- tdqg-presto-node-chart-version.tar.gz
- 根据相应的 Azure 或 Google Cloud 文档将 docker-images 文件夹下的两个 Docker 映像上载到云容器映像存储库/注册表。这可能涉及到以下任务:
- 在工作站中安装 Docker
- 加载映像
- 标记映像并将其推送到云存储库
- 解压缩 tdqg-presto-k8s-deploy 包,然后获取以下文件:
- 解压缩 tdqg-presto-node-chart-version.tar.gz。
- 更新 tdqg-presto-node 文件夹下的 values.yaml,以包括 tdqg-init-presto 和 tdqg-node Docker 映像的路径,如下面的 GKE 和 AKS 示例所示:
registryUrl: gcr.io/gcp-project-id-here tdqgInitPrestoVersion: latest tdqgNodeVersion: latest
registryUrl: tdqgcr.azurecr.io tdqgInitPrestoVersion: latest tdqgNodeVersion: latest
- 如果不对当前网络结构和挂起的网络结构升级使用缺省网络结构端口,请编辑 values.yaml 以包含正确的网络结构端口。
- 使用以下两个选项之一创建系统、网络结构并部署 tdqg-node Pod:
使用 install_tdqg_node_pod.py 脚本 如果您具有 QueryGrid 管理器凭据,则可以使用 tdqg-presto-node 文件夹中的 install_tdqg_node_pod.py 脚本。以下是运行脚本的先决条件。 - 确保运行脚本的系统可以连接到 QueryGrid 管理器和 Kubernetes 集群。
- 在运行脚本的位置安装以下依赖包:
- python-requests
- pip3
- logging
- pyyaml
- kubectl
- helm (>=3.2.4)
- python 3 或更高版本
- 在 tdqg_input.yaml 输入文件中,输入 QueryGrid 管理器 和系统信息等详细信息。
此脚本将创建一个系统,然后在 Kubernetes 集群上部署 tdqg-node Pod。
- 从您计划运行脚本的位置运行 kubectl get nodes -o wide 命令,以确保 Kubernetes 集群启动并运行。
检查所有节点的状态是否都为 Ready。脚本将在该集群中部署 QueryGrid 节点 Pod。有关详细信息,请参阅 README 文件。
- 运行脚本,如以下示例所示:
python3 path_to_install_tdqg_nod_pod.py script
手动安装 如果您没有 QueryGrid 管理器凭据,请执行手动安装。 - 从 Viewpoint 创建 QueryGrid 系统。
- 从 QueryGrid 管理器创建的系统下载 tdqg-node.json 令牌文件。
- 将 tdqg-node.json 文件直接放在 tdqg-presto-node 下。
$ ls /tdqg-presto-node/tdqg-node* /tdqg-presto-node/tdqg-node.json
- 部署 tdqg-node Pod。
helm install tdqg-presto-node <path_tdqg_node_pod.py_folder>
- 确认每个实例都运行状态为 Running 的 tdqg-node pod:
状态 操作 正在运行 无。对于 kubernetes 集群中的每个节点,Viewpoint 中都有一个可用节点。 未运行 运行 kubectl get pods -o wide 以验证 Pod 是否正在运行。 如果调整 kubernetes 集群的大小,则每个新 Kubernetes 主机上都会出现 tdqg-node Pod。