文档章节

MESOS的验证和分角色执行

xueyi28
 xueyi28
发布于 2016/05/22 15:57
字数 1033
阅读 17
收藏 0

我的这个post大约介绍的是一个简单的mesos的翻译:http://domain.coding.io/?p=121
但是实际操作我发现mesos对框架验证支持可能有Bug,或者就是Marathon的密码验证有问题,我今天调试了一天,依旧没有把框架验证调试通过。但是我对整个框架的验证和角色分派有了新的认识:
我们部署mesos集群的时候会遇到这样的问题:集群机器可能分布在不同的机房,一般特定的服务,需要在同一个机房在部署实施,这时你就需要mesosroles功能了,你要根据你的机房划分不同的roles,比如北京集群,上海集群,然后根据这些不同的角色,在启动masterslavemarathon的时候配置好响应的角色:
for example:

#记住,所有的集群,master都只有一个。 start master
mesos-master --ip=$localip --quorum=1 --zk=zk://host1:port1,host2:port2,.../path --acls=file:///path/to/file --authenticate=false --authenticate_slaves=true --credentials=file:///path/to/file --roles=bj,sh
#for acl
{
  "register_frameworks": [
    {
      "principals": { "type": "ANY" },
      "roles": { "values": ["bj", "sh"] }
    }
  ],
  "run_tasks": [
    {
      "principals": { "type": "ANY" },
      "users": { "values": ["root"] }
    }
  ]
}
#因为没有对框架验证,所有的框架没有验证主体,所以这里的访问控制只能写any,如果你担心你的集群遭到攻击,我建议还是从防火墙上控制好master 5050端口的访问,从上面的acl中可以看出1.允许所有的框架以bj和sh的角色来进行注册2.允许所有的框架使用root用户运行任务。
#注意master的--roles参数,你要把你所有的角色Name用逗号隔开,master启动之后就只能这些角色允许注册,其他角色是不能注册成功的。
#marathon register
./bin/start --master local --zk zk://localhost:2181/marathon --mesos_role=bj
#这样就意味着你发送给这个框架的所有任务都只能在bj角色的机器上执行了。
#mesos slave
mesos-slave --ip=localip --master=localhost:5050 --credential=file://path/to/file  --default_role=bj
#cred file
{
  "principal": "username",
  "secret": "secret"
}
#这样启动之后slave就算到bj集群中去了。

 

 

验证这块marathon上需要配置一个环境变量:
export PROCESS_IP=localhost

因为使用crammd5这个破玩意完成验证,所以需要安装对应的依赖。

 

 

mesos的验证需要mesos.0.20.0以上的版本支持,mesos的验证可以做到三点:
1.
在框架注册时进行验证
2.
在框架运行任务或者执行程序的时候进行验证
3.
在通过api关闭框架时进行验证
这些验证都是通过类似ACL的方式来做控制访问,访问控制列表是一个json格式的数据文件
上面三点分别对应的字段为:”register_frameworks””run_tasks”,”shutdown_frameworks”
另外还有几个字段需要解释一下:
principals:
你需要把这个字段抽象成框架的名称,这个名称需要全局唯一,用来唯一标识一个框架(这也就是说一个Mesos上可以承载很多框架)
roles:
这个一个框架标识,可以想象成框架的分组,算是一个框架的一个属性。
users:
操作系统帐号,用来执行应用的帐号
framework_principals:
这个在框架关闭的时候要用。

具体的验证过程:
当一个框架要到Mesosmaster注册的时候,“register_frameworks”访问控制就会匹配验证当前框架的principalsroles,如果验证失败,这个框架就不允许注册,scheduler driver就会返回错误信息。
对于任务运行和框架关闭验证也很类似,具体请参照:http://mesos.apache.org/documentation/latest/authorization/

 

#框架foo和bar可以用alice帐号运行任务
{
   "run_tasks":[
      {
        "principals": {"values":["foo", "bar"]},
        "users": {"values": ["alice"]}
      }
    ]
}
 
#运行任何框架用guest用户运行任务
{
   "run_tasks":[
     {
      "principals":{"type":"ANY"},
      "users":{"values":["guest"]}
     }
    ]
}
 
#只允许foo框架以analytics角色注册
{
"register_frameworks":[
   {
      "principals": {"values": ["foo"]},
      "roles": {"values":["analytics"]}
   },
   {
      "principals": {"type": "NONE"},
      "roles": {"values": ["analytics"]}
   }
]
}

 

另外你要启用mesos的验证功能,你可能需要设置下面的参数:
for master:
–acls=VALUE
–authenticate=true
–authenticate_slaves=true
–credentials=VALUE

for slave:
–credential=VALUE
–default_role=VALUE

本文转载自:http://blog.csdn.net/kangqi7000/article/details/51475413

共有 人打赏支持
xueyi28
粉丝 7
博文 97
码字总数 34600
作品 0
南宁
私信 提问
在CentOS7上部署Apache Mesos

概述 Apache Mesos是一款基于多资源(内存、磁盘、CPU、端口等)调度的开源集群管理套件,能使容错和分布式系统更加容易。 工作原理 Apache Mesos采用了Master/Slave结构来简化设计,将Maste...

何以重见
2018/08/17
0
0
配置单台Mesos-master与Mesos-slave

Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操作系统之间,可以更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它可以...

cchenyz
2018/08/15
0
0
使用Mesos管理Docker(Mesos+Marathon+Docker)

Apache Mesos是一个集群管理器,可跨分布式应用程序或框架提供有效的资源隔离和共享。它位于应用程序层和操作系统之间,可以更加轻松地在大规模集群环境中更有效地部署和管理应用程序。它可以...

cchenyz
2018/08/22
0
0
基于Zookeeper+Mesos+Marathon搭建Docker集群管理平台

Mesos概述 Apache Mesos 是一款基于多资源(内存、CPU、磁盘、端口等)调度的开源集群管理套件,能使容错和分布式系统更加容易使用。其采用了Master/Slave结构来简化设计,将Master做的尽可能...

小樱桃Cherry
2018/08/24
0
0
Marathon+Mesos+Docker部署

Marathon 马拉松是一个生产级的容器编排平台,用于中间层的数据中心操作系统(DC/OS)和Apache Mesos.为部署提供提供REST API服务,有授权和SSL、配置约束,通过HAProxy实现服务发现和负载平衡...

回忆总想哭
2018/08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
1
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
2
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
3
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
2
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部