Mesos 1.0.x 版本新的功能或改动

Mesos 1.0.x 版本新的功能或改动:

  • 在 Mesos 1.0 以前,以 SSL_ 为前缀的环境变量用于控制 libprocess 的 SSL。然而这些变量我们发现会与一些库或者程序(比如:openssl, curl 等)产生冲突。所以在Mesos 1.0 这个版本中, 将用 LIBPROCESS_SSL_* 来代替 SSL_*
  • 在 Mesos 1.0 以前,Mesos agent 会递归地改变挂载到容器中的持久卷的所属属性,在 Mesos 1.0 中,将改成非递归方式。
  • Mesos 1.0 在 ContainerConfig 中删除了驼峰式大小写的 protobuf 字段。具体可见:(include/mesos/slave/isolator.proto)
    • required ExecutorInfo executorInfo = 1;
    • optional TaskInfo taskInfo = 2;
  • 默认情况下 executors 将不再从 Agent 中继承环境变量。但我们可以显示的在 Agent 上,用 --executor-environment-variables flag 来指定哪些环境变量可以被 executor 继承。 Mesos 生成的环境变量比如: $MESOS_, $LIBPROCESS_ 将不会受影响。如果在 executor 中未指定 $PATH,将使用默认的值 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 资源分配器 (allocator) metric 名字发生改变,由原先的 allocator/event_queue_dispatches 变成了 allocator/mesos/event_queue_dispatches
  • 废弃 --docker_stop_timeout 这个配置项。
  • 将使用 ExecutorInfo.labels 字段来代替 ExecutorInfo.source
  • 废弃所有与 slave 相关的叫法,统一叫成 agent,在 WebUI 中,会废弃包含 slave 关键字的 sandbox 连接。在 mesos-cli 上将看不到 slave 这个子命令项了。
  • 今后 mesos 不会在为 agent 指定 work_dir 这个 flag 的默认值,所以一定要指定,否则 agent 会立即退出。
  • 使用 Json 格式的证书文件,废弃文本形式的。
  • 之前如果使用了持久卷,在销毁该卷的时候,不会把其上的数据删除掉,这个功能现在已经实现了,也即会一并删除。
  • Mesos 1.0 修改了如下的 endpoints 的 HTTP 状态返回码,即将 200 OK 改成 202 Accepted
    • /reserve
    • /unreserve
    • /create-volumes
    • /destroy-volumes
  • Scheduler APIv1 Scheduler HTTP API 中的 CommandInfo.URI 新添加了 output_file 字段
  • 为向后兼容, 将 scheduler.protoexecutor.proto 中的 CallEvent 枚举类型由 required 修改成了 optional
  • 在容器资源使用信息中添加了非终端任务元数据。
  • 删除 /observe HTTP endpoint
  • Mesos 1.0 将废弃 SET_QUOTA_WITH_ROLEDESTROY_QUOTA_WITH_PRINCIPAL 操作,采用 UPDATE_QUOTA_WITH_ROLE 来替代。同时,也用 UpdateQuota ACL 来替代 SetQuotaRemoveQuota ACL。 另外,引进了新的 GET_QUOTA_WITH_ROLE 操作和 get_quotas ACL 用于控制哪些 principal 可查询给定的 roles 的 quota 状态。 这个将会对本地授权者产生如下影响:
    • update_quotas 不能与 set_quotasremove_quotas 同时使用,否则会出错。
    • 如果之前使用了 set_quotas 或者 remove_quotas 那么 operators 必须先升级 mesos binary, 之后这些操作才能起作用。
    • 当确定升级完成后,operator 应该用 update_quotas 来代替 set_quotasremove_quotas
    • 在升级完成后, operator 可以用 get_quotas 来控制哪些 principal 可查询给定的 roles 的 quota 状态
  • Mesos 1.0 包含了几个关于 authorizer 的变动,特别影响到了 autorizer modules:
    • authorizer 接口被重构了用于去耦合 ACL 的定义语言。此外,也增加了获取 ObjectApprover 的选项。ObjectApprover 可以同步检查给定 Object 的授权,因此可以用于授权若干或大量 Objects,他们需要采用基于授权的 request 来复制。 注意:这个对于授权模块来说是一个 breaking change
    • 基于 HTTP endpoint 的授权可以使 operator 限制哪些集群状态可以让授权用户看到。比如 /state ,operator 可以让授权的用户只看到正在运行的 frameworks, tasks, or executors 的子状态。
    • autorization:Request 的 protobuf 中, subjectobject 属性改成了可选项。如果没有设置这些,则只允许有 ANY 语义的 ACL 请求。注意:这个对于授权模块来说是一个 semantic change
  • Mesos 为 authorization 提供了若干 HTTP endpoints. 注意:其中的一些 HTTP endpoint 是用于 Web UI 的,因此在有授权开启的集群中需要为 Web UI 设置 ACL 属性。
  • 粗粒度授权的 endpoints 有:
    • /files/debug
    • /logging/toggle
    • /metrics/snapshot
    • /slave(id)/containers
    • /slave(id)/monitor/statistics
  • 如果在定义 ACLs 时使用了 permissive:false 那么列出的这些 HTTP endpoints, 将会停止工作,除非为 get_endpoints 操作定义了 ACLs。
posted @ 2016-06-23 10:38  chenqiangzhishen  阅读(177)  评论(0编辑  收藏  举报