我有一个停靠的spring启动应用程序,它需要在mesos/chronos(dc/os)中调度。有两个地方(我认为)可以用来完成chronos调度:
1) 通过使用“command”标签2)通过使用“container”标签
chronos命令标签的一个例子是:
{
"name": "my-dockerized-app",
"command": "docker login -u my_username -p my_password -e dev-my_user@my_company.com;docker run -e id=123 my_owner/my_dockerized_app_image:latest",
"shell": true,
"epsilon": "PT60S",
"executor": "",
"executorFlags": "",
"retries": 2,
"owner": "",
"ownerName": "",
"description": "",
"async": false,
"successCount": 0,
"errorCount": 264,
"lastSuccess": "",
"lastError": "",
"cpus": 0.5,
"disk": 256.0,
"mem": 512.0,
"disabled": false,
"softError": false,
"dataProcessingJobType": false,
"errorsSinceLastSuccess": 264,
"uris": [],
"environmentVariables": [{
"name": "id",
"value": "1"
}],
"arguments": [],
"highPriority": false,
"runAsUser": "root",
"constraints": [],
"schedule": "R/2016-11-21T05:06:00.000Z/PT2M",
"scheduleTimeZone": ""
}
chronos“container”标签示例:
{
"schedule": "R\/2014-09-25T17:22:00Z\/PT2M",
"name": "my_docker_job",
"container": {
"type": "DOCKER",
"image": "my_owner/my_dockerized_app",
"network": "BRIDGE"
},
"cpus": "0.5",
"mem": "512",
"uris": [],
""
}
在mesos/chronos生产环境中应该真正使用哪种调度方法?
1条答案
按热度按时间mpbci0fu1#
你应该使用第二个选项
这两种配置的区别在于mesos与docker的交互方式。
您正在创建启动docker的mesos任务,因此mesos不知道docker,您需要监视它。
mesos将为您启动docker并跟踪它。所以如果docker失败,mesos会通知chronos。