作业示例
作业常见使用情景示例。
这些示例为作业提供常见的使用情景。
前提条件:
- DC/OS 和 已安装。
创建简单的作业
此 JSON 文件创建了一项没有计划的简单作业。
使用以下内容创建 JSON 文件。
从 DC/OS CLI 中添加作业。
或者,使用 API 添加作业。
curl -X POST -H "Content-Type: application/json" -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/service/metronome/v1/jobs -d@/Users/<your-username>/<myjob>.json
使用计划创建工作
注意:此示例 JSON 仅在您从 DC/OS CLI 或 UI 添加作业时有效。
使用以下内容创建 JSON 文件。
添加作业。
dcos job add <my-scheduled-job>.json
使用 API 创建作业并关联计划
使用 上述说明 添加没有计划的作业。
使用以下内容创建 JSON 文件。这是您作业的时间表。
{
"concurrencyPolicy": "ALLOW",
"cron": "20 0 * * *",
"enabled": true,
"id": "nightly",
"startingDeadlineSeconds": 900,
"timezone": "UTC"
}
添加计划并将其与作业关联。
通过 DC/OS CLI:
通过 API:
curl -X POST -H "Content-Type: application/json" -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/service/metronome/v1/jobs/<job-id>/schedules -d@/Users/<your-username>/<schedule-file>.json
您可以将计划与多项作业相关联。
创建分区作业环境
此例中,使用 DC/OS UI 创建分区作业环境。这允许您限制每项作业或每个作业组的用户访问。作业是在名为 batch
的作业组中创建,该作业组是名为 dev
. 作业组的子级。
├── dev
├── batch
├── job1
├── job2
然后作业组被分配给用户 Cory
和 以限制访问的权限。
前提条件:
- 您必须以 身份登录。
superuser
.
-
图 1. DC/OS Enterprise 登录
创建分区作业。
选择 Jobs,然后单击 CREATE A JOB。
在 ID 字段中,键入
dev.batch.job1
.在 Command 字段中,键入
sleep 1000
(或其他有效的 shell 命令)并单击 CREATE A JOB。图 2. 新作业屏幕
这将在 DC/OS 中的此目录结构中创建作业:Jobs > dev > batch > job1。
单击右上角的 + 图标创建另一项作业。
图 3. 创建另一项作业
在 ID 字段中,键入
dev.batch.job2
.在 Command 字段中,键入
sleep 1000
(或其他有效的 shell 命令)并单击 CREATE A JOB。您应该有两项作业:图 4. Jobs > dev > batch screen
运行作业。
单击 Jobs > dev > batch > job1,然后单击 Run Now。
图 5. 立即运行 菜单
单击 Jobs > dev > batch > job2,然后单击 Run Now。
退出并以新用户身份重新登录以验证权限。用户现在应该在 Jobs 选项卡内具有对
dev/batch/job1
和dev/batch/job2
的指定访问级别。例如,如果您以 Alice 身份登录,您只能看到 jobs2:图 8. “Alice”的限制性查看
创建要加入容器网络的作业
要使作业加入网络,请指定“网络”字段。以下作业加入 dcos
网络,输出其 IP 信息,然后进入休眠:
```json
{
"id": "networking-job",
"description": "A job that outputs network info and sleeps",
"run": {
"cmd": "ip a; sleep 60",
"docker": {
"image": "alpine"
},
"networks": [{"mode": "container", "name": "dcos"}],
"cpus": 0.01,
"mem": 32,
"disk": 0
}
```
字段的工作方式与 Marathon 中的 networks
字段相同。