Mesos 认证、授权

认证、授权

用户: 用于master对framework和slave的认证
角色:

  1. 将framework分类
    在框架注册时,必须指定框架注册的角色信息,在资源分配是作为框架的属性进行影响分配结果
  2. 将用户分类
    用于定义某(些)用户对框架的操作信息, 比如注册、下线等
  3. 将资源分类
    在slave上配置, 用于指定资源只能由某角色使用
    操作: 主要用于限制framework的注册(register_frameworks),运行(run_tasks),下线(shutdown_frameworks)三种操作对应
    框架名称: 在框架向master注册时设置其名称

任务执行用户: 在slave上执行任务的系统用户

使用:

master启动:

mesos-master --ip=192.168.56.101 --zk=zk://localhost:2181/mesos --quorum=1 --work_dir=/var/lib/mesos --log_dir=/var/log/mesos --hostname=192.168.56.101 --cluster=mesos --authenticate=true --authenticate_slaves=true --authenticators=crammd5 --credentials=/root/run/credentials --roles=marathon_role,chronos_role --acls=/root/run/acls.json

参数说明:

  1. --authenticators=crammd5
    设置认证方式

  2. --credentials=/root/run/credentials
    设置用户名密码
    文件内容:

    user1 password1
    user2 password2
    marathon_user marathon_password
    chronos_user chronos_password
    framework_user framework_password
    

    每行对应一个用户名和密码信息

  3. --authenticate=true
    设置在framewrok注册时对用户进行认证

  4. --authenticate_slaves=true
    设置在slave注册时对用户进行认证

  5. --roles=marathon_role,chronos_role
    设置角色列表

  6. --acls=/root/run/acls.json
    设置访问权限
    文件内容:

{   
    "permissive" : false,
    "register_frameworks" : [
        {
            "principals" : {
                "values" : ["marathon_user"]
            },
            "roles" : {
                "values" : ["marathon_role"]
            }
        },
        {
            "principals" : {
                "values" : ["chronos_user"]
            },
            "roles" : {
                "values" : ["chronos_role"]
            }
        }
    ],
    "run_tasks" : [
        {
            "principals" : {
                "values" : ["marathon_user", "chronos_user"]
            },
            "users" : {
                "values" : ["root"]
            }
        }
    ],
    "shutdown_frameworks" : [
        {
            "principals": {
                "values": ["framework_user"]
            },
            "framework_principals": {
                "type": "ANY"
            }
        }
    ]
}

解释:

  1. 框架只能由用户marathon_user以marathon_role角色或用户chronos_user以chronos_role角色像master发起注册
  2. 框架只能使用户只能使用marathon_user和chronos_user且以root系统用户运行任务
  3. 只允许framework_user通过restapi关闭所有的框架下线
  4. 在json配置中有value有两种设置可以是values或者type,values对应具体的用户名、角色、框架名称、系统用户。type对应范式匹配可设置为NONE或ANY,分别表示没有任何值和所有值

slave启动

mesos-slave --ip=192.168.56.102 --hostname=192.168.56.102 --master=zk://192.168.56.101:2181/mesos --containerizers=docker,mesos --log_dir=/var/log/mesos --work_dir=/var/lib/mesos --authenticatee=crammd5 --credential=credential

参数说明:

  1. --authenticatee=crammd5
    设置认证方式
  2. --credential=credential
    设置用户名密码信息
    文件内容:
    user2 password2
    

框架启动需要指定参数(以marathon, chronos为例):
marathon:

./start --master zk://localhost:2181/mesos --zk zk://localhost:2181/marathon --hostname 192.168.56.101 --framework_name marathon --mesos_user root --mesos_role marathon_role --mesos_authentication_principal marathon_user --mesos_authentication_secret_file /root/marathon-0.10.0/bin/mesos_secret
  1. --framework_name marathon
    设置框架名称
  2. --mesos_user root
    设置框架创建任务在slave上运行的系统用户
  3. --mesos_role marathon_role
    设置框架的角色
  4. --mesos_authentication_principal marathon_user
    设置框架的认证用户名
  5. --mesos_authentication_secret_file /root/marathon-0.10.0/bin/mesos_secret
    设置框架的认证用户密码,需要注意文件中只能包含名称,不能包含换行字符和空格

chronos:

./start-chronos.bash --master zk://localhost:2181/mesos --zk_hosts zk://localhost:2181 --http_port 8081 --mesos_framework_name chronos --user root --mesos_role chronos_role --mesos_authentication_principal chronos_user --mesos_authentication_secret_file /root/chronos-2.4.0/bin/mesos_secret
  1. --mesos_framework_name chronos
    设置框架名称
  2. --user root
    设置框架创建的任务在slave上运行的系统用户
  3. --mesos_role chronos_role
    设置框架角色
  4. --mesos_authentication_principal chronos_user
    设置框架的认证用户名
  5. --mesos_authentication_secret_file /root/chronos-2.4.0/bin/mesos_secret
    设置框架的认证密码,需要注意文件中只能包含名称,不能包含换行字符和空格

使用curl下线框架的示例

curl -XPOST "http://192.168.56.101:5050/master/teardown" --login-options AUTH=CRAM-MD5 --user "framework_user:framework_password" -d "frameworkId=20151019-154324-1698212032-5050-8277-0000" -v
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容