Mesos 1.5发布,在存储性能资源管理以及容器化方面有重大改进

Posted 分布式实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mesos 1.5发布,在存储性能资源管理以及容器化方面有重大改进相关的知识,希望对你有一定的参考价值。

今天,我很高兴向大家宣布,Apache Mesos 1.5.0版本已经正式与您见面!

新的功能与改进

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


Mesos 1.5当中包含资源管理、存储与容器化方面的多项重大改进。容器存储接口(简称CSI)支持正是Mesos 1.5当中全新的实验性能力之一,此外亦有大量与之配合的新功能伴随1.5版本一道推出。对代理进行重新配置的新能力将使得操作人员拥有更出色的使用体验。性能提升使得主节点故障转移速度提升80%到85%,而v1 API性能也得到了显著改善。新版本中的资源管理机制更为灵活。此外,同样重要的是,镜像垃圾收集与更强大的Windows支持能力使得您能够更轻松地在不同基础设施类型之上运行Mesos,同时亦可在Mesos之上简单运行多种不同工作负载。

在接下来的文章中,我们将共同了解Mesos 1.5当中的各项卓越改进。

容器存储接口支持

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


Mesos 1.5以实验性方式增加了对容器存储接口(简称CSI)[1]的支持能力,这项新规范为存储供应商与容器编排平台之间的全部交互活动定义了一个通用型API。这项功能的出现无疑是Mesos、Kubernetes、Cloud Foundry以及Docker技术社区之间密切合作的结果。CSI的主要作用在于允许存储供应商编写出适用于全部容器编排平台的插件。

对CSI的支持将帮助Mesos始终与规模更大的存储生态系统保持步调一致,从而确保Mesos一直具备更强大的存储支持能力。用户将能够在包含Mesos的任何存储系统当中使用一致的API选项。CSI的out-of-tree插件模式将Mesos的发布周期与存储系统的发布周期区分开来,使得集成系统本身更具可持续性与可维护性。

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


上图所示为Mesos所支持的CSI高层架构。若需了解更多细节信息,请参阅 说明文档[2]。

提升操作人员使用体验

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进

代理重新配置策略

在Mesos 1.5之前,用户无法对代理的配置作出任何变更——惟一的方法就是关闭该代理上运行的所有任务,并使用新的代理ID重新启动。任何变化,例如添加额外属性或者新接入磁盘驱动器,都将导致代理启动中止并引发令人头痛的错误:
EXIT with status 1: Failed to perform recovery: Incompatible agent info detected.
------------------------------------------------------------
[...]
------------------------------------------------------------
To remedy this do as follows:
Step 1: rm -f /path/to/work_dir/meta/slaves/latest
   This ensures agent doesn't recover old live executors.
Step 2: Restart the agent.
从1.5版本开始,操作人员能够使用新的代理命令行标记--reconfiguration_policy 对代理上应当允许的操作类型进行配置。在将该标记的值设置为additive时,代理将能够接受一切对代理资源量的变更以及对其它属性或故障域的调整。

未来,我们还希望能够进一步添加--reconfiguration_policy=any 设置选项以允许对代理配置作出任意变更。

性能改进

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


此版本还包括对主节点故障转移与v1操作状态查询API性能的改进。主节点故障转移完成时间的缩短,源自数据吞吐量高达450%到600%的显著提升,这意味着整体完成时间将缩短80%到85%。

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


除此之外,v1操作状态查询API的性能也得到了极大改进,这要归功于我们消除了过程中不必要的复制操作。具体来讲,目前v1 protobuf GetState调用速度较v0提高了36%。此外,v1 JSON Get Sstate性能亦提升了四倍以上。

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


更多详尽基准测试结果,请参阅此电子表格[3]。

资源管理

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进

配额保障改进

此次发布的新版本当中引入了多项与配额机制相关的改进。如今,Mesos将能够更好地保证角色获取配额以及角色不致超额等等,例如:

  • 此前,一个角色可收集未使用的预留配额以“愚弄”配额系统,但如今新版本会在分配资源时对预留配额进行核算,从而防止这种情况的发生。

  • 资源如今会以细粒度方式进行分配,以防止角色出现超额状况。

  • 无配额角色可能收到保留资源的bug已经得到修复。

    角色的保留资源高于配额资源时,可能出现配额空间缺失的问题已经得到修复。

  • 当把资源分配给某个具有资源配额的角色时,此前的版本亦会将部分超出该角色配额之外的资源移交给它。这意味着不同角色的资源配额可能无法得到正确执行。目前这个问题已经通过在分配资源时计算余量的方式[4]得到解决。


资源提供方抽象

为了将资源与代理生命周期加以拆毁,我们引入了资源提供方这一抽象机制。其作用在于支持代理资源的动态变化、外部资源供应方整合乃至集群范围内资源管理。作为资源责任分离思路的组成部分,我们引入了一项新的资源分配协议,旨在更明确地就成功或失败结果进行通信,同时实现各集群组件间的协调。我们使用新的资源供应方抽象将代理本地存储资源同CSI通过接口加以整合。

容器化与多平台支持

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进

Windows 支持能力得到改善

