本文中提及 AutoMQ 产品服务方、AutoMQ 服务方、AutoMQ,均特指 AutoMQ HK Limited及其附属公司。
操作流程
步骤 1: 安装环境控制台
参考概述▸,AutoMQ 支持部署到 GKE 集群。在 GKE 部署模式下,首先仍然需要安装 AutoMQ 控制台,再通过控制台界面操作 GKE,将集群部署到 GKE。 在 Google Cloud 上,同时支持基于 Marketplace 和 Terraform 安装环境控制台。- 通过 Marketplace 安装控制台**(推荐)** ,参考从 GCP Marketplace 安装环境▸。
- 通过 Terraform 安装控制台,参考使用 Terraform Module 安装环境▸。
步骤 2:创建 IAM 服务账号
AutoMQ 数据面集群使用专用节点池部署,因此需要为 AutoMQ 节点池绑定专用的 IAM 服务账号以便访问 GCP 云服务。创建 IAM 服务账号参考如下步骤:- 前往 IAM 控制台,点击 Service Accounts ,创建 Service Accounts 。填写自定义服务账号名称。

-
授予服务账号必要的系统角色,系统角色列表如下:
- roles/resourcemanager.tagUser
- roles/artifactregistry.reader
- roles/autoscaling.metricsWriter
- roles/monitoring.metricWriter
- roles/stackdriver.resourceMetadata.writer
- roles/monitoring.viewer
- roles/logging.logWriter

- 完成服务账号创建,记录服务账号的名称和 ID,后续创建节点池需要填写。
步骤 3: 创建 GKE 集群
参考概述▸,用户需要提前创建独立的 GKE 集群分配给 AutoMQ 使用。用户可访问Google Cloud GKE 产品控制台按下方步骤操作。设置 GKE 集群类型和地域
- 登录 Google Cloud GKE 控制台。点击创建集群 。

- 选择集群类型为Standard: You manage your cluster。

-
填写集群名称、地域信息:
- Location Type: 选择 Regional ,这样后续可以创建三可用区的 AutoMQ 实例。
- Target Release Channel: 建议选择稳定版本。

设置 GKE 集群网络
- 切换至Networking 配置 ,选择目标 VPC 和子网 。
注意:Google Cloud 中多个子网之间默认的 Fire Wall 策略是默认无法互通。因此建议将 GKE 和 AutoMQ 环境控制台安装在相同的子网内。如果 GKE 和 AutoMQ 环境控制台以及 Kafka 客户端应用不在相同的子网,则需要前往 VPC 设置防火墙策略。如需手工添加防火墙策略,建议对 AutoMQ 环境控制台所在的子网 IP 范围全部放行。端口列表为:9090,9092-9093,9102-9103,22。

-
修改网络配置。需要确保设置如下选项:
- 开启 VPC-native traffic routing 。
- 开启 Dataplane V2 。

设置 GKE 集群公共节点池
切换到NODE POOLS 配置项, 配置默认节点池,用于部署GKE 系统组件。调整节点数量每个可用区 1 个节点,保证总节点数大于等于 3 即可。作为 GKE 系统组件部署的节点池除了图上展示的配置需要调整以外,其他选项可以采用默认配置。
添加 AutoMQ 专用节点池
参考概述▸,用户需要创建 AutoMQ 独享的节点池,以便后续部署实例申请机器。因此,在创建 GKE 集群时,需要创建 2 个节点池,一个是公共节点池用于部署 GKE 系统组件;一个是 AutoMQ 专用节点池,用于部署 AutoMQ 集群。
重要:如果 GKE 集群开启了Workload Identity 特性,则默认会使用 GKE 元数据服务器,此时会影响 AutoMQ 的 Pod 访问节点的服务账号。此时需要在节点池创建完成后,关闭 GKE 元数据服务器。
- 点击上方添加节点池 按钮,配置 AutoMQ 专用节点池。

- 开启 Cluster AutoScaler。 并配置为Balanced 类型均衡**,** 大小限制设置为 Total limits ,设置合适的上限(建议上限设置 50-100)。

- 在Nodes 标签页中,参考概述▸配置符合 AutoMQ 要求的机型列表。

- 在Security 标签页中,绑定步骤 2 创建的 AutoMQ 节点池专用的服务账号 。


- 在元数据标签页中,设置 AutoMQ 独占使用的污点。污点的键是dedicated,值是 automq,效果是 NO_SCHEDULE。

