文档章节

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

xueyi28
 xueyi28
发布于 2017/02/15 16:00
字数 1013
阅读 78
收藏 0
点赞 0
评论 0

###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

© 著作权归作者所有

共有 人打赏支持
xueyi28
粉丝 7
博文 88
码字总数 33322
作品 0
南宁
跟我一起学docker(16)--单节点mesos集群

Mesos简介 什么是MESOS? Apache Mesos 是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行 Hadoop、MPI、Hypertable、Spark。 几个基本概念: Mesos master:负...

IT人故事会 ⋅ 05/15 ⋅ 0

手把手教你如何在Docker环境下安装elastic-job-cloud

手把手教你如何在Docker环境下安装elastic-job-cloud 前言 本文默认你本地已经安装好了Docker环境,同时也具备本地编译打包elastic-job-cloud的环境工具(Git, Maven, JDK),这里仅介绍如...

huyong1990 ⋅ 05/28 ⋅ 0

Kubernetes on DC/OS最佳实践

考虑大家的知识背景有所不同,在介绍Kubernetes on DC/OS的原理与技术实现之前,我觉得还是有必要先简单地介绍一下Mesos,DC/OS以及Kubernetes之间的关系与区别。 准确的说Mesos与Kubernete...

Docker ⋅ 04/23 ⋅ 0

为什么 kubernetes 天然适合微服务

本文由 网易云 发布 最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发三大容器平台从功能方面来看,最后简直是一模一样。(可参考《...

wangyiyungw ⋅ 04/27 ⋅ 0

为什么Kubernetes天然适合微服务?

三大容器平台之争尘埃落定,Kubernetes成为各家公司做微服务支撑的首选平台。Kubernetes的胜出有社区运营的原因所在,但仅仅从技术角度来讲,Kubernetes相对于其他容器平台来讲,是有微服务基...

Docker ⋅ 04/16 ⋅ 0

elastic-job-cloud部署好后,任务状态一直显示FAILED

mesos-master的日志信息 mesos-slave的日志信息 zk的日志信息 调度器的日志信息 后面我把job删掉,重新注册了,mesos界面上就显示 Agent offline 再后面把/var/lib/mesos/meta/slaves/下的l...

Lynn8990 ⋅ 05/22 ⋅ 0

深入学习Kubernetes | 上海站

2016 年的时候,我们还在为 Swarm、Mesos、Kubernetes 谁能够在容器编排调度大战中胜出而猜测。经过不到一年的发展,Kubernetes 就以超过 70% 的市场占有率(据 TheNewStack 的调研报告)将另...

m2l0zgssvc7r69efdtj ⋅ 04/26 ⋅ 0

Kubernetes快速入门实战培训 | 上海站

2016 年的时候,我们还在为 Swarm、Mesos、Kubernetes 谁能够在容器编排调度大战中胜出而猜测。经过不到一年的发展,Kubernetes 就以超过 70% 的市场占有率(据 TheNewStack 的调研报告)将另...

m2l0zgssvc7r69efdtj ⋅ 05/02 ⋅ 0

Kubernetes入门与进阶实战培训

2016 年的时候,我们还在为 Swarm、Mesos、Kubernetes 谁能够在容器编排调度大战中胜出而猜测。经过不到一年的发展,Kubernetes 就以超过 70% 的市场占有率(据 TheNewStack 的调研报告)将另...

m2l0zgssvc7r69efdtj ⋅ 04/28 ⋅ 0

2018 Docker 用户报告 - Sysdig Edition

This article is part of an Virtualization Technology tutorial series. Make sure to check out my other articles as well: 2018 年度 Docker 用户报告 - Sysdig Edition Cyber-Securit......

RiboseYim ⋅ 06/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

2018上海云栖大会workshop-日志数据采集与分析对接

摘要: 日志数据采集与分析对接 课程描述 通过日志服务采集用户、数据库、业务等访问数据。演示对于业务日志分析与处理,程序日志查询与监控,打通日志与数据仓库对接案例。 日志种类 网站访...

猫耳m ⋅ 30分钟前 ⋅ 0

SpringMVC中的ContentNegotiatingViewResolver配置

pom.xml <properties><commons-lang.version>2.6</commons-lang.version><slf4j.version>1.7.6</slf4j.version><spring.version>4.1.3.RELEASE</spring.version> <jack......

颖伙虫 ⋅ 33分钟前 ⋅ 0

Spring Boot 2.0正式发布,升还是不升呢?

Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验。在现代企业级应用架构中,Spring技术栈几乎成为...

java高级架构牛人 ⋅ 34分钟前 ⋅ 0

打包时隐藏打印日志

1.打包时不允许项目中有打印的日志,可以在pch中加入下面这段代码即可 #ifdef DEBUG# define Log(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA...

小黑202 ⋅ 35分钟前 ⋅ 0

SSL双向认证的实现

环境 系统:archlinux/centOS nginx:nginx/1.12.2 浏览器:火狐firefox 前提:1.安装nginx。    2.安装openssl。 生成证书 新建工作目录  首先建立一个工作目录,这里以我的工作目录为例...

颖辉小居 ⋅ 41分钟前 ⋅ 0

vscode 代码格式化,语法检查插件ESLint+Prettier

ESLint+Prettier prettier只关注格式化 ,插件prettier-vscode,编辑器的配置setting.json会出现prettier插件的相关配置节点,同时也能看到一些默认的配置信息。 安装成功后,编辑器默认的格式...

momo1987 ⋅ 43分钟前 ⋅ 0

使用TinyProxy搭建代理服务器

什么是TinyProxy 它是一个代理服务器,用来实现http或https代理,windows系统一直在用ccproxy, 非windows系统,怎么开放个http代理呢?那就是TinyProxy。 安装 直接执行命令即可 sudo apt-g...

bengozhong ⋅ 43分钟前 ⋅ 0

掌握需求过程

1,需求必须可度量、可测试 2,需求是什么? 功能需求 非功能需求 限制条件 3,Volere需求过程 采用Volere需求过程,最好采用RUP,增量,迭代,螺旋,Scrum或其他类似的迭代式开发过程 (注意...

霜叶情 ⋅ 48分钟前 ⋅ 0

分布式微服务云架构开发Web应用

举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面。 @Controller public class HelloController { @RequestMapping("/") pub...

明理萝 ⋅ 49分钟前 ⋅ 0

图应用之关键路径(Critical Path)

之前我们介绍过,在一个工程中我们关心两个问题: (1)工程是否顺利进行 (2)整个工程最短时间。 之前我们优先关心的是顶点(AOV),同样我们也可以优先关心边(同理有AOE)。(Activity ...

临江仙卜算子 ⋅ 50分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部