创建BEC服务
更新时间:2025-01-07
接口描述
本接口用于创建BEC容器服务,在用户开通BEC服务之后进行部署BEC服务。
请求结构
Plain Text
1POST /v1/service/create HTTP/1.1
2Host: bec.baidubce.com
3Authorization: authorization string
4{
5"serviceName": "baidu-bec",
6"paymentMethod": "postpay",
7"containerGroupName": "baidu-bec-pod",
8"needPublicIp": true,
9"needIpv6PublicIp": false,
10"bandwidth": 100,
11"containers": [{
12 "name": "containers1",
13 "imageAddress": "nginx",
14 "imageVersion": "v1.0",
15 "cpu": 4,
16 "memory": 8,
17 "workingDir": "/home",
18 "commands": [
19 "/bin/sh"
20 ],
21 "args": [
22 "sleep 3600"
23 ],
24 "ports": [{
25 "containerPort": 80,
26 "protocol": "TCP"
27 }],
28 "envs": [{
29 "name": "name",
30 "value": "baidu"
31 }],
32 "volumeMounts": [{
33 "name": "baidu-config",
34 "readOnly": false,
35 "mountPath": "/temp"
36
37 }]
38}],
39"tags": [{
40 "tagKey": "service",
41 "tagValue": "bec"
42}],
43"deployInstances": [{
44 "regionId":"cn-shanghai-ct",
45 "region":"EAST_CHINA",
46 "city":"SHANGHAI",
47 "serviceProvider": "CHINA_TELECOM",
48 "replicas": 1
49}],
50"volume": {
51 "secret": [{
52 "name": ""
53 }],
54 "configMap": [{
55 "name": "baidu-config"
56 }],
57 "volumeClaimTemplates": [{
58 "name": "volume",
59 "storageSize": 1,
60 "diskType": "NVME"
61 }],
62 "emptyDir": [{
63 "name": ""
64 }]
65},
66"imageRegistrySecrets": [{
67 "name": ""
68}],
69"hostAliases":[{
70 "ip":"x.x.x.x",
71 "hostnames":["xxxx","xxxxx"]
72}],
73"dnsPolicy":"None",
74"dnsConfig":{
75 "nameservers":["x.x.x.x","x.x.x.x"]
76}
77}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
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 |
错误码
请参照错误返回章节的内容。
请求示例
Plain Text
1POST /v1/service/create HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
4
5{
6 "serviceName":"baidu-bec",
7 "paymentMethod":"postpay",
8 "containerGroupName":"baidu-bec-pod",
9 "needPublicIp":false,
10 "needIpv6PublicIp":false,
11 "containers":[
12 {
13 "name":"containers1",
14 "imageAddress":"nginx",
15 "imageVersion":"v1.0",
16 "cpu":4,
17 "memory":8,
18 "workingDir":"/home",
19 "commands":[
20 "/bin/sh"
21 ],
22 "args":[
23 "sleep 3600"
24 ],
25 "ports":[
26 {
27 "containerPort":80,
28 "protocol":"TCP"
29 }
30 ],
31 "envs":[
32 {
33 "name":"name",
34 "value":"baidu"
35 }
36 ],
37 "volumeMounts":[
38 {
39 "name":"baidu-config",
40 "readOnly":false,
41 "mountPath":"/temp"
42
43 }
44 ]
45 }
46],
47"tags":[
48 {
49 "tagKey":"service",
50 "tagValue":"bec"
51 }
52],
53"deployInstances":[
54 {
55 "regionId":"cn-shanghai-ct",
56 "region":"EAST_CHINA",
57 "city":"SHANGHAI",
58 "serviceProvider":"CHINA_TELECOM",
59 "replicas":1
60 }
61],
62"volume":{
63 "secret":[
64 {
65 "name":""
66 }
67 ],
68 "configMap":[
69 {
70 "name":"baidu-config"
71 }
72 ],
73 "volumeClaimTemplates":[
74 {
75 "name":"volume",
76 "storageSize":1,
77 "diskType":"NVME"
78 }
79 ],
80 "emptyDir":[
81 {
82 "name":""
83 }
84 ]
85},
86"imageRegistrySecrets":[
87 {
88 "name":""
89 }
90]
}
响应示例
Plain Text
1HTTP/1.1 200 OK
2Content-Type: application/json;charset=UTF-8
3Date: Wed, 08 Jul 2015 03:28:11 GMT
4x-bce-request-id: d8752367-38e8-45e4-b4c7-e53be3137ce5
5Server: BWS
6
7{
8 "serviceId":"s-xart2shr"
9}
数据类型
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。如果传regionId,则可以不传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 | 值 |