> ## Documentation Index
> Fetch the complete documentation index at: https://docs.automq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 部署到腾讯云 TKE

> AutoMQ 提供 Kafka 兼容性和云原生可扩展性。详细步骤教您如何在腾讯云 TKE 上部署 AutoMQ。享受高效部署流程。

参考 [概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，AutoMQ 支持部署到 Kubernetes 上。本文介绍 AutoMQ 部署到腾讯云 TKE 平台的安装过程。

<Danger>
  本文中提及 AutoMQ 产品服务方、AutoMQ 服务方、AutoMQ，均特指 AutoMQ HK Limited及其附属公司。
</Danger>

## 操作流程

### 步骤 1：安装环境控制台

参考[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，AutoMQ 支持部署到 TKE 集群。在 TKE 部署模式下，首先仍然需要安装 AutoMQ 控制台，再通过控制台界面操作 TKE，将集群部署到 TKE。

腾讯云支持基于云应用安装环境控制台。参考[从腾讯云云应用安装环境▸](/zh/automq-cloud/getting-started/install-byoc-environment/tencent-cloud/install-env-via-tencent-marketplace)。

AutoMQ 控制台安装完成后，需要从控制台界面获取环境控制台地址、初始用户名、密码。

<Tip>
  **注意：**

  部署 AutoMQ 数据面集群需要从公网环境拉取 Docker 镜像和 Helm Chart 产物。因此需要 VPC 环境支持通过 SNAT 等方式出公网。配置公网 SNAT 的操作说明请参考本文档附录[从腾讯云云应用安装环境▸](/zh/automq-cloud/getting-started/install-byoc-environment/tencent-cloud/install-env-via-tencent-marketplace)。
</Tip>

### 步骤 2：创建 CAM 角色

AutoMQ 数据面集群需要独立的节点池，该节点池需要绑定独立的 CAM 角色用于访问云资源的权限验证。因此，在创建 TKE 集群之前，需要前往 CAM 控制台创建自定义角色。操作步骤如下：

1. 前往[ CAM 控制台](https://console.cloud.tencent.com/cam/overview)，点击角色，**新建角色，** 选择**腾讯云产品服务** 。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/1.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=733f19385ba77b8d7e0d8892aa3cf943" width="2482" height="1266" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/1.webp" />

2. 选择产品服务 **云服务器 CVM** 。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/2.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=437a38ba2c814367f554d3050f359e98" width="1994" height="1746" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/2.webp" />

3. 输入自定义的角色名称，点击完成，创建自定义角色。记录角色名称，后续步骤 4 创建 TKE专属节点池需要配置角色名。

### 步骤 3：创建 TKE 集群

参考[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，用户需要提前创建独立的 TKE 集群分配给 AutoMQ 使用。用户可访问腾讯云 TKE 产品控制台按下方步骤操作。

1. 登录腾讯云 [TKE 控制台](https://console.cloud.tencent.com/tke2)。点击**创建集群** 。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/3.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=732dc5690fc1f663fbb05fbdba43e872" width="2360" height="782" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/3.webp" />

2. 选择集群类型为**标准集群。**

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/4.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=6796ac6989b2cf6177a502e267d7caee" width="2290" height="1350" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/4.webp" />

3. **填写基础配置** ，注意集群规格等信息，建议**至少选择 L20** ，并开启自动升配。其他参数保持默认值即可。

<Info>
  建议至少选择 L20，管理 20 个左右节点，并开启自动升配。防止因 TKE 能力不足导致无法扩缩容。
</Info>

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/5.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=c2c331c7152aea3af0e3c4f4998a96f1" width="2312" height="1470" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/5.webp" />

4. **填写网络配置，** 选择正确的 VPC，网络插件选择推荐的 VPC-CNI，容器子网选择所有需要的可用区。

<img src="https://mintcdn.com/automq/MqmiaM1egnhK5htd/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/6.webp?fit=max&auto=format&n=MqmiaM1egnhK5htd&q=85&s=384e3569538ec0c67c773f1c20522781" width="2402" height="1390" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/6.webp" />

5. 点击下一步，关闭非必须的 Prometheus 插件，**完成创建** 。

<img src="https://mintcdn.com/automq/MqmiaM1egnhK5htd/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/7.webp?fit=max&auto=format&n=MqmiaM1egnhK5htd&q=85&s=f076d0412f776388769a1beac9a83dd0" width="2616" height="566" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/7.webp" />

### 步骤 4：创建 TKE 公共节点池

参考[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，用户需要为 TKE 集群 创建一个公共节点池，用于部署  TKE 系统组件。参考以下步骤创建符合要求的节点池。

1. 进入步骤 2 创建的 TKE 集群详情，点击**节点菜单** ，**创建节点池** 。

<img src="https://mintcdn.com/automq/MqmiaM1egnhK5htd/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/8.webp?fit=max&auto=format&n=MqmiaM1egnhK5htd&q=85&s=e7e1d2f43416c107b523cfa22394906c" width="2862" height="1300" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/8.webp" />

2. **选择普通节点池类型，** 参考下面的文档设置自定义参数，完成节点池创建。对于表格中没有说明的参数，请按照默认推荐值不要修改。

<img src="https://mintcdn.com/automq/MqmiaM1egnhK5htd/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/9.webp?fit=max&auto=format&n=MqmiaM1egnhK5htd&q=85&s=ab298131be2486c265ada8569513e41a" width="2230" height="1372" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/9.webp" />

| **设置参数**<br />   | **取值说明**<br />                                      |
| ---------------- | --------------------------------------------------- |
| **节点池名称**<br />  | <ul><li>说明：按照业务语义，填写一个有区分度的名称即可。</li></ul>          |
| **机型配置**<br />   | <ul><li>说明：建议至少选择 2c4G 的机型，用于部署 TKE 系统组件。</li></ul> |
| **初始节点数量**<br /> | <ul><li>说明：根据 TKE 集群的规模，建议至少选择 2-3 台。</li></ul>     |

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

参考[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，用户需要为 AutoMQ 创建符合要求的专用节点池，以便后续部署实例申请机器。参考以下步骤创建符合要求的节点池，并完成委托授权。

1. 进入步骤 2 创建的 TKE 集群详情，点击**节点菜单** ，**创建节点池** 。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/10.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=b36da39c81f1da6c869e53fc83232a59" width="2862" height="1300" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/10.webp" />

2. **选择普通节点池类型，** 参考下面的文档设置自定义参数，完成节点池创建。对于表格中没有说明的参数，请按照默认推荐值不要修改。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/11.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=9852f3dc8b706062f77e0c01fadd3e08" width="2230" height="1372" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/11.webp" />

<Tip>
  创建节点池时，只支持**单可用区** 或者**三可用区** ，如果选择了其他数量的可用区，后期无法创建实例。
</Tip>

| **设置参数**<br />   | **取值说明**<br />                                                                                                                                                                                                            |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **节点池名称**<br />  | <ul><li>说明：按照业务语义，填写一个有区分度的名称即可。</li></ul>                                                                                                                                                                                |
| **机型配置**<br />   | <ul><li>说明：指定节点池的机型，请参考文档[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)。填写机型。</li></ul><Danger><br />注意：AutoMQ 必须运行在指定机型的 VM 中，创建节点池如果选择了非预设的机型，后续无法使用该节点池。<br /></Danger><br />                            |
| **支持子网**<br />   | <ul><li>说明：根据实际 AutoMQ 集群的需求，选择**一个** 或**三个可用区子网** 。</li></ul><Danger><br />注意：<br />AutoMQ 要求后续创建集群的可用区和节点池必须完全一致。因此，如果需要创建单可用区的 AutoMQ 集群，则此处创建单可用区节点池；如果需要创建三可用区 AutoMQ 集群，则此处同样创建三可用区节点池，两者不可混用。<br /></Danger><br /> |
| **CAM 角色**<br /> | <ul><li>说明： AutoMQ 集群需要访问 COS、网络等云服务，因此需要授权节点池上述操作权限。**填写步骤 2 创建的 CAM 角色。**</li></ul>                                                                                                                                     |
| **污点**<br />     | <ul><li>说明：为防止 Kubernetes 集群内其他工作负载占用 AutoMQ 独占节点的资源，需要对 AutoMQ 独占节点池打上污点。</li><li>**污点的键是dedicated，值是 automq，效果是 NO\_SCHEDULE。**</li></ul>                                                                               |

3. **节点启动配置，** 选择一个或三个子网，初始数量为 1。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/12.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=840c63d61271fb0959fc9dc804d04599" width="2830" height="854" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/12.webp" />

4. **填写运维功能设置，** 选择开启弹性伸缩，节点数量设置至少为 1，弹性上限建议和 TKE 集群规格以及未来需要部署 AutoMQ 的机器规模一致。实例创建策略，选择多可用区打散。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/13.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=3be7c17201b19abf2822783b6401072f" width="2120" height="936" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/13.webp" />

5. 为**节点池绑定 CAM 角色** ，信息来自 **安装控制台后的输出参数** 。然后**点击创建节点池。** 添加 AutoMQ 独占的污点。**污点的键是dedicated，值是 automq，效果是 NO\_SCHEDULE。**

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/14.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=4455b2b8800b5fb8831fe25d44825350" width="2076" height="1544" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/14.webp" />

6. 为 AutoMQ 使用的节点组创建 Placeholder Deployment 用于加速节点故障场景的 Failover 速度。

<Tip>
  **工作原理：**

  Placeholder Deployment 的作用是在 Kubernetes 集群的节点上部署一个低优先级的“占位符”应用，预先占用若干节点。当 AutoMQ 集群的 Pod 所在节点出现故障时，可以快速抢占该 Placeholder 的节点，实现快速恢复。
</Tip>

部署 Placeholder Deployment 可以通过 kubectl 命令或者 Kubernetes 控制台进行操作。

首先[点击链接](http://download.automq.com/k8s-placeholder/automq-low-priority.yaml)，下载名为 `automq-low-priority.yaml` 的优先级申明文件，执行以下命令，创建优先级申明。

```bash theme={null}

kubectl apply -f automq-low-priority.yaml

```

然后[点击链接](http://download.automq.com/k8s-placeholder/automq-tke-placeholder.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 文件：**

```yaml theme={null}

metadata:
  # TODO: Replace with your custom name
  name: {Replace with your custom placeholder deployment name}
spec:
  # TODO: Replace with your custom node nums
  replicas: 1
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                - key: eks.tke.cloud.tencent.com/nodegroup-id
                  operator: In
                  values:
                  # TODO: Replace with your custom Node Pool Name
                  - "Replace with your custom Node Pool Name"
                - key: node.kubernetes.io/instance-type
                  operator: In
                  values:
                  # TODO: Replace with your custom Node Pool VM Size
                  - "Replace with your custom Node Pool VM Size"
      containers:
        - name: placeholder
          resources:
          # TODO: Replace with your custom Memory and CPU size
            limits:
              cpu: 2000m
              memory: 16Gi
            requests:
              cpu: 1000m
              memory: 12Gi               

```

修改完成后，执行以下命令，安装 Placeholder。

```bash theme={null}

kubectl apply -f automq-tke-placeholder.yaml

```

执行完成后，调用以下命令检查 Placeholder Pod 的状态，确保 Placeholder Pod 状态为  `Running` ，并观察它是否被调度到了期望的节点上。

```bash theme={null}

kubectl get pods -l app=low-priority-placeholder -o wide

```

### 步骤 6：进入环境控制台，创建部署配置

首次进入 AutoMQ BYOC 控制台，需要创建部署配置，用于设置 Kubernetes 集群信息、OBS Bucket 等信息，之后才可创建实例。

1. 复制步骤2 创建的 TKE 集群的**集群 ID** 。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/15.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=5e60f6eb77e20a87abf725a3d29c36b1" width="2292" height="1014" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/15.webp" />

2. 找到 APIServer 配置菜单，**获取 Kubeconfig** 配置文件。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/16.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=d7b39cf1dec907b63fb3f402905d23c5" width="2654" height="1082" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/16.webp" />

3. 登录控制台，录入集群 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。

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/17.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=db478510203c1de40d34c6d58f896988" width="2014" height="1836" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/17.webp" />

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

<img src="https://mintcdn.com/automq/VQt1Hp9n4SOB-kqg/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/18.webp?fit=max&auto=format&n=VQt1Hp9n4SOB-kqg&q=85&s=52b5690ccc0a451dc3bce85073312e49" width="1682" height="1848" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-tencent-cloud-tke/18.webp" />

5. 预览部署配置信息，**完成创建** 。即可前往实例管理页面创建实例。
