概述
AutoMQ Cloud BYOC 环境支持部署到 AWS EKS、GCP GKE、阿里云 ACK、华为云 CCE 等各主流云厂商提供的 Kubernetes 托管平台。本文介绍 AutoMQ 部署到 Kubernetes 平台的基本概念、架构和约束。
本文中提及 AutoMQ 产品服务方、AutoMQ 服务方、AutoMQ,均特指 AutoMQ HK Limited及其附属公司。
部署架构
AutoMQ Cloud BYOC 环境部署到 Kubernetes 的架构如下图所示:
说明:
AutoMQ BYOC 环境中,控制台组件仍然部署在 Kubernetes 集群外,一般使用云厂商虚拟机部署,通过获取 Kubernetes 集群的管理权限 Config 操作部署安装。
用户通过 AutoMQ 控制台提供的 WebUI 或者 Terraform Provider 管理环境内实例的生命周期。
AutoMQ 数据面实例(集群)部署到用户指定的 Kubernetes 集群中。
每个环境可以同时支持多个实例,并支持将多个实例部署到不同的 Kubernetes 集群中(开发中,当前暂时支持 1 个 Kubernetes 集群)。
约束和限制
将 AutoMQ 部署到 Kubernetes 上,用户需要遵循如下约束和限制,因用户操作不当,会导致集群部署和变更失败。
约束 1: 用户需提供符合要求的独占 Kubernetes 集群
AutoMQ 要求独占的 Kubernetes 集群,不得和其他应用系统共享 Kubernetes 集群,原因如下:
Kubernetes 的网络隔离风险: AutoMQ 面向高吞吐数据传输场景,集群对网络吞吐要求高。Kubernetes 集群内不同 Pod 间网络隔离并不彻底。AutoMQ 需要独立的 Kubernetes 集群,以避免和用户的其他业务系统相互影响。
运维授权隔离: AutoMQ 所在的 Kubernetes 集群需要提供代运维授权(授权 AutoMQ 服务方访问该集群)。AutoMQ 需要独立的 Kubernetes 集群,以避免应用系统越权。
支持在 Kubernetes 集群内部署多个 AutoMQ 实例(集群)。Kubernetes 集群分配一般建议相同 VPC 下的相同业务线共享 Kubernetes 集群。
约束 2:用户需按要求创建节点池、提供符合要求的机型并保证节点供给
AutoMQ 要求用户按要求创建节点池,AutoMQ 控制台创建实例时会检查用户提供的节点池是否符合要求。具体要求如下:
- 机型符合要求: AutoMQ 在不同的云厂商选择相应的网络优化型虚拟机实例,并提供最佳的集群性能。创建节点池必须圈选符合要求的机型。具体机型信息参考下方表格:
云厂商 | 允许的机型列表 |
---|---|
Google Cloud | 小规格机型:
|
华为云 | 小规格机型:
大规格机型:
|
节点池角色授权要求: AutoMQ 集群在运行时需要访问对象存储、EBS 等服务。因此,用户必须为节点池授予相应的角色和权限,并确保不会修改和取消授权。
可用区(子网要求): AutoMQ 同时支持单可用区实例、三可用区实例。因此,用户需要为单可用区和三可用区创建对应的节点池,不可混用。
举例:用户需要创建三个 AutoMQ 实例,分别是实例1(可用区 A),实例2(可用区 B),实例3(可用区 A、B、C)。则用户需要创建三个节点池,分别选择可用区 A、可用区 B 和可用区 A+B+C。