作业示例

作业常见使用情景示例。

这些示例为作业提供常见的使用情景。

前提条件:

创建简单的作业

此 JSON 文件创建了一项没有计划的简单作业。

  1. 使用以下内容创建 JSON 文件。

  2. 从 DC/OS CLI 中添加作业。

    或者,使用 API 添加作业。

    1. 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 添加作业时有效。

  1. 使用以下内容创建 JSON 文件。

  2. 添加作业。

    1. dcos job add <my-scheduled-job>.json

使用 API 创建作业并关联计划

  1. 使用 上述说明 添加没有计划的作业。

  2. 使用以下内容创建 JSON 文件。这是您作业的时间表。

    1. {
    2. "concurrencyPolicy": "ALLOW",
    3. "cron": "20 0 * * *",
    4. "enabled": true,
    5. "id": "nightly",
    6. "startingDeadlineSeconds": 900,
    7. "timezone": "UTC"
    8. }
  3. 添加计划并将其与作业关联。

    通过 DC/OS CLI:

    通过 API:

    1. 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. 作业组的子级。

  1. ├── dev
  2. ├── batch
  3. ├── job1
  4. ├── job2

然后作业组被分配给用户 Cory 和 以限制访问的权限。

前提条件:

  • 您必须以 身份登录。superuser.
  1. 图 1. DC/OS Enterprise 登录

  2. 创建分区作业。

    1. 选择 Jobs,然后单击 CREATE A JOB

    2. ID 字段中,键入 dev.batch.job1.

    3. Command 字段中,键入 sleep 1000(或其他有效的 shell 命令)并单击 CREATE A JOB

      创建作业

      图 2. 新作业屏幕

      这将在 DC/OS 中的此目录结构中创建作业:Jobs > dev > batch > job1

    4. 单击右上角的 + 图标创建另一项作业。

      图 3. 创建另一项作业

    5. ID 字段中,键入 dev.batch.job2.

    6. Command 字段中,键入 sleep 1000(或其他有效的 shell 命令)并单击 CREATE A JOB。您应该有两项作业:

      创建作业

      图 4. Jobs > dev > batch screen

  3. 运行作业。

    1. 单击 Jobs > dev > batch > job1,然后单击 Run Now

      图 5. 立即运行 菜单

    2. 单击 Jobs > dev > batch > job2,然后单击 Run Now

  4. 退出并以新用户身份重新登录以验证权限。用户现在应该在 Jobs 选项卡内具有对 dev/batch/job1dev/batch/job2 的指定访问级别。例如,如果您以 Alice 身份登录,您只能看到 jobs2

    图 8. “Alice”的限制性查看

创建要加入容器网络的作业

要使作业加入网络,请指定“网络”字段。以下作业加入 dcos 网络,输出其 IP 信息,然后进入休眠:

  1. ```json
  2. {
  3. "id": "networking-job",
  4. "description": "A job that outputs network info and sleeps",
  5. "run": {
  6. "cmd": "ip a; sleep 60",
  7. "docker": {
  8. "image": "alpine"
  9. },
  10. "networks": [{"mode": "container", "name": "dcos"}],
  11. "cpus": 0.01,
  12. "mem": 32,
  13. "disk": 0
  14. }
  15. ```

字段的工作方式与 Marathon 中的 networks 字段相同。