创建一个新的安全沙箱容器Kubernetes集群。

请求信息

请求行 RequestLine

POST /clusters HTTP/1.1

特有请求头 RequestHead

无,请参考公共参数。

请求体 RequestBody

{
  "name": "集群名称",
  "cluster_type": "集群类型: ManagedKubernetes",
  "disable_rollback": "true",
  "timeout_mins": "60",
  "region_id": "地域",
  "snat_entry": "是否配置SNATEntry",
  "cloud_monitor_flags": "是否安装云监控插件",
  "public_slb": "是否公网暴露集群endpoint",
  "worker_instance_type": "worker实例规格",
  "num_of_nodes": "worker数量",
  "vpcid": "vpc id",
  "vswitch_ids": "worker 节点虚拟交换机 ID",
  "service_cidr": "服务CIDR",
  "login_password": "节点SSH登录密码,和key_pair二选一",
  "key_pair":"keypair名称,和login_password 二选一",
  "worker_system_disk_category": "Worker系统盘类型",
  "worker_system_disk_size": Worker节点系统盘大小,
  "worker_data_disk_category": "Worker节点数据盘类型",
  "worker_data_disk_size": "Worker节点数据盘大小",
  "worker_data_disk": "是否挂载数据盘 true|false",
  "worker_instance_charge_type":"Worker节点付费类型PrePaid|PostPaid",
  "worker_period_unit":"包年包月单位,Month,Year,只有在PrePaid下生效",
  "worker_period":"包年包月时长,只有在PrePaid下生效",
  "worker_auto_renew":"Worker节点自动续费true|false",
  "worker_auto_renew_period":"Worker节点续费周期",
  "kubernetes_version": "kubernetes 版本",
  "addons": [{"name":"terway-eniip"}],
  "runtime": {"name": "Sandboxed-Container.runv", "version":"1.0.0"},
  "pod_vswitch_ids": "Pod 虚拟交换机 id数组,只支持1个虚拟交换机"
}
表 1. 请求体解释
名称 类型 必须 描述
addons list Kubernetes集群的addon插件的组合。

  • addons的参数:
    • name:必填,addon插件的名称
    • version:可选,取值为空时默认取最新版本
    • config:可选,取值为空时表示无需配置
  • 网络插件:包含Flannel和Terway网络插件,二选一
  • 日志服务:可选。
    • 如果不开启日志服务时,将无法使用集群审计功能。
    • 如果开启日志服务时,在addon 数组中添加{ "name":"aliyun-log-controller"}
cluster_type string 集群类型

安全沙箱容器当前支持的集群类型为ManagedKubernetes

key_pair string keypair名称。和login_password二选一。
kubernetes_version string 安全沙箱容器仅支持1.14.6-aliyun.1及以上版本。
login_password string SSH登录密码。密码规则为8 – 30 个字符,且同时包含三项(大、小写字母,数字和特殊符号)。和key_pair 二选一。
name string 集群名称,集群名称可以使用大小写英文字母、中文、数字、中划线。
num_of_nodes int Worker节点数。范围是[0,300]。
pod_vswitch_ids list Pod 使用的虚拟交换机的ID。
region_id string 集群所在地域ID。
runtime json
  • name:安全容器运行时的名称,目前支持Sandboxed-Container.runv。
  • version:当前版本1.0.0。
snat_entry bool 是否为网络配置SNAT。

  • 当已有VPC能访问公网环境时,设置为 false。
  • 当已有VPC不能访问公网环境时:
    • 设置为True,表示配置SNAT,此时可以访问公网环境。
    • 设置为false,表示不配置SNAT,此时不能访问公网环境。
vpcid string VPC ID。如果不设置,系统会自动创建VPC,系统创建的VPC网段为192.168.0.0/16。

说明 VpcId 和 vswitchid 只能同时为空或者同时都设置对应的值。

vswitch_ids list 交换机ID。List长度范围为[1, 3]。
worker_data_disk bool 是否挂载数据盘,在安全沙箱容器场景下,必须选择true。
worker_data_disk_size string 数据盘大小,单位为GiB。安全沙箱容器场景下,必须大于200。
worker_instance_type string 安全沙箱容器实例规格。

当前支持的实例规格为ecs.ebmg5s.24xlargeecs.ebmc5s.24xlarge

