好吧,一周或更长时间后,我的极光群开始运行了。这真的不容易,但是,尽管如此,我还是做到了。
我有一个简单的极光文件
# copy frontend into the local sandbox
clone_service = Process(
name = 'copy service',
cmdline = 'git clone https://citrullin@bitbucket.org/jakiku/frontend.git frontend')
install_npm_deps = Process(
name = 'install npm dependencies',
cmdline = 'cd frontend && npm install'
)
run_server = Process(
name = 'run server',
cmdline = 'node server.js'
)
# describe the task
run_frontend_service = SequentialTask(
processes = [clone_service, install_npm_deps, run_server],
resources = Resources(cpu = 1, ram = 128*MB, disk=64*MB))
jobs = [
Service(cluster = 'mesos-fr',
environment = 'devel',
role = 'www-data',
name = 'frontend_service',
task = run_frontend_service)
]
没什么特别的。我只想定义我需要使用哪个端口。我检查了资源(端口=3000),但它不起作用。它不是一个真正的资源,它是Mesos的一个属性
1条答案
按热度按时间lf3rwulv1#
一般来说,您希望避免使用aurora作业的静态端口。由于任意数量的任务都可以在同一台主机上着陆,因此无法保证多个任务不会请求同一个端口,从而导致其中一个任务随机失败。
解决这个问题的推荐方法是使用aurora配置中的thermos名称空间从mesos请求一个端口。例如,如果你要做如下事情:
然后,aurora将为您的任务分配一个随机端口,当它被分配给主机时。
这带来的一个明显的问题是,如果服务运行在随机分配的端口上,并且随着任务在主机之间的移动,端口会随着时间的推移而变化,那么其他东西如何找到服务。答案是服务发现。如果你加上
announce=Announcer()
在作业配置中,您的任务将被添加到服务器集,其他任务可以使用该服务器集发现并与之通信。参考文献:
有关配置代理以提供端口的mesos文档。
关于请求端口的aurora文档。