前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >marathon和mesos的zookeeper数据加密和验证

marathon和mesos的zookeeper数据加密和验证

作者头像
domain0
发布2018-08-02 10:49:49
9870
发布2018-08-02 10:49:49
举报
文章被收录于专栏:运维一切

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

代码语言:javascript
复制
#zkCli.sh
create /mynode content digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa

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

digest:user:tpUq/4Pn5A64fVZyQ0gOJ8ZWqkY=:cdrwa

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

代码语言:javascript
复制
获取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中的数据验证

代码语言:javascript
复制
#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和相关的接口需要有最起码的基础验证

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

代码语言:javascript
复制
--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的验证

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

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

代码语言:javascript
复制
--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和相关的配置文档 一些验证方面的资料

###遇到的问题

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/02/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档