> ## 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.

# 部署到百度云 CCE

> AutoMQ 通过100% Kafka兼容API，在百度云CCE上实现云原生部署，提供高效可扩展的消息传递服务。

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

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

## 操作流程

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

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

<Tip>
  **注意：**

  在 CCE 上 部署 AutoMQ 数据面集群，需要从公网环境拉取 Docker 镜像和 Helm Chart 产物。因此需要 VPC 环境支持通过 SNAT 等方式出公网。
</Tip>

在百度云上，需要通过云主机 BCC 镜像直接安装 AutoMQ 控制台。安装 AutoMQ 控制台的步骤如下：

1. AutoMQ 控制台通过 IAM 角色授权访问云资源。因此在安装控制台机器之前，需要为 AutoMQ 控制台授予云资源的访问权限。操作步骤如如下，前往[ IAM 控制台](https://console.bce.baidu.com/iam/#/account/role/list)按如下步骤操作：

   1. **创建自定义授权策略，** 授权策略内容参考下方文档。

   2. **创建自定义的 IAM 角色** ，选择授权类型为**云产品 》BCC 实例** 。

   3. **将授权策略附加到 IAM 角色** 。

```json theme={null}

{
  "id": "policy_8dc24a2639514662a4cc129f47dcb310",
  "version": "v2",
  "accessControlList": [
    {
      "service": "bce:cce",
      "region": "bj",
      "resource": [
        "*"
      ],
      "effect": "Allow",
      "permission": [
        "READ"
      ]
    },
    {
      "service": "bce:ld",
      "region": "bj",
      "resource": [
        "*"
      ],
      "effect": "Allow",
      "permission": [
        "READ",
        "OPERATE",
        "FULL_CONTROL"
      ]
    },
    {
      "service": "bce:network",
      "region": "bj",
      "resource": [
        "*"
      ],
      "effect": "Allow",
      "permission": [
        "READ",
        "OPERATE",
        "FULL_CONTROL"
      ]
    },
    {
      "service": "bce:bos",
      "region": "*",
      "resource": [
        "*"
      ],
      "effect": "Allow",
      "permission": [
        "ListBuckets"
      ]
    },
    {
      "service": "bce:bos",
      "region": "*",
      "resource": [
        "*"
      ],
      "effect": "Allow",
      "permission": [
        "READ",
        "FULL_CONTROL",
        "LIST"
      ]
    }
  ]
}

```

2. 前往 [BCC 控制台](https://console.bce.baidu.com/bcc/#/bcc/instance/list)，点击**创建实例** 。按照如下建议设置相关参数，完成 BCC 实例创建。

   1. **地域和可用区：** 选择未来部署数据面集群所在的地域和可用区，保证VPC 内网通信。

   2. **实例配置：** 建议至少选择 2 核 8 G的实例规格。

   3. **镜像类型：** 选择自定义镜像，请提前联系 AutoMQ 技术人员获取 AutoMQ 控制台的主机镜像。

   4. **存储：** 除去默认的系统盘之外还需要额外创建一块至少 40GB 的云磁盘（推荐通用型 SSD）。

   5. **私有网络：** 选择数据面未来部署的 VPC，即使用 AutoMQ 的应用所在的 VPC。

   6. **安全组：** 自行选择，需要注意设置入站规则，允许 8080 端口入规则。AutoMQ 控制台通过 8080 端口暴露 Web 服务。

3. 实例创建完成后，选中该 BCC 实例，点击右侧**更多操作** ，**设置 IAM 角色** 。将上一步创建的 IAM 角色绑定到 AutoMQ 控制台所在的 BCC 实例。

4. **登录控制台** ，即可进行下一步的初始化配置。

<Tip>
  百度云 AutoMQ 控制台首次访问的初始用户名为 admin，初始密码为 BCC 实例的实例 ID。首次登录后需要立即修改密码。
</Tip>

### 步骤 2：创建 CCE 集群

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

1. 登录百度云 [CCE 控制台](https://console.bce.baidu.com/cce)。点击**创建集群** ，选择**标准托管集群。**

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/1.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=b592380796860775adbeb381cf5e5f09" width="3122" height="1502" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/1.webp" />

2. 按照建议选择计费模式、版本，**集群规模建议至少选择 L50节点** 。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/2.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=1ad35a61f9d4b678e5fdeac6c6d86fb8" width="2002" height="1464" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/2.webp" />

网络配置部分需要参考下方要求设置：

* **私有网络：** 选择应用所在的 VPC网络，和控制台所在的网络保持一致。

* **API Server 访问：** 选择自动创建负载均衡器。

* **API Server 子网：** 选择预期安装的子网。

* **容器子网：** 选择用于部署 AutoMQ 实例的子网，建议选择单个子网或三个子网。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/3.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=b65b2144ba27d372561e6e0254a28b18" width="2592" height="1560" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/3.webp" />

3. 新建节点，用于部署 Kubernetes 系统组件。添加 Worker 节点时注意如下配置：

   * 节点数量：建议至少 2 个节点。

   * 节点规格：建议至少 4C8G 的 BCC 实例规格。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/4.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=71fccc8cd8935e4499aea1eba153e1d9" width="2786" height="932" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/4.webp" />

4. 点击创建集群，等待几分钟创建完成。

5. 集群创建完成后，进入集群详情，**运维和管理** ，组件管理，安装**CCE CSI CDS 存储插件** 。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/5.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=076239e9b4252f1e6268b9c36d95ae2b" width="3488" height="1140" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/5.webp" />

### 步骤 3：创建 IAM 角色和  AutoMQ 专用 CCE 节点池

参考[概述▸](/zh/automq-cloud/deploy-automq-on-kubernetes/overview)，用户需要创建 AutoMQ 独享的节点池以及对应的 IAM 角色，以便后续部署实例。参考以下步骤创建 IAM 角色以及符合要求的节点池。

1. 前往[ IAM 控制台](https://console.bce.baidu.com/iam/#/account/role/create)，创建 IAM 角色，暂不授权。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/6.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=70ba359eacea3b642f1b9197e3cb80a1" width="2604" height="1638" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/6.webp" />

2. 进入步骤 2 创建的 CCE 集群详情，点击**节点管理菜单** ，**创建节点组** 。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/7.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=e191ec86d10c0aeeb222b8280cc95184" width="2246" height="928" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/7.webp" />

3. 参考下面的文档设置自定义参数，完成节点组创建。对于表格中没有说明的参数，请按照默认推荐值不要修改。

<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 集群需要访问 对象存储、网络等云服务，因此需要授权节点池上述操作权限。需要用户创建一个独立的 IAM 角色，选择刚刚创建的 IAM 角色。</li></ul><Danger><br />**注意** ：<br />创建 AutoMQ 专属的节点组时，建议创建新的 IAM 角色，后续在 AutoMQ 控制台为该角色分配相应的操作权限。如果复用了其他 IAM 角色可能会造成权限溢出。<br /></Danger><br /> |
| **污点**<br />    | <ul><li>说明：为防止 Kubernetes 集群内其他工作负载占用 AutoMQ 独占节点的资源，需要对 AutoMQ 独占节点池打上污点。</li><li>**污点的键是dedicated，值是 automq，效果是 NO\_SCHEDULE。**</li></ul>                                                                                             |

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/8.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=a0e13c7c3815fb66565e7facc3adcf1d" width="2434" height="1662" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/8.webp" />

4. 为节点池绑定 IAM 角色信息，角色信息来自 上一步**创建的角色名** 。同时为节点池添加污点，**污点的键是dedicated，值是 automq，效果是 NO\_SCHEDULE。**

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/9.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=b887e6479223dc222c010e205a874cd4" width="2372" height="1520" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/9.webp" />

5. 点击创建节点组。

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-cce-baidu-placeholder.yaml)，下载  `automq-cce-baidu-placeholder.yaml`  文件。需要根据实际部署的节点池，修改其中的参数：

* `metadata.name` : 建议修改成具有意义的 Placeholder 名称，例如  `placeholder-for-nodegroup-A` 。

* `replicas` : Placeholder pod 预留数量，默认为 1，如果是多可用区部署，建议每个可用区保留 1 台机器，即数量设置为可用区的数量。

* `affinity.nodeAffinity` : 用于选择 Placeholder 部署的节点，需要修改  `matchExpressions`  中的  `key`  和  `values`  来精确匹配 AutoMQ 的节点池。在示例的 yaml 文件中提供 2 个选项筛选节点。

  * `ccs.bj.baidubce.com/node-pool` ：在 CCE 上使用  `ccs.bj.baidubce.com/node-pool`  标签筛选指定的节点池。

  * `node.kubernetes.io/instance-type` ：在 CCE 上使用  `node.kubernetes.io/instance-type`  标签筛选指定的节点机型。

* `resources` :

  * limits 的 cpu/memory 与 Node Group 具体的规格保持一致，比如2C16G  。

  * requests 的 cpu/memory 略小于 Node Group 具体的规格，比如实际占用 3/4 比例，确保 Placeholder Pod 能调度到额外 Node 并保证独占效果，避免集群其他 Pod 非预期占用导致实际 Failover 时因资源不足调度失败。

**需要修改的参数片段，参考以下 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: ccs.bj.baidubce.com/node-pool
                  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-cce-baidu-placeholder.yaml

```

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

```bash theme={null}

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

```

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

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

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

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/10.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=e8a35f3161490629e053fc493225e2d9" width="3754" height="782" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/10.webp" />

2. 找到查看集群凭证菜单，**获取 Kubeconfig** 配置文件。

3. 登录控制台，录入集群 ID 和 Kubeconfig等配置，点击下一步。

   1. 部署类型：选择 Kubernetes。

   2. Kubernetes 集群：填写 CCE 集群的集群 ID。

   3. Kubeconfig：填写上一步复制的内容。

   4. DNS ZoneId：填写用于部署 AutoMQ 的内网 DNS 的 ZoneId。

   5. Bucket 名称：填写用于部署 AutoMQ 存储消息的数据 Bucket，支持添加多个 BOS Bucket。

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/11.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=643af309e18b83345e95e811af4a2b6f" width="2316" height="1756" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/11.webp" />

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

<img src="https://mintcdn.com/automq/bHX28zrJj6IX0aza/zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/12.webp?fit=max&auto=format&n=bHX28zrJj6IX0aza&q=85&s=4a4b53ec9c52709fb5b962d3d79057e8" width="2222" height="1844" data-path="zh/automq-cloud/deploy-automq-on-kubernetes/deploy-to-baidu-cloud-cce/12.webp" />

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