为什么没有向mesos框架提供资源?

2ledvvac  于 2021-06-26  发布在  Mesos
关注(0)|答案(2)|浏览(316)

我正在使用mesos 1.0.1。我添加了一个具有新角色的代理 docker_gpu_worker . 我用这个角色注册了一个框架。该框架没有收到任何报价。使用其他角色的其他框架(相同的java代码)运行良好。我没有重新启动三个mesos大师。有人知道哪里出了问题吗?
master/frameworks ,我看到了我的框架:

"{
  "id": "fd01b1b0-eb73-4d40-8774-009171ae1db1-0701",
  "name": "/data4/Users/mikeb/jobs/999",
  "pid": "scheduler-77345362-b85c-4044-8db5-0106b9015119@x.x.x.x:57617",
  "used_resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "offered_resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "capabilities": [],
  "hostname": "x-x-x-x.ec2.internal",
  "webui_url": "",
  "active": true,
  "user": "mikeb",
  "failover_timeout": 10080,
  "checkpoint": true,
  "role": "docker_gpu_worker",
  "registered_time": 1507028279.18887,
  "unregistered_time": 0,
  "principal": "test-framework-java",
  "resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "tasks": [],
  "completed_tasks": [],
  "offers": [],
  "executors": []
}"

master/roles 我看到了我的角色:

"{
  "frameworks": [
    "fd01b1b0-eb73-4d40-8774-009171ae1db1-0701",
    "fd01b1b0-eb73-4d40-8774-009171ae1db1-0673",
    "fd01b1b0-eb73-4d40-8774-009171ae1db1-0335"
  ],
  "name": "docker_gpu_worker",
  "resources": {
    "cpus": 0,
    "disk": 0,
    "gpus": 0,
    "mem": 0
  },
  "weight": 1
}"

master/slaves 我看到我的经纪人:

"{
  "id": "fd01b1b0-eb73-4d40-8774-009171ae1db1-S5454",
  "pid": "slave(1)@x.x.x.x:5051",
  "hostname": "x-x-x-x.ec2.internal",
  "registered_time": 1506692213.24938,
  "resources": {
    "disk": 35056,
    "mem": 59363,
    "gpus": 4,
    "cpus": 32,
    "ports": "[31000-32000]"
  },
  "used_resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "offered_resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "reserved_resources": {
    "docker_gpu_worker": {
      "disk": 35056,
      "mem": 59363,
      "gpus": 4,
      "cpus": 32,
      "ports": "[31000-32000]"
    }
  },
  "unreserved_resources": {
    "disk": 0,
    "mem": 0,
    "gpus": 0,
    "cpus": 0
  },
  "attributes": {},
  "active": true,
  "version": "1.0.1",
  "reserved_resources_full": {
    "docker_gpu_worker": [
      {
        "name": "gpus",
        "type": "SCALAR",
        "scalar": {
          "value": 4
        },
        "role": "docker_gpu_worker"
      },
      {
        "name": "cpus",
        "type": "SCALAR",
        "scalar": {
          "value": 32
        },
        "role": "docker_gpu_worker"
      },
      {
        "name": "mem",
        "type": "SCALAR",
        "scalar": {
          "value": 59363
        },
        "role": "docker_gpu_worker"
      },
      {
        "name": "disk",
        "type": "SCALAR",
        "scalar": {
          "value": 35056
        },
        "role": "docker_gpu_worker"
      },
      {
        "name": "ports",
        "type": "RANGES",
        "ranges": {
          "range": [
            {
              "begin": 31000,
              "end": 32000
            }
          ]
        },
        "role": "docker_gpu_worker"
      }
    ]
  },
  "used_resources_full": [],
  "offered_resources_full": []
}"

我们已将问题跟踪到此mesos代理配置:

--isolation="filesystem/linux,cgroups/devices,gpu/nvidia"

除去这些,代理可以正常工作,但不能访问gpu资源。根据nvidiagpu支持的文档,这个配置是必需的,这些文档似乎表明版本1.0.1支持它。我们正在继续调查。

zyfwsgd6

zyfwsgd61#

您可以静态地向master注册角色,如果您在运行时添加代理角色,那么master将不知道该角色,并且需要重新启动mesos master,master才能看到该角色。尝试重新启动mesos主机。

hc2pp10m

hc2pp10m2#

这个 GPU_RESOURCES 必须为框架启用功能。
如中所示http://mesos.readthedocs.io/en/latest/gpu-support/例如,可以通过指定 --framework_capabilities="GPU_RESOURCES"mesos-execute 命令,或使用c++中的类似代码:

FrameworkInfo framework;
framework.add_capabilities()->set_type(
    FrameworkInfo::Capability::GPU_RESOURCES);

而对于marathon框架,marathon服务必须使用以下选项启动 --enable_features "gpu_resources" 如在dc/os上启用gpu资源(cuda)中所示

相关问题