同步操作将从 腾讯蓝鲸智云/bk-bcs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
bcs process是对进程服务的抽象,用于进程服务的描述。
{
"apiVersion": "v4",
"kind": "process",
"restartPolicy": {
"policy": "Never | Always | OnFailure",
"interval": 5,
"backoff": 10,
"maxtimes": 10
},
"killPolicy": {
"gracePeriod": 10
},
"metadata": {
"labels": {
"test_label": "test_label"
},
"name": "gamesvc",
"namespace": "ns-a"
},
"spec": {
"instance": 3,
"template": {
"spec": {
"processes": [{
"procName": "gamesvr",
"user": "user",
"workPath": "${work_base_dir}/${namespace}.${processname}.${instanceid}/gamesvc",
"pidFile": "${run_base_dir}/${namespace}.${processname}.${instanceid}/pid/gamesvc.pid",
"ports": [{
"hostPort": 8899,
"name": "http_port",
"protocol": "HTTP"
},
{
"hostPort": 0,
"name": "metric_port",
"protocol": "TCP"
}
],
"uris": [{
"value": "http://xx.xxx.xxxx.com/xxxx/gamesvc-v1.tar.gz",
"user": "xxxx",
"pwd": "xxxxxx",
"pullPolicy": "Always|IfNotPresent",
"outputDir": "${work_base_dir}/${namespace}.${processname}.${instanceid}"
}],
"startCmd": "./start.sh --address ${hospip} --service-port ${ports.http-service}",
"startGracePeriod": 10,
"stopCmd": "./stop.sh --pidfile ${pidFile}",
"reloadCmd": "./reload.sh --pidfile ${pidFile}",
"healthChecks": [{
"type": "HTTP|TCP|COMMAND|REMOTE_HTTP|REMOTE_TCP",
"intervalSeconds": 60,
"timeoutSeconds": 20,
"consecutiveFailures": 3,
"gracePeriodSeconds": 300,
"command": {
"value": "./check.sh"
},
"http": {
"port": 8080,
"portName": "test-http",
"scheme": "http|https",
"path": "/check",
"headers": {
"key1": "value1",
"key2": "value2"
}
},
"tcp": {
"port": 8090,
"portName": "test-tcp"
}
}],
"resources": {
"limits": {
"cpu": "2",
"memory": "500"
}
},
"env": [{
"name": "http_port",
"value": "${ports.http_port}"
},
{
"name": "metric_port",
"value": "${ports.metric_port}"
},
{
"name": "hostip",
"value": "${hostip}"
},
{
"name": "work_dir",
"value": "${workPath}/"
},
{
"name": "pid_file",
"value": "${pidFile}/"
},
{
"name": "namespace",
"value": "${namespace}"
},
{
"name": "processname",
"value": "${processname}"
},
{
"name": "instanceid",
"value": "${instanceid}"
}
],
"secrets": [{
"secretName": "mySecret",
"items": [{
"type": "env",
"dataKey": "abc",
"keyOrPath": "SRECT_ENV"
},
{
"type": "file",
"dataKey": "abc",
"keyOrPath": "/data/container/path/filename.conf",
"readOnly": false,
"user": "user"
}
]
}],
"configmaps": [{
"name": "template-configmap",
"items": [{
"type": "env",
"dataKey": "config-one",
"keyOrPath": "SECRET_ENV"
},
{
"type": "file",
"dataKey": "config_two",
"dataKeyAlias": "config-two",
"KeyOrPath": "/data/contianer/path/filename.txt",
"readOnly": false,
"user": "root"
}
]
}]
}]
}
}
},
"constraint": {
"intersectionItem": [{
"unionData": [{
"name": "hostname",
"operate": "LIKE",
"type": 3,
"text": {
"value": "slave[3-5]"
}
}]
},
{
"unionData": [{
"name": "hostname",
"operate": "UNLIKE",
"type": 3,
"text": {
"value": "slave[1-2]"
}
}]
},
{
"unionData": [{
"name": "hostname",
"operate": "UNIQUE"
}]
},
{
"unionData": [{
"name": "idc",
"operate": "MAXPER",
"type": 3,
"text": {
"value": "5"
}
},
{
"unionData": [{
"name": "label",
"operate": "EXCLUDE",
"type": 4,
"set": {
"item": [
"processname:gamesvr",
"processname:dbsvr"
]
}
}]
},
{
"unionData": [{
"name": "hostname",
"operate": "CLUSTER",
"type": 4,
"set": {
"item": [
"slave3",
"slave4",
"slave5"
]
}
}]
},
{
"unionData": [{
"name": "district",
"operate": "GROUPBY",
"type": 4,
"set": {
"item": [
"shanghai",
"shenzhen",
"tianjin"
]
}
}]
}
]
}
]
}
}
restartPolicy字段说明:
constraint字段用于定义调度策略
该字段为数组,策略为:所有元素同时满足时才进行调度。使用多个IntersectionItem可以同时满足多个条件限制。
每个IntersectionItem中支持多个UnionData为规则细节字段,用于填写调度匹配规则,也为数组,该数组含义为:所有元素只需要满足一个即可。使用UnionData可以实现多个条件满足其一即可。 UnionData字段说明:
{
"name": "hostname",
"operate": "ClUSTER",
"type": 3|4,
"set": {
"item": ["mesos-slave-1", "mesos-slave-2", "mesos-slave-3"]
},
"text":{
"value": "mesos-slave-1"
}
}
案例说明:
{
"name": "hostname",
"operate": "UNIQUE"
}
{
"name": "section",
"operate": "ClUSTER",
"type": 4,
"set": {
"item": ["shenzhen", "dongguan"]
}
}
{
"name": "hostname",
"operate": "LIKE",
"type": 3,
"text": {
"value": "mesos-slave-[1-2]"
}
}
process的定义支持变量方式,bcs提供几种常用的变量,在json填写时可以使用。
例如
"pidFile": "${run_base_dir}/${namespace}.${processname}.${instanceid}/pid/lgamesvr.pid",
"startCmd": "./bin/start.sh --address ${hospip} --service-port ${ports.http-service}",
"env": {
"hostip": "${hostip}"
}
主要功能是引用configmap数据,并作为环境变量/文件注入容器中。
环境变量注入
文件注入
secret在k8s和mesos中实现存在差异。在k8s中,即为默认支持的secret数据,并存储在etcd中;在mesos中,secret为bcs-scheduler增加 的数据结构,数据默认存储在vault中,读写控制需要通过bcs-authserver。secrets的数据默认可以注入环境变量/文件。
在k8s中,secret只能存储一项数据,所以不存在子项数据结构。mesos下,一个secret可以存储多项数据。
注入环境变量:
注入文件
statuses
field.
* bcs executor需要根据网络模式等情况再具体确认规则此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。