从本机可执行本地文件创建 DC/OS 应用程序部署
Create DC/OS app deployment from native executable local file
我正在试验 DC/OS 我想尝试本机文件 运行ning 功能,运行 一个不使用 docker 的本机可执行文件,概述于https://dcos.io/docs/1.8/usage/tutorials/dcos-101/app2/
我可以成功地遵循教程,但我想使用我自己的应用程序(一个独立的可执行文件),在线文档说除了 https:/ 之外,fetch 命令还支持 file:// uri / uri 和其他。 (https://mesosphere.github.io/marathon/docs/application-basics.html)
因此,如果我使用教程中的应用程序部署清单作为我的基础,但我已将我的可执行文件上传到位于 /home/core/app 的主节点(在 linux 文件系统中)
并将 uri 更改为 "file:///home/core/app" 部署说
I0127 14:42:06.533756 40159 fetcher.cpp:167] Copying resource with command:cp '/home/core/app' '/var/lib/mesos/slave/slaves/a0ff5689-5816-4812-864b-b3c4b914a272-S0/frameworks/a0ff5689-5816-4812-864b-b3c4b914a272-0000/executors/dcos-101_app2.c641de8d-e49e-11e6-93c4-de7054394bed/runs/f266a00c-1179-48bb-9f1e-251f3eae1272/app'
cp: cannot stat '/home/core/app': No such file or directory"
使用 DC/OS 1.8 安装在 CoreOS 上,一主一代理(仅用于开发测试)
我确定我只是遗漏了一些基本的东西,比如 mesos 文件系统,但我到处寻找教程,他们要么假设你使用 docker,要么通过 http 服务......没有对于文件://
因此,当使用 file:// uri 时,它与 linux 文件系统的位置不同,或者我是否遗漏了其他内容。
DC/OS新手
请多多帮助
谢谢
编辑
这是 app.json 文件
{
"id": "/dcos-101/app2",
"cmd": "chmod u+x app && ./app",
"args": null,
"user": null,
"env": null,
"instances": 1,
"cpus": 1,
"mem": 128,
"disk": 0,
"gpus": 0,
"executor": null,
"constraints": null,
"fetch": [
{
"uri": "file:///home/core/app"
}
],
"storeUrls": null,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600,
"container": null,
"healthChecks": null,
"readinessChecks": null,
"dependencies": null,
"upgradeStrategy": {
"minimumHealthCapacity": 1,
"maximumOverCapacity": 1
},
"acceptedResourceRoles": null,
"ipAddress": null,
"residency": null,
"secrets": null,
"taskKillGracePeriodSeconds": null,
"portDefinitions": [
{
"protocol": "tcp",
"port": 10000,
"labels": {
"VIP_0": "/dcos-101/app2:10000"
}
}
],
"labels": {
"HAPROXY_GROUP": "external"
},
"requirePorts": false
}
那是行不通的,除非 /home/core/app
存在于 每个 代理节点上,或者您将其更改为外部 HTTP URL . fetch
所做的是:它根据使用的 URI 模式将列出的文件下载到 Mesos 沙箱中。由于您使用的是 file:
模式,Mesos 会尝试将其下载到启动任务的代理(而不是主服务器)上。
我正在试验 DC/OS 我想尝试本机文件 运行ning 功能,运行 一个不使用 docker 的本机可执行文件,概述于https://dcos.io/docs/1.8/usage/tutorials/dcos-101/app2/
我可以成功地遵循教程,但我想使用我自己的应用程序(一个独立的可执行文件),在线文档说除了 https:/ 之外,fetch 命令还支持 file:// uri / uri 和其他。 (https://mesosphere.github.io/marathon/docs/application-basics.html)
因此,如果我使用教程中的应用程序部署清单作为我的基础,但我已将我的可执行文件上传到位于 /home/core/app 的主节点(在 linux 文件系统中) 并将 uri 更改为 "file:///home/core/app" 部署说
I0127 14:42:06.533756 40159 fetcher.cpp:167] Copying resource with command:cp '/home/core/app' '/var/lib/mesos/slave/slaves/a0ff5689-5816-4812-864b-b3c4b914a272-S0/frameworks/a0ff5689-5816-4812-864b-b3c4b914a272-0000/executors/dcos-101_app2.c641de8d-e49e-11e6-93c4-de7054394bed/runs/f266a00c-1179-48bb-9f1e-251f3eae1272/app' cp: cannot stat '/home/core/app': No such file or directory"
使用 DC/OS 1.8 安装在 CoreOS 上,一主一代理(仅用于开发测试)
我确定我只是遗漏了一些基本的东西,比如 mesos 文件系统,但我到处寻找教程,他们要么假设你使用 docker,要么通过 http 服务......没有对于文件://
因此,当使用 file:// uri 时,它与 linux 文件系统的位置不同,或者我是否遗漏了其他内容。
DC/OS新手
请多多帮助谢谢
编辑
这是 app.json 文件
{
"id": "/dcos-101/app2",
"cmd": "chmod u+x app && ./app",
"args": null,
"user": null,
"env": null,
"instances": 1,
"cpus": 1,
"mem": 128,
"disk": 0,
"gpus": 0,
"executor": null,
"constraints": null,
"fetch": [
{
"uri": "file:///home/core/app"
}
],
"storeUrls": null,
"backoffSeconds": 1,
"backoffFactor": 1.15,
"maxLaunchDelaySeconds": 3600,
"container": null,
"healthChecks": null,
"readinessChecks": null,
"dependencies": null,
"upgradeStrategy": {
"minimumHealthCapacity": 1,
"maximumOverCapacity": 1
},
"acceptedResourceRoles": null,
"ipAddress": null,
"residency": null,
"secrets": null,
"taskKillGracePeriodSeconds": null,
"portDefinitions": [
{
"protocol": "tcp",
"port": 10000,
"labels": {
"VIP_0": "/dcos-101/app2:10000"
}
}
],
"labels": {
"HAPROXY_GROUP": "external"
},
"requirePorts": false
}
那是行不通的,除非 /home/core/app
存在于 每个 代理节点上,或者您将其更改为外部 HTTP URL . fetch
所做的是:它根据使用的 URI 模式将列出的文件下载到 Mesos 沙箱中。由于您使用的是 file:
模式,Mesos 会尝试将其下载到启动任务的代理(而不是主服务器)上。