mesos/marathon角色和应用

d5vmydt9  于 2021-06-21  发布在  Mesos
关注(0)|答案(1)|浏览(488)

我想运行一个混合了公共和私人应用程序的mesos/marathon集群。似乎应该可以利用角色来实现这一点,但我没有成功。
作为概念证明,我有一个Mesos星团 public 以及 private 角色:


# curl --silent localhost:5050/roles | jq '.' | grep name

"name": "*",
"name": "public",
"name": "private",

马拉松和我的马拉松应用程序出现了问题。我无法设置 default_accepted_resource_roles 一个不同于 mesos_role . 例如,如果我设置 --mesos_role=public 以及 --default_accepted_resource_roles=public ,我可以运行应用程序,但前提是它们包括 "acceptedResourceRoles": [ "public" ] 在应用程序描述中。相反,我可以把一切都设置为 private 运行私人应用程序(不过,讽刺的是,如果我把一切 * 我无法运行我的应用程序。我完全不明白。)
理想情况下,我希望这样:

mesos_role=*
default_accepted_resource_roles=private

我希望这可以让马拉松访问我所有的角色,但启动应用程序与 private 除非他们特别要求 public 角色。不幸的是,这会导致以下错误:

Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: --default_accepted_resource_roles contains roles for which we will not receive offers: private

马拉松拒绝开始。
你能和我一起跑马拉松吗 --mesos_role=* 以及 --default_accepted_resource_roles=private ? 如果不是,我不明白为什么角色存在。但我宁愿尽可能多地在一个集群中运行,也不愿为公共和私人应用程序构建单独的集群。

uelo1irk

uelo1irk1#

@作为一个解决办法,我们部署了多个马拉松。作为应用程序在主马拉松上运行的主马拉松和其他两个马拉松,通常每个角色一个。
假设您有两个角色“kafka”和“hdfs”,例如默认角色的主马拉松跑步(即*)在主马拉松上有两个角色-mesos\u角色kafka(命令行选项)在主马拉松上有两个角色-mesos\u角色hdfs也在主马拉松上有两个角色-mesos\u角色hdfs
要使应用程序使用分配给kafka角色的资源,您需要在kafka marathon而不是main marathon中启动作业。

相关问题