
# 基于AI CLI和Skill实现CCE弹性至CCI 2.0
CCE突发弹性引擎（对接CCI）是一种虚拟kubelet，将Kubernetes API扩展到无服务器容器平台CCI，支持在短时高负载场景下将CCE工作负载弹性创建到CCI 2.0服务上。本文介绍如何通过AI CLI工具加载cce-cci-bursting-deployer，以一条提示词完成从集群预检到弹性验证的全流程配置。
#### 约束与限制
#### 环境与功能限制
- 仅支持VPC网络模式的CCE Standard集群和CCE Turbo集群。
- 集群所在子网不能与10.247.0.0/16重叠，否则会与CCI命名空间下的Service网段冲突。
- 暂不支持守护进程集（DaemonSet）。
- 安装bursting插件后会在CCI服务新建一个名为"bursting-"+"集群ID"的命名空间，该命名空间完全由bursting插件管理，不建议直接在CCI服务使用该命名空间。
- 具体Kubernetes版本与限制请参见[CCE 突发弹性引擎（对接 CCI）插件功能概览](https://support.huaweicloud.com/usermanual-cci2/cci_01_0024.html)。
 
#### IAM权限要求
| API Action            | 权限          | 用途                    |
|:---|:---|:---|
| cce:cluster:get       | 获取集群详情      | 读取集群网络规格（VPC、子网、ENI）  |
| cce:addon:list        | 列出插件        | 检查virtual-kubelet安装状态 |
| cce:addon:create      | 创建插件        | 安装virtual-kubelet插件   |
| cce:addon:update      | 更新插件        | 配置bursting参数          |
| vpcep:endpoint:create | 创建 VPCEP    | 创建SWR/OBS接口终端节点       |
| vpcep:endpoint:list   | 列出 VPCEP    | 检查已有终端节点              |
| vpcep:service:list    | 列出 VPCEP 服务 | 发现公共服务详情              |
| vpc:subnet:list       | 列出子网        | 验证子网ID                |
| vpc:routetable:list   | 列出路由表       | 查找OBS网关路由表 ID         |
   
#### 前提条件
- 使用插件前需要在CCI控制台对CCI服务进行授权。
- 如果使用CCI 2.0服务对接CCE突发弹性引擎，请先购买云服务VPCEP，具体操作步骤请参见[环境设置](https://support.huaweicloud.com/usermanual-cci2/cci_01_0005.html)。
- 已安装AI CLI工具并配置华为云凭证环境变量HUAWEI_AK、HUAWEI_SK、HUAWEI_PROJECT_ID。
- 已创建VPC网络模式的CCE Standard集群或CCE Turbo集群，且Kubernetes为1.21及以上版本。
- 已获取OBS VPCEP服务名。OBS终端节点需要精确的obs_endpoint_service_name，该值需要通过华为云工单获取，不能从类似区域的公共服务名推断。如果未提前提供该值，配置流程将在VPCEP创建阶段中断，等待用户补充后才能继续。请在开始配置前通过工单获取该信息并记录，避免流程中断。
 
#### 操作流程
#### 步骤一：创建CCE Turbo集群
创建一个Turbo集群，记录集群 ID 和所在区域。如果已有符合条件的集群，可跳过此步骤。
![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002589409420.png "点击放大")
![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002662955607.png "点击放大")
#### 步骤二：通过 AI CLI 启动弹性配置
cce-cci-bursting-deployer采用预览优先设计：读操作（precheck、verify、discover、diagnose）可立即执行，写操作（VPCEP 创建、插件安装、工作负载部署）先返回预览方案，用户确认后再执行。
在AI CLI中输入以下提示词即可启动全流程：
```
我的CCE集群（集群ID：xxx，区域：cn-north-4）需要启用到CCI 2.0的弹性能力，
请按完整流程执行：precheck → VPCEP → 插件安装 → 冒烟部署 → 验证。
每个写操作先预览，我确认后再执行。
```
![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002619439409.png "点击放大")
Skill会按以下顺序自动推进，每步涉及写操作时暂停等待确认：
1. 集群预检（precheck） 调用huawei_precheck_cce_cci_bursting，自动解析集群网络拓扑、区分cci_subnet_id（Neutron UUID）和vpcep_subnet_id（VPC UUID）的子网角色、检查virtual-kubelet插件状态、执行NodeCheck检查物理节点addon headroom。
   
2. 节点容量检查（NodeCheck） 如果precheck报告物理节点资源不足，Skill会调用huawei_check_cce_cci_node_capacity查看详细容量信息，并预览节点池扩容方案，用户确认后执行扩容。
   
3. VPCEP终端节点创建 调用huawei_ensure_cce_cci_vpcep，自动发现并创建SWR和OBS兼容的接口终端节点。已存在的VPCEP自动复用，不会重复创建。
   ![](https://support.huaweicloud.com/skill-cce/public_sys-resources/caution_3.0-zh-cn.png)
   OBS终端节点需要精确的obs_endpoint_service_name，请通过华为云工单获取，不要猜测类似区域的公共服务名。如果未提前获取该值，Skill会在此步骤中断并提示用户补充。补充obs_endpoint_service_name后，Skill会继续完成OBS VPCEP终端节点创建，并恢复后续流程。
   ![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002589003628.png "点击放大")
   
4. 插件安装 调用huawei_setup_cce_cci_bursting，确认VPCEP依赖就绪后安装或更新virtual-kubelet插件。自动解析并写入区域project ID。该操作幂等：已有插件仅更新配置，不会卸载重装。
   ![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002619615501.png "点击放大")
   
5. 弹性就绪验证 调用huawei_verify_cce_cci_bursting，检查virtual-kubelet插件状态和虚拟节点（bursting-node）是否Ready。如果验证失败，Skill会调用huawei_diagnose_cce_cci_bursting_addon返回结构化诊断报告。
   
6. 冒烟测试部署 调用huawei_discover_cce_cci_smoke_images发现租户自有SWR基础版镜像，然后调用huawei_deploy_cce_cci_smoke_workload创建Deployment。该Deployment自动添加bursting.cci.io/burst-to-cci: enforce标签强制调度到 CCI，不指定image参数时自动选用发现的租户镜像。
   ![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002619625183.png "点击放大")
   
7. 最终验证 再次调用huawei_verify_cce_cci_bursting，确认所有Pod在CCI虚拟节点上达到Running状态，并在CCE控制台可见。
   ![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002619628355.png "点击放大")
   
 
#### 步骤三：配置ScheduleProfile调度策略
弹性基础配置完成后，可通过创建ScheduleProfile控制工作负载调度行为。
| 调度策略        | 说明                   | 适用场景           |
|:---|:---|:---|
| localPrefer | 优先调度到CCE，资源不足时弹性到CCI | 日常弹性扩容         |
| enforce     | 强制调度到CCI             | 测试验证、CI/CD临时任务 |
| auto        | 由调度器打分决定是否弹性到CCI     | 灵活调度           |
   
在AI CLI中输入以下提示词创建ScheduleProfile：
```
请帮我创建一个 ScheduleProfile，命名空间 default，
匹配标签 app=nginx，策略为 localPrefer，
本地最大实例数 20，CCI 缩容优先级 10。
```
![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002588999340.png "点击放大")
![](https://support.huaweicloud.com/skill-cce/public_sys-resources/note_3.0-zh-cn.png)
label策略优先级高于ScheduleProfile。如果Pod同时有bursting.cci.io/burst-to-cci: off标签和enforce profile，Pod不会被调度到CCI。
至此，CCE到CCI 2.0的弹性配置与调度策略全部完成。
![](https://support.huaweicloud.com/skill-cce/zh-cn_image_0000002588999428.png "点击放大")
#### 常见问题与诊断方式
当弹性配置过程中遇到问题，可在AI CLI中直接描述现象，Skill会调用相应诊断工具返回结构化报告。
| 问题现象                                  | 诊断提示词                                                              |
|:---|:---|
| CCI Pod ImagePullBackOff或镜像拉取超时       | CCI Pod拉镜像失败，请诊断                                                   |
| 虚拟节点不Ready                            | 虚拟节点不Ready，请诊断addon                                                |
| addon Pod Pending或反复重启                | addon Pod Pending，帮我检查节点容量                                         |
| addon日志报region mismatch               | addon日志报region不匹配，请诊断                                              |
| addon日志报IAM denied或project ID missing | addon报IAM denied，请诊断                                               |
| OBS网关节点failed，VPCEP创建失败               | OBS VPCEP创建失败，请使用我通过华为云工单获取的服务名：\<实际的obs_endpoint_service_name\>重试 |
   
#### 相关文档
- [CCE容器实例弹性伸缩到CCI服务](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_0133.html)
- [CCE突发弹性引擎（对接 CCI）插件功能概览](https://support.huaweicloud.com/usermanual-cci2/cci_01_0024.html)
- [CCI 2.0快速使用](https://support.huaweicloud.com/usermanual-cci2/cci_01_0025.html)
- [CCI 2.0环境设置](https://support.huaweicloud.com/usermanual-cci2/cci_01_0005.html)
 
