发布于 2015-12-05 11:02:49 | 873 次阅读 | 评论: 1 | 来源: 网络整理
Mesos 在0.15.0 版本增加了 应用框架的认证支持。在0.19.0 版本增加了 slave节点认证。认证功能用于确保只有信任实体可以与 mesos集群进行交互。
在Mesos中,有三种情况需要用到认证功能:
Mesos认证引擎:Cyrus SASL 库,非常灵活的一个认证框架,可双向认证,支持多种认证机制(ANONYMOUS, PLAIN, CRAM-MD5, GSSAPI 等)。Mesos默认使用 CRAM-MD5 认证,用户可自定义其他认证方式。
CRAM-MD5 用的是 principal 和 secret 值对,principal 用于表示 应用框架的身份(注意,身份和应用框架用户、应用框架角色不一样,应用框架用户指 运行应用框架执行器的帐号,应用框架角色用于确定应用资源使用权限。)。
配置选项,如下:
--[no-]authenticate
设定是否开启应用框架认证。若开启,则只有经过认证的应用框架可注册到Master节点,若关闭,则未认证的应用框架也可以注册。--[no-]authenticate_slaves
设定是否开启Slave节点认证。若开启,则所有的Slave节点只有经过认证才可注册到Master节点,若关闭,则未认证的Slave节点也可以注册。--authenticators
设定认证方式,默认 crammd5,可通过--modules
指定自己想用的其他认证方式。--credentials
设定证书列表存放目录。证书列表可以是 纯文本也可以是json格式,内容根据认证方式不同而不同,若设定好了,则不管设定的是什么认证方式,证书在卸载的endpoint里仍然都有效。--authenticatee
设定认证方式,默认 crammd5。--credential
证书列表,和Master节点类似,不同的是,这里只能有一个证书。在Master节点创建 证书列表,内容格式如下:
principal1 secret1
principal2 secret2
在Master节点,启动 证书验证服务:(假设证书文件存放在 ~/credentials
):
./bin/mesos-master.sh --ip=127.0.0.1 --work_dir=/var/lib/mesos --authenticate --authenticate_slaves --credentials=~/credentials
在Slave节点,新建 证书列表,内容格式如下,只有一行,假设存放在 ~/slave_credential
:
principal1 secret1
在Slave节点,启动 证书验证服务:若运行成功,Slave节点就获得了Master节点认证。
./bin/mesos-slave.sh --master=127.0.0.1:5050 --credential=~/slave_credential
应用框架:若开启认证功能,则所有应用,也都需要到Mesos Master节点处获得认证。应用的认证方式:当一个证书对象 构建的时候,调度器 调用相关驱动 处理 认证。 可使用测试应用来测试 Mesos的认证框架,如下:
MESOS_AUTHENTICATE=true DEFAULT_PRINCIPAL=principal2 DEFAULT_SECRET=secret2 ./src/test-framework --master=127.0.0.1:5050