marathon和mesos的zookeeper数据加密和验证
博客专区 > xueyi28 的博客 > 博客详情
marathon和mesos的zookeeper数据加密和验证
xueyi28 发表于10个月前
marathon和mesos的zookeeper数据加密和验证
  • 发表于 10个月前
  • 阅读 60
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

###zookeeper设置用户验证访问权限 ####首先你要弄明白zookeeper的验证 先给一个例子

#zkCli.sh
create /mynode content digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa

创建一个节点,给予内容的同时,赋上对应的用户和密码验证方式。

digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa

这段就是重要的授权控制语句,它由三部分构成:scheme : id : permissions 关于这三个字段的意义和介绍,可以看这里 ####生成自己的帐号和密码

获取zookeeper的运行jar包加载路径
#ps axu|grep zookeeper
#java -cp  ./zookeeper-3.4.8.jar:./lib/log4j-1.2.16.jar   org.apache.zookeeper.server.auth.DigestAuthenticationProvider   user:password
user:password->user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=

这样就得到这里的帐号和密码了。 ####设置zookeeper中的数据验证

#zkCli.sh
setAcl /marathon digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa
setAcl /mesos digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa

####mesos和marathon的配置变更 zk://username:password@servers/path 不过这里提一点,mesos,marathon目前只支持digest的验证模式,代码里有写

https://github.com/apache/mesos/blob/81cd023eb9945a22c220edc966393dcfcdbce256/include/mesos/zookeeper/url.hpp

marathon关于zookeeper的验证测试

https://github.com/mesosphere/marathon/blob/75678c7704372f5e83ea7511ac42018182cd4e8c/src/test/scala/mesosphere/marathon/integration/ZooKeeperTest.scala

zookeeper的验证参考资料https://cwiki.apache.org/confluence/display/ZOOKEEPER/Client-Server+mutual+authentication

###mesos的验证 除了保护zookeeper的数据,我们还要去保护mesos的master和slave,当然framework也是需要的。mesos-master需要加装三个地方的验证:

  1. 验证合法的slave,只有通过验证的slave才被允许接入集群
  2. 验证合法的framework,只有通过验证的合法框架,才能被允许接入集群。
  3. 对mesos的webui和相关的接口需要有最起码的基础验证

为此你需要增加以下的验证配置:

--acls=file:///etc/mesos/acl.json 
框架注册的房屋i控制
--authenticate_slaves=true 
开启agent的验证
--authenticate_http_readonly=true 
开启webui和接口的只读验证
--authenticate_http_readwrite=true 
开启webui和接口的读写验证
--authenticate=true 
开启框架注册验证
--credentials=file:///etc/mesos/cred.json
验证帐号和密码的描述文件

###agent的验证

--default_role=your_role 
默认的角色
--credential=file:///etc/mesos/cred.json 
密钥文件
--docker_config=/root/.docker/config.json
私有镜像库的验证

这个要求Mesos版本要高一点,应该最起码要到1.0.x以上 ###famework的验证

--http_credentials user:password
webui的帐号和密码 
--mesos_authentication
--mesos_authentication_principal   mesos-user
marathon框架所要使用的验证帐号,在mesos-master那边的帐号
--mesos_authentication_secret_file  /etc/marathon/marathon.secret
所需的密码文件,注意文件里必须是一个裸密码,最好用echo -n "passsword">marathon.secret生成,里面不能有特殊字符

一定要注意自己用的相关软件的版本,marathon和mesos的版本中配置变更很频繁,遇到问题要多看help和相关的配置文档 一些验证方面的资料

###遇到的问题

I0308 11:17:00.726840 28051 slave.cpp:954] Authenticating with master master@192.168.119.132:5050
I0308 11:17:00.727154 28051 slave.cpp:965] Using default CRAM-MD5 authenticatee
I0308 11:17:00.727298 28051 slave.cpp:927] Detecting new master
I0308 11:17:00.727375 28062 authenticatee.cpp:121] Creating new client SASL connection
W0308 11:17:05.731155 28050 slave.cpp:1068] Authentication timed out
W0308 11:17:05.731495 28050 slave.cpp:1013] Failed to authenticate with master master@192.168.119.132:5050: Authentication discarded
I0308 11:17:15.281414 28059 slave.cpp:954] Authenticating with master master@192.168.119.132:5050
I0308 11:17:15.281615 28059 slave.cpp:965] Using default CRAM-MD5 authenticatee
I0308 11:17:15.281926 28066 authenticatee.cpp:121] Creating new client SASL connection
W0308 11:17:20.285291 28066 slave.cpp:1068] Authentication timed out
W0308 11:17:20.285634 28066 slave.cpp:1013] Failed to authenticate with master master@192.168.119.132:5050: Authentication discarded
W0308 11:13:04.119566 28067 slave.cpp:1013] Failed to authenticate with master master@192.168.119.132:5050: Authentication error: Failed to get list of mechanisms: SASL(-4): no mechanism available: Internal Error -4 in server.c near line 1757

mesos的验证方式采用的cram-md5的方式,在mesos的Master和slave和marathon的机器上都要安装cyrus-sasl-md5和cyrus-sasl-scram,否则就成了这个样子,客户端和服务端无法给出一个统一的验证方式,进而无法进行验证。

他妈的的我今天又遇到这个问题了,该安装的软件包都安装了,还是不行,最后你猜怎么着,这破玩意需要你配置好你本地的dns,就是你的/etc/resolv.conf,fuck,我有点略怀疑人生了都,居然这鬼还会影响到。

http://mesos.apache.org/documentation/latest/authentication/

https://mesosphere.github.io/marathon/docs/framework-authentication.html

共有 人打赏支持
粉丝 7
博文 75
码字总数 29178
×
xueyi28
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: