Skip to main content
参考 概述▸,AutoMQ 支持部署到 Kubernetes 上。本文介绍 AutoMQ 部署到腾讯云 TKE 平台的安装过程。
本文中提及 AutoMQ 产品服务方、AutoMQ 服务方、AutoMQ,均特指 AutoMQ HK Limited及其附属公司。

操作流程

步骤 1:安装环境控制台

参考概述▸,AutoMQ 支持部署到 TKE 集群。在 TKE 部署模式下,首先仍然需要安装 AutoMQ 控制台,再通过控制台界面操作 TKE,将集群部署到 TKE。 腾讯云支持基于云应用安装环境控制台。参考从腾讯云云应用安装环境▸ AutoMQ 控制台安装完成后,需要从控制台界面获取环境控制台地址、初始用户名、密码。
注意:部署 AutoMQ 数据面集群需要从公网环境拉取 Docker 镜像和 Helm Chart 产物。因此需要 VPC 环境支持通过 SNAT 等方式出公网。配置公网 SNAT 的操作说明请参考本文档附录从腾讯云云应用安装环境▸

步骤 2:创建 CAM 角色

AutoMQ 数据面集群需要独立的节点池,该节点池需要绑定独立的 CAM 角色用于访问云资源的权限验证。因此,在创建 TKE 集群之前,需要前往 CAM 控制台创建自定义角色。操作步骤如下:
  1. 前往 CAM 控制台,点击角色,新建角色, 选择腾讯云产品服务
  1. 选择产品服务 云服务器 CVM
  1. 输入自定义的角色名称,点击完成,创建自定义角色。记录角色名称,后续步骤 4 创建 TKE专属节点池需要配置角色名。

步骤 3:创建 TKE 集群

参考概述▸,用户需要提前创建独立的 TKE 集群分配给 AutoMQ 使用。用户可访问腾讯云 TKE 产品控制台按下方步骤操作。
  1. 登录腾讯云 TKE 控制台。点击创建集群
  1. 选择集群类型为标准集群。
  1. 填写基础配置 ,注意集群规格等信息,建议至少选择 L20 ,并开启自动升配。其他参数保持默认值即可。
建议至少选择 L20,管理 20 个左右节点,并开启自动升配。防止因 TKE 能力不足导致无法扩缩容。
  1. 填写网络配置, 选择正确的 VPC,网络插件选择推荐的 VPC-CNI,容器子网选择所有需要的可用区。
  1. 点击下一步,关闭非必须的 Prometheus 插件,完成创建

步骤 4:创建 TKE 公共节点池

参考概述▸,用户需要为 TKE 集群 创建一个公共节点池,用于部署 TKE 系统组件。参考以下步骤创建符合要求的节点池。
  1. 进入步骤 2 创建的 TKE 集群详情,点击节点菜单创建节点池
  1. 选择普通节点池类型, 参考下面的文档设置自定义参数,完成节点池创建。对于表格中没有说明的参数,请按照默认推荐值不要修改。

步骤 5:创建 AutoMQ 专用 TKE 节点池

参考概述▸,用户需要为 AutoMQ 创建符合要求的专用节点池,以便后续部署实例申请机器。参考以下步骤创建符合要求的节点池,并完成委托授权。
  1. 进入步骤 2 创建的 TKE 集群详情,点击节点菜单创建节点池
  1. 选择普通节点池类型, 参考下面的文档设置自定义参数,完成节点池创建。对于表格中没有说明的参数,请按照默认推荐值不要修改。
