
# CCE突发弹性引擎（对接CCI）
#### 插件介绍
Virtual Kubelet是基于社区Virtual Kubelet开源项目开发的插件，该插件支持用户在短时高负载场景下，将部署在CCE上的无状态负载（Deployment）、有状态负载（StatefulSet）、普通任务（Job）三种资源类型的容器实例（Pod），弹性创建到华为云云容器实例CCI服务上，以减少集群扩容带来的消耗。详情请参见[virtual kubelet](https://support.huaweicloud.com/usermanual-cce/cce_10_0135.html)。
#### 字段说明
表1参数描述 
| 参数     | 是否必选 | 参数类型                                            | 描述       |
|:---|:---|:---|:---|
| basic  | 是    | [表2] object  | 插件基础配置参数 |
| flavor | 是    | [表3] object      | 插件规格参数   |
| custom | 是    | [表4] object | 插件自定义参数  |
   
 表2basic 
| 参数           | 是否必选 | 参数类型   | 描述      |
|:---|:---|:---|:---|
| cluster_id   | 是    | String | 集群ID    |
| cluster_name | 是    | String | 集群的名称   |
| vpc_id       | 是    | String | 虚拟私有云ID |
| network_id   | 是    | String | 子网ID    |
| project_id   | 是    | String | 项目ID    |
   
 表3flavor 
| 参数          | 是否必选 | 参数类型                                                | 描述              |
|:---|:---|:---|:---|
| description | 否    | String                                              | 插件相关的描述信息       |
| name        | 否    | String                                              | 插件规格名称          |
| replicas    | 是    | String                                              | 实例数，默认为：1       |
| resources   | 否    | [resources] object | 容器资源（CPU、内存）配额。 |
   
 表4custom 
| 参数                  | 是否必选 | 参数类型                                                           | 描述                                                                                      |
|:---|:---|:---|:---|
| isInstallProxy      | 否    | String                                                         | 跨服务互通。 true：支持CCE集群中的Pod与CCI集群中的Pod通过Kubernetes Service互通。 |
| subnet_id           | 是    | String                                                         | 子网的IPv4子网ID                                                                             |
| subnets             | 否    | [subnet] object                | 扩展子网配置                                                                                  |
| podDisruptionBudget | 否    | [podDisruptionBudget] object | 插件组件PodDisruptionBudget配置                                                               |
   
 表5resources字段数据结构说明 
| 参数          | 是否必选 | 参数类型   | 描述                                                 |
|:---|:---|:---|:---|
| limitsCpu   | 否    | String | CPU大小限制，单位：m    |
| limitsMem   | 否    | String | 内存大小限制，单位：Mi                                       |
| name        | 是    | String | 插件名称                                               |
| requestsCpu | 否    | String | 申请的CPU大小，单位：m  |
| requestsMem | 否    | String | 申请的内存大小，单位：Mi   |
   
 表6subnet字段数据结构说明 
| 参数       | 是否必选 | 参数类型   | 描述            |
|:---|:---|:---|:---|
| subnetID | 是    | String | 扩展子网的IPv4子网ID |
   
 表7podDisruptionBudget字段数据结构说明 
| 参数             | 是否必选 | 参数类型 | 描述                                        |
|:---|:---|:---|:---|
| create         | 是    | Bool | 是否为插件组件配置podDisruptionBudget              |
| maxUnavailable | 否    | Int  | 对于插件的每个组件，至多有 "maxUnavailable" 个副本在驱逐后不可用 |
   
#### 请求示例
```
{
"metadata": {
"annotations": {
"addon.install/type": "install"
}
},
"spec": {
"clusterID": "ccbe7bdf-4**9-3**b-b**4-0********78",
"version": "1.5.15",
"addonTemplateName": "virtual-kubelet",
"values": {
"basic": {
"cluster_id": "ccbe7bdf-4**9-3**b-b**4-0********78",
"cluster_name": "test-vk",
"vpc_id": "2372199f-e6e0-48be-9437-e774aae6bd70",
"network_id": "863a5e6c-e4f5-45f8-80d9-5090f17a767b",
"project_id": "085a4*********00a9ccf7fba"
},
"flavor": {
"description": "Has only one instance",
"name": "Single",
"replicas": 1,
                "resources": [
                    {
                        "name": "virtual-kubelet",
                        "limitsCpu": "2000m",
                        "requestsCpu": "500m",
                        "limitsMem": "4096Mi",
                        "requestsMem": "512Mi"
                    },
                    {
                        "name": "bursting-virtual-kubelet",
                        "limitsCpu": "2000m",
                        "requestsCpu": "500m",
                        "limitsMem": "4096Mi",
                        "requestsMem": "512Mi"
                    },
                    {
                        "name": "profile-controller",
                        "limitsCpu": "1000m",
                        "requestsCpu": "250m",
                        "limitsMem": "1024Mi",
                        "requestsMem": "256Mi"
                    },
                    {
                        "name": "proxy",
                        "limitsCpu": "2000m",
                        "requestsCpu": "250m",
                        "limitsMem": "4096Mi",
                        "requestsMem": "512Mi"
                    },
                    {
                        "name": "resource-syncer",
                        "limitsCpu": "2000m",
                        "requestsCpu": "250m",
                        "limitsMem": "4096Mi",
                        "requestsMem": "512Mi"
                    },
                    {
                        "name": "bursting-resource-syncer",
                        "limitsCpu": "2000m",
                        "requestsCpu": "500m",
                        "limitsMem": "1024Mi",
                        "requestsMem": "256Mi"
                    },
                    {
                        "name": "webhook",
                        "limitsCpu": "2000m",
                        "requestsCpu": "500m",
                        "limitsMem": "1024Mi",
                        "requestsMem": "256Mi"
                    },
                    {
                        "name": "bursting-webhook",
                        "limitsCpu": "2000m",
                        "requestsCpu": "500m",
                        "limitsMem": "1024Mi",
                        "requestsMem": "256Mi"
                    }
                ]
},
"custom": {
"isInstallProxy": true,
                "subnet_id": "ad821361-288b-4d1f-9309-65aa2809e4fd",
                "subnets": [
                    {
                        "subnetID": "ce374ecf-1559-41ef-8967-9de579b1296012"
                    }
                ]
}
}
}
}
```
