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 中的 key 和 values 来精确匹配 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. 预览部署配置信息,完成创建 。即可前往实例管理页面创建实例。