创建BEC服务
更新时间:2023-09-15
接口描述
本接口用于创建BEC容器服务,在用户开通BEC服务之后进行部署BEC服务。
请求结构
POST /v1/service/create HTTP/1.1
Host: bec.baidubce.com
Authorization: authorization string
{
"serviceName": "baidu-bec",
"paymentMethod": "postpay",
"containerGroupName": "baidu-bec-pod",
"needPublicIp": true,
"needIpv6PublicIp": false,
"bandwidth": 100,
"containers": [{
"name": "containers1",
"imageAddress": "nginx",
"imageVersion": "v1.0",
"cpu": 4,
"memory": 8,
"workingDir": "/home",
"commands": [
"/bin/sh"
],
"args": [
"sleep 3600"
],
"ports": [{
"containerPort": 80,
"protocol": "TCP"
}],
"envs": [{
"name": "name",
"value": "baidu"
}],
"volumeMounts": [{
"name": "baidu-config",
"readOnly": false,
"mountPath": "/temp"
}]
}],
"tags": [{
"tagKey": "service",
"tagValue": "bec"
}],
"deployInstances": [{
"regionId":"cn-shanghai-ct",
"region":"EAST_CHINA",
"city":"SHANGHAI",
"serviceProvider": "CHINA_TELECOM",
"replicas": 1
}],
"volume": {
"secret": [{
"name": ""
}],
"configMap": [{
"name": "baidu-config"
}],
"volumeClaimTemplates": [{
"name": "volume",
"storageSize": 1,
"diskType": "NVME"
}],
"emptyDir": [{
"name": ""
}]
},
"imageRegistrySecrets": [{
"name": ""
}],
"hostAliases":[{
"ip":"x.x.x.x",
"hostnames":["xxxx","xxxxx"]
}],
"dnsPolicy":"None",
"dnsConfig":{
"nameservers":["x.x.x.x","x.x.x.x"]
}
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
serviceName | String | 是 | RequestBody参数 | 服务名称 |
paymentMethod | String | 否 | RequestBody参数 | 付费方式,只支持后付费postpay |
containerGroupName | String | 是 | RequestBody参数 | 容器组名称 |
needPublicIp | Boolean | 否 | RequestBody参数 | 是否购买公网IP。true:购买;false:未购买;缺省为false。 |
needIpv6PublicIp | boolean | 否 | RequestBody参数 | 是否开通IPv6公网。true:开通;false:不开通。缺省为false |
bandwidth | Integer | 否 | RequestBody参数 | 当needPublicIp为true时,用于设置外网带宽,取值范围为1Mps~2048Mps,可开通白名单上限增加到5120Mps |
containers | List<ContainerDetails> | 是 | RequestBody参数 | 容器组信息 |
deployInstances | List<DeploymentInstance> | 是 | RequestBody参数 | 部署地域信息 |
volume | Volume | 否 | RequestBody参数 | 存储卷信息 |
imageRegistrySecrets | List<ImageRegistrySecret> | 否 | RequestBody参数 | 镜像仓库凭据 |
tags | List<Tag> | 否 | RequestBody参数 | 标签信息 |
hostAliases | List<V1HostAlias> | 否 | RequestBody参数 | 主机别名 |
dnsConfig | V1PodDNSConfig | 否 | RequestBody参数 | Dns配置 |
dnsPolicy | String | 否 | RequestBody参数 | Dns策略。可选值:Default(Pod直接继承集群节点的域名解析配置),ClusterFirst(未指定时的默认值,预先把 kube-dns或CoreDNS的信息当作预设参数写入到该Pod内的DNS配置。所有请求会优先在集群所在域查询,如果没有才会转发到上游DNS),ClusterFirstWithHostNet(对于以hostNetwork方式运行的Pod,应显式设置其DNS策略"ClusterFirstWithHostNet"),None(忽略Kubernetes环境中的DNS设置。此时该Pod的DNS的所有设置必须通过dnsConfig指定) |
响应头域
除公共头域外,无其它特殊头域。
响应参数
参数名称 | 类型 | 描述 |
---|---|---|
serviceId | String | 服务ID |
错误码
请参照错误返回章节的内容。
请求示例
POST /v1/service/create HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"serviceName":"baidu-bec",
"paymentMethod":"postpay",
"containerGroupName":"baidu-bec-pod",
"needPublicIp":false,
"needIpv6PublicIp":false,
"containers":[
{
"name":"containers1",
"imageAddress":"nginx",
"imageVersion":"v1.0",
"cpu":4,
"memory":8,
"workingDir":"/home",
"commands":[
"/bin/sh"
],
"args":[
"sleep 3600"
],
"ports":[
{
"containerPort":80,
"protocol":"TCP"
}
],
"envs":[
{
"name":"name",
"value":"baidu"
}
],
"volumeMounts":[
{
"name":"baidu-config",
"readOnly":false,
"mountPath":"/temp"
}
]
}
],
"tags":[
{
"tagKey":"service",
"tagValue":"bec"
}
],
"deployInstances":[
{
"regionId":"cn-shanghai-ct",
"region":"EAST_CHINA",
"city":"SHANGHAI",
"serviceProvider":"CHINA_TELECOM",
"replicas":1
}
],
"volume":{
"secret":[
{
"name":""
}
],
"configMap":[
{
"name":"baidu-config"
}
],
"volumeClaimTemplates":[
{
"name":"volume",
"storageSize":1,
"diskType":"NVME"
}
],
"emptyDir":[
{
"name":""
}
]
},
"imageRegistrySecrets":[
{
"name":""
}
]
}
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Wed, 08 Jul 2015 03:28:11 GMT
x-bce-request-id: d8752367-38e8-45e4-b4c7-e53be3137ce5
Server: BWS
{
"serviceId":"s-xart2shr"
}
数据类型
Model对象定义
ContainerDetails
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 容器的名称 |
cpu | float | 容器申请的CPU核数 |
memory | float | 容器申请的内存大小 |
imageAddress | String | 镜像地址 |
imageVersion | Striing | 镜像版本 |
workingDir | String | 容器工作目录 |
commands | List<String> | 容器启动命令 |
args | List<String> | 容器启动参数 |
volumeMounts | List<V1VolumeMount> | 容器数据卷信息 |
ports | List<V1ContainerPort> | 容器端口协议 |
envs | List<V1EnvVar> | 容器环境变量 |
V1VolumeMount
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 容器数据卷名称 |
mountPath | String | 容器数据卷挂载路径 |
readOnly | String | 容器数据卷是否只读 |
V1ContainerPort
参数名称 | 类型 | 描述 |
---|---|---|
protocol | String | 容器暴露端口协议 |
containerPort | String | 容器暴露端口 |
V1EnvVar
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 容器环境变量key |
value | String | 容器环境变量value |
ImageRegistrySecret
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 镜像仓库凭据名称 |
Volume
参数名称 | 类型 | 描述 |
---|---|---|
emptyDir | List<EmptyDir> | emptyDir存储卷 |
configMap | List<ConfigFile> | configMap存储卷 |
secret | List<Secret> | 密钥 & 凭据存储卷 |
volumeClaimTemplates | List<VolumeClaimTemplates> | 数据盘存储卷 |
EmptyDir/ConfigFile/Secret
参数名称 | 类型 | 描述 |
---|---|---|
name | String | EmptyDir/ConfigFile/Secret存储卷名称 |
VolumeClaimTemplates
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 数据盘存储卷名称 |
storageSize | Integer | 数据盘存储卷容量大小 |
diskType | String | 数据盘存储卷类型(HDD类型:NVME,SSD类型:SATA) |
Tag
参数名称 | 类型 | 描述 |
---|---|---|
tagKey | String | 标签的key |
tagValue | String | 标签的value |
DeploymentInstance
参数名称 | 类型 | 描述 |
---|---|---|
regionId | String | 节点ID,由“国家码-城市-运营商”的小写字母组成字符串。例如 cn-hangzhou-cm,其中国家码标准为ISO 3166-2,城市为拼音,运营商为中国移动cm/中国电信ct/中国联通un/三线ix,海外节点运营商为bgp。如果传regjionId,则可以不传region、serviceProvider、city。 |
region | String | 服务部署的地域 |
serviceProvider | String | 服务部署的运营商 |
city | String | 服务部署的城市 |
replicas | Integer | 服务部署的副本数 |
ServiceBriefVo
参数名称 | 类型 | 描述 |
---|---|---|
region | String | 服务部署的地域 |
serviceProvider | String | 服务部署的运营商 |
replicas | Integer | 服务部署的副本数 |
V1HostAlias
参数名称 | 类型 | 描述 |
---|---|---|
hostnames | List<String> | 主机别名 |
ip | String | 主机别名对应ip |
V1PodDNSConfig
参数名称 | 类型 | 描述 |
---|---|---|
nameservers | List<String> | Pod 的 DNS Server IP 地址列表。最多可以执行 3 个 IP 地址。当 dnsPolicy 为 “None”时,至少需要指定一个 IP 地址,其他情况下该字段是可选的。DNS Server 的 IP 地址列表将会与 DNS Policy 所产生的 DNS Server 地址列表合并(重复的条目被去除)。 |
searches | String | Pod 中执行域名查询时搜索域的列表。该字段是可选的。如果指定了该字段,则指定的搜索域列表将与 DNS Policy 所产生的搜索域列表合并(重复的条目被去除)。Kubernetes最多允许6个搜索域。 |
options | List<V1PodDNSConfigOption> | 可选数组,其中每个元素由 name 字段(必填)和 value 字段(选填)组成。该列表中的内容将与 DNS Policy 所产生的 DNS 选项合并(重复的条目被去除)。 |
V1PodDNSConfigOption
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 名称 |
value | String | 值 |