点击创建 GKE 集群
- 检查所有配置无误后,点击下方 Create,创建 GKE 集群 。
- GKE 集群创建完成后,复制集群 Name 。用于步骤 3 配置使用。

- 查看 GKE 集群列表找到集群,对该集群添加 Tag,用于约定后续 AutoMQ 控制台的管理权限。
AutoMQ 控制台仅支持管理包含 automqAssigned: automq 的 GKE 集群。因此,需要对 GKE 集群添加上述标签。

关闭 GKE 元数据服务器(GKE 集群开启 Workload Identity 时需要)
如果 GKE 集群开启了Workload Identity 特性,则默认会使用 GKE 元数据服务器,此时会影响 AutoMQ 的 Pod 访问节点的服务账号。此时需要在节点池创建完成后,关闭 AutoMQ 节点池的 GKE 元数据服务,使用默认的 GCE 服务。- 查看 AutoMQ 专用节点池,点击编辑。
- 查看安全选项,关闭 GKE 元数据服务器 。

- 点击保存提交,GKE 会重新更新所有节点的配置。
部署 AutoMQ Placeholder Deployment
为 AutoMQ 使用的节点组创建 Placeholder Deployment 用于加速节点故障场景的 Failover 速度。工作原理:Placeholder Deployment 的作用是在 Kubernetes 集群的节点上部署一个低优先级的“占位符”应用,预先占用若干节点。当 AutoMQ 集群的 Pod 所在节点出现故障时,可以快速抢占该 Placeholder 的节点,实现快速恢复。
automq-low-priority.yaml
的优先级申明文件,执行以下命令,创建优先级申明。
automq-gke-placeholder.yaml
文件。需要根据实际部署的节点池,修改其中的参数:
-
metadata.name
: 建议修改成具有意义的 Placeholder 名称,例如placeholder-for-nodegroup-A
。 -
replicas
: Placeholder pod 预留数量,默认为 1,如果是多可用区部署,建议每个可用区保留 1 台机器,即数量设置为可用区的数量。 -
affinity.nodeAffinity
: 用于选择 Placeholder 部署的节点,需要修改matchExpressions
中的key
和values
来精确匹配 AutoMQ 的节点池。在示例的 yaml 文件中提供 2 个选项筛选节点。-
cloud.google.com/gke-nodepool
:在 GKE 上使用cloud.google.com/gke-nodepool
标签筛选指定的节点池。 -
node.kubernetes.io/instance-type
:在 GKE 上使用node.kubernetes.io/instance-type
标签筛选指定的节点机型。
-
-
resources
:- limits 的 cpu/memory 与 Node Group 具体的规格保持一致,比如2C16G 。
- requests 的 cpu/memory 略小于 Node Group 具体的规格,比如实际占用 3/4 比例,确保 Placeholder Pod 能调度到额外 Node 并保证独占效果,避免集群其他 Pod 非预期占用导致实际 Failover 时因资源不足调度失败。
Running
,并观察它是否被调度到了期望的节点上。
步骤 4:进入环境控制台,创建部署配置
首次进入 AutoMQ BYOC 控制台,需要创建部署配置,用于设置 Kubernetes 集群信息、GCS Bucket 等信息,之后才可创建实例。注意:如果AutoMQ 环境控制台(Kafka 客户端应用)和 GKE 集群 部署在不同的 VPC 子网 ,则需要用户前往 VPC 防火墙页面添加通行规则。否则因网络不通,会影响实例的创建和使用。添加的防火墙策略,建议将环境控制台所在的子网 IP 来源全部放行。端口列表为:9090,9092-9093,9102-9103,22。
- 复制步骤3 创建的 GKE 集群的集群名称 。
-
登录控制台,录入集群名称等配置,点击下一步。
- 部署类型:选择 Kubernetes。
- Kubernetes 集群:填写 GKE 集群的集群名称。
- DNS ZoneId:填写用于部署 AutoMQ 的 Private DNS 的 ZoneId。
- Bucket 名称:填写用于部署 AutoMQ 存储消息的数据 Bucket,支持添加多个 GCS Bucket。

- 填写云资源信息后,生成数据面 GKE 节点池需要授权的权限。参考控制台指引,创建自定义授权策略 。然后将授权策略绑定到步骤 2 创建的 AutoMQ IAM 委托,并录入该节点池委托名称 ,点击下一步预览 。

- 预览部署配置信息,完成创建 。即可前往实例管理页面创建实例。