随着Mesos 1.5版本的发布,Windows支持能力得到了极大改善。现在,您在利用Mesos容器运行任务时,可以通过作业对象(MEOS-6690[5])立足操作系统层级实现资源限制。在使用windows/cpu与windows/mem隔离器时,您可以对CPU周期与虚拟内存强制加以限制。此外,新版本现在也能够正确支持CPU与内存统计信息收集。Mesos fetcher已经被移植到Windows平台,支持通过TLS自动下载文件并释放ZIP压缩文件。在进行配置时,libprocess现在可配合Windows上的OpenSSL支持能力进行构建,这意味着TLS连接将可立足集群之内实现(请注意,由于Windows本身不提供OpenSSL,因此您需要在外部构建或安装OpenSSL)。第一种验证方法CRAM-MD5此次也正式登陆Windows,因此代理将可借此与主节点进行验证。HTTP与TCP状态检查机制也已经能够作用于Windows代理(可用于shell任务; Docker容器运行状态检查也即将推出)。Meos代理不再需要以管理员身份运行,因为其现在能够像普通用户一样创建符号链接,且此项功能已经被集成于代理当中。最后,虽然在上一版本中已经实现,但这里不妨再提一句——Windows本地长路径支持已经实现,意味着您将能够更轻松地立足Windows运行代理(无需进行注册表配置)。

容器镜像垃圾收集

Mesos 1.5版本支持容器镜像垃圾收集。目前您可以通过两种方式对未使用的镜像层进行垃圾收集:自动与手动。这项功能允许用户轻松解决磁盘空间被docker镜像大量占用的难题。具体请参阅容器镜像垃圾收集说明文档[6]以了解更多细节信息。

独立容器

本次新版本包含一组新的操作程序API,用于启动并管理所谓“独立容器”这一新型原语。独立容器类似于由Mesos代理之上的框架所启动的容器,只是独立容器由操作程序在Mesos代理上直接启动。如此一来,这些容器将无需使用Mesos执行器,且具有其它一些限制特性(例如无法使用预留资源等)。与此同时,独立容器几乎与其它容器完全隔离,并与容器镜像类似——能够使用同样的容器化功能集。

此项功能的发布旨在支持CSI工作流,但各API并不限于此用例。未来,此项功能可能将被用于为各代理节点实现守护进程。具体请参阅MESOS-7302以了解更多细节信息。

Mesos内部

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进

支持gRPC客户端

此次新版本包含一套gRPC客户端打包器。是一种PC机制,并作为RESST API的替代性方案在云原生领域愈发受到欢迎。作为将gRPC整合至Mesos的第一步,我们在libprocess当中添加了此客户端打包器以支持CSI。该功能在默认情况下处于禁用状态,您可以在安装有OpenSSL库的集群当中使用--enable-grpc (autotools)加以启用。该包装类负责在内部维护gRPC运行时数据结构,同时提供一个简单接口,以便实现与libprocess的基于actor模式相兼容的异步gRPC调用。我们还利用这项新功能连接CSI插件。除此之外,大家也可以使用这项新功能创建Mesos模块,用以同其基于gRPC的服务进行通信。

复制日志改进

Mesos复制日志可帮助各类框架(例如Apache Aurora)将自身状态保存为多套副本,从而在故障转移及重新启动时实现状态保留。从1.5版本开始,大家将能够读取来自一套非主导VOTING复制日志副本处以最终一致化方式进行读取。如此一来,您将能够在非主导框架副本之上进行其它处理工作,例如将部分读取任务移交至待命副本,或者将高频复制日志副本 保留在内存内以缩短故障转移时间。

升级

Mesos 1.5发布,在存储、性能资源管理以及容器化方面有重大改进


从Mesos 1.4.0升级至Mesos 1.5.0非常简单。请参阅升级指南[7]以了解更多与升级至Mesos 1.5.0相关的细节信息。

希望Apache Mesos 1.5能够让您满意!

相关链接:

  1. https://github.com/container-storage-interface/spec

  2. http://mesos.apache.org/documentation/latest/csi/

  3. http://mesos.apache.org/blog/performance-working-group-progress-report/

  4. https://issues.apache.org/jira/browse/MESOS-8352

  5. https://issues-test.apache.org/jira/browse/MESOS-6690

  6. http://mesos.apache.org/documentation/latest/container-image/#garbage-collect-unused-container-images

  7. http://mesos.apache.org/documentation/latest/upgrades/


原文链接:http://mesos.apache.org/blog/mesos-1-5-0-released/

Kubernetes 实战培训


本次培训内容包括:Docker容器的原理与基本操作;容器网络与存储解析;Kubernetes的架构与设计理念详解;Kubernetes的资源对象使用说明;Kubernetes 中的开放接口CRI、CNI、CSI解析;Kubernetes监控、网络、日志管理;容器应用的开发流程详解等,点击识别下方二维码加微信好友了解 。


3月23日开始上课,点击阅读原文链接即可报名。

以上是关于Mesos 1.5发布,在存储性能资源管理以及容器化方面有重大改进的主要内容,如果未能解决你的问题,请参考以下文章

Mesos使用统一容器管理器支持多种容器

OPS基于Mesos/Docker构建的Elasticsearch容器化私有云

一个可供参考的使用Mesos管理虚拟机的实践分享

深入浅出Mesos:持久化存储和容错

去哪儿网OPS团队基于Mesos/Docker构建的Elasticsearch容器化私有云

容器存储架构比较:KubernetesDocker和Mesos Compare