worker_system_disk_category string Worker节点系统盘类型。
worker_system_disk_size int Worker节点系统盘大小,单位为GiB。
cloud_monitor_flags bool 是否安装云监控插件:

  • true:表示安装
  • false:表示不安装
disable_rollback bool 失败是否回滚:

  • true:表示失败不回滚
  • false:表示失败回滚

默认为true,如果选择失败回滚,则会释放创建过程中所生产的资源,不推荐使用false。

endpoint_public_accessbool是否开启公网API Server:

  • true:默认为True,表示开放公网API Server。
  • false:若设置为false, 则不会创建公网的API Server,仅创建私网的API Server。
service_cidr string 服务网段,不能和VPC网段以及容器网段冲突。当选择系统自动创建VPC时,默认使用172.19.0.0/20网段。
tags list 给集群打tag标签:

  • key:标签名称
  • value:标签值
timeout_mins int 集群资源栈创建超时时间,以分钟为单位,默认值 60。
worker_auto_renew bool 是否开启Worker节点自动续费,可选值为:

  • true:自动续费。
  • false:不自动续费。
worker_auto_renew_period int 自动续费周期,当选择预付费和自动续费时才生效,且为必选值:

  • PeriodUnit=Week时,取值:{“1”,“2”, “3”}
  • PeriodUnit=Month时,取值{“1”, “2”, “3”, “6”, “12”}
worker_data_disk_category string 数据盘类型,只在挂载Worker节点数据盘时有效,取值范围:

  • cloud:普通云盘
  • cloud_efficiency:高效云盘
  • cloud_ssd:SSD云盘
worker_instance_charge_type string Worker节点付费类型,可选值为:

  • PrePaid:预付费
  • PostPaid:按量付费

默认为按量付费。

worker_periodint包年包月时长,当worker_instance_charge_type取值为PrePaid时才生效且为必选值,取值范围:

  • PeriodUnit=Week时,Period取值:{“1”, “2”, “3”, “4”}
  • PeriodUnit=Month时,Period取值:{ “1”, “2”, “3”,“4”, “5”, “6”, “7”, “8”, “9”, “12”,“24”, “36”,”48”,”60”}
worker_period_unit string 当指定为PrePaid的时候需要指定周期。可选择为:

  • Week:以周为计时单位
  • Month:以月为计时单位

返回信息

返回行 ResponseLine

HTTP/1.1 202 Accepted

特有返回头 ResponseHead

无,请参考公共参数。

表 2. 返回体 ResponseBody
名称 类型 描述
cluster_id string 集群实例ID。
request_id string 请求ID。
task_id string 任务ID。系统自动分配,用户查询任务状态。

示例

请求示例

POST /clusters HTTP/1.1
<公共请求头>
{
  "name": "test-sandbox", 
  "cluster_type": "ManagedKubernetes",
  "disable_rollback": true,
  "timeout_mins": 60,
  "region_id": "cn-hangzhou",
  "snat_entry": true,
  "cloud_monitor_flags": false,
  "endpoint_public_access": true,
  "worker_instance_type": "ecs.ebmg5s.24xlarge",
  "num_of_nodes": 2,
  "vpcid": "vpc-bp1iybm49v9jgb50xxxxx",
  "vswitch_ids": ["vsw-bp1ue9z93i9zpcblxxxxx"],
  "service_cidr": "192.168.0.0/16",
  "login_password": "xxxxxxxx",
  "worker_system_disk_category": "cloud_efficiency",
  "worker_system_disk_size": 200,
  "worker_data_disk_category": "cloud_efficiency",
  "worker_data_disk_size": 200,
  "worker_data_disk": true,
  "worker_instance_charge_type": "PostPaid",
  "kubernetes_version": "1.14.6-aliyun.1",
  "addons": [{"name":"terway-eniip"}],
  "runtime": {"name": "Sandboxed-Container.runv", "version": "1.0.0"},
  "pod_vswitch_ids":["vsw-bp18nj6xxfoc2ci2xxxxx"]
}

返回示例

HTTP/1.1 202 Accepted
<公共响应头>
{
    "cluster_id": "cb95aa626a47740afbf6aa099b65****",
    "request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1",
    "task_id": "T-5a54309c80282e39ea00002f"
}