创建节点池时,只支持单可用区 或者三可用区 ,如果选择了其他数量的可用区,后期无法创建实例。
  1. 节点启动配置, 选择一个或三个子网,初始数量为 1。
  1. 填写运维功能设置, 选择开启弹性伸缩,节点数量设置至少为 1,弹性上限建议和 TKE 集群规格以及未来需要部署 AutoMQ 的机器规模一致。实例创建策略,选择多可用区打散。
  1. 节点池绑定 CAM 角色 ,信息来自 安装控制台后的输出参数 。然后点击创建节点池。 添加 AutoMQ 独占的污点。污点的键是dedicated,值是 automq,效果是 NO_SCHEDULE。
  1. 为 AutoMQ 使用的节点组创建 Placeholder Deployment 用于加速节点故障场景的 Failover 速度。
工作原理:Placeholder Deployment 的作用是在 Kubernetes 集群的节点上部署一个低优先级的“占位符”应用,预先占用若干节点。当 AutoMQ 集群的 Pod 所在节点出现故障时,可以快速抢占该 Placeholder 的节点,实现快速恢复。
部署 Placeholder Deployment 可以通过 kubectl 命令或者 Kubernetes 控制台进行操作。 首先点击链接,下载名为 automq-low-priority.yaml 的优先级申明文件,执行以下命令,创建优先级申明。
然后点击链接,下载 automq-tke-placeholder.yaml 文件。需要根据实际部署的节点池,修改其中的参数:
  • metadata.name : 建议修改成具有意义的 Placeholder 名称,例如 placeholder-for-nodegroup-A
  • replicas : Placeholder pod 预留数量,默认为 1,如果是多可用区部署,建议每个可用区保留 1 台机器,即数量设置为可用区的数量。
  • affinity.nodeAffinity : 用于选择 Placeholder 部署的节点,需要修改 matchExpressions 中的 keyvalues 来精确匹配 AutoMQ 的节点池。在示例的 yaml 文件中提供 2 个选项筛选节点。
    • eks.tke.cloud.tencent.com/nodegroup-id :在 TKE 上使用 eks.tke.cloud.tencent.com/nodegroup-id 标签筛选指定的节点池。
    • node.kubernetes.io/instance-type :在 TKE 上使用 node.kubernetes.io/instance-type 标签筛选指定的节点机型。
  • resources :
    • limits 的 CPU 和内存与 TKE 节点池的规格保持一致,例如 2C16G。
    • requests 的 CPU 和内存应略小于 TKE 节点池的规格,例如使用 3/4 的资源。这样可以使 Placeholder Pod 预留额外节点,避免其他 Pod 占用故障转移所需容量。
需要修改的参数片段,参考以下 yaml 文件:
修改完成后,执行以下命令,安装 Placeholder。
执行完成后,调用以下命令检查 Placeholder Pod 的状态,确保 Placeholder Pod 状态为 Running ,并观察它是否被调度到了期望的节点上。

步骤 6:进入环境控制台,创建部署配置

首次进入 AutoMQ BYOC 控制台,需要创建部署配置,用于设置 Kubernetes 集群信息、OBS Bucket 等信息,之后才可创建实例。
  1. 复制步骤2 创建的 TKE 集群的集群 ID
  1. 找到 APIServer 配置菜单,获取 Kubeconfig 配置文件。
  1. 登录控制台,录入集群 ID 和 Kubeconfig 等配置,点击下一步。
    1. 云账号 ID:填写当前的云账号主账号 ID,从腾讯云控制台查看。
    2. 部署类型:选择 Kubernetes。
    3. Kubernetes 集群:填写 TKE 集群的集群 ID。
    4. Kubeconfig:填写上一步复制的内容。
    5. DNS ZoneId:填写用于部署 AutoMQ 的 Private DNS 的 ZoneId。
    6. Bucket 名称:填写用于部署 AutoMQ 存储消息的数据 Bucket,支持添加多个 COS Bucket。
  1. 填写云资源信息后,生成数据面 TKE 节点池需要授权的权限。参考控制台指引,创建自定义授权策略 。然后将授权策略绑定到步骤 2 创建的 AutoMQ CAM 角色,并录入该节点池角色名称点击下一步预览
  1. 预览部署配置信息,完成创建 。即可前往实例管理页面创建实例。