特性

了解 DC/OS 的独特特性

此处是对 DC/OS 独特特性的概述。

高资源利用率

DC/OS 使得可轻松充分利用您的计算资源。决定在哪里运行进程以最佳利用群集资源是很难的。决定在哪里布局其资源需求会随时间而变化的长期服务则更困难。实际上,没有哪个调度器能够高效且有效地布局所有类型的任务。

DC/OS 通过把资源管理与任务调度分离来管理此问题。Mesos 管理 CPU、内存、磁盘和 GPU 资源。任务布局被委派给更高级别的调度器,这些调度器更加了解其任务的特定要求和限制。此模式被称为双级调度,使得多个工作负载能够高效地协同定位。

混合工作负载共置

DC/OS 使得可以轻松在同一硬件上运行所有计算任务。

  • 对于调度长期运行服务,DC/OS 与 Marathon 紧密集成,以提供据以启动微服务、网络应用或其他调度器的稳固阶段。
  • 对于其他类型的工作,DC/OS 使得可以轻松地从行业标准调度器库中选择和安装。这为运行批处理作业、分析渠道、消息队列、大数据存储等打开了大门。
  • 对于复杂的自定义工作负载,您甚至可以编写自己的调度器,以优化和精确控制特定任务的调度逻辑。

容器编排

DC/OS 提供易于使用的容器编排,随时可使用。

Docker 提供良好的开发体验,但试图在生产中运行 Docker 容器会带来重大挑战。为克服这些挑战,DC/OS 包括了作为核心组件的 Marathon,为您提供经过严格测试的生产级调度器,能够编排容器化和非容器化的工作负载。通过 Marathon,您可以在数千个节点上实现数万个任务极端规模的调度。您可以使用高度可配置的声明式应用定义,通过节点、群集和关联分组来执行高级布局约束。

可扩展资源隔离

DC/OS 使得可以配置多个资源隔离区。

并非所有任务都有相同的要求。有些需要最大程度隔离才能保证性或性能。有些则是临时的、公共的或容易重新启动。最简单的隔离方法是将其分派给 Docker。在 DC/OS 上运行 Docker 容器很容易,但在隔离时 Docker 不好用。Mesos 容器化工具 更灵活,配有多个独立可配置隔离器以及可插拔的自定义隔离器。Mesos 容器化工具甚至可以运行 Docker 容器,而不会出现 dockerd 的脆弱性。

有状态存储支持

DC/OS 为您提供多种永久和临时存储选项。

外部持久卷、数据块存储的基本要求在许多平台上都有。这些很容易使用和推理,因为它们与传统服务器磁盘一样工作;然而,在设计上,它们会影响灵活性和复制速度。分布式文件系统是云本地应用程序的主要内容,但它们往往需要以新的方式考虑存储,由于是基于网络的互动,几乎总是较慢。

本地临时存储是 Mesos 默认设置,用于将临时磁盘空间分配给服务。这对许多无状态或半无状态 12 因素和云本地应用来说足够了,但可能不足以满足有状态服务。

本地持久卷弥补了差距,提供快速持久的存储。如果您的服务正在复制数据,或者驱动器是备份到近线或磁带机的 RAID,本地卷可以提供足够的容错性而无速度负担。

公共管理

DC/OS 使得可以轻松安装公共社区和专用私有包服务。

Mesosphere Catalog 包资源库将您连接到由行业标准开源调度器、服务和应用程序组成的库。您可以充分利用社区项目来批处理作业调度、高可用性数据存储、强大的消息队列等等。DC/OS 还支持从多个包存储库安装:您可以托管您自己的专用包,以便在公司内部或与您的客户共享。

与云无关的安装工具

DC/OS 安装工具使得可以轻松在物理机或虚拟机的任何群集上安装 DC/OS。

  • 对于拥有自己本地硬件或虚拟机调配基础设施的用户,CLI 安装工具提供了一种快速直观的方式来安装 DC/OS。
  • 对于部署到公共云的用户,DC/OS 可为 AWS、Azure 和数据包提供多个可配置的云资源调配模板。
  • 对于高级用户,高级安装工具提供可编写脚本的、可自动化的接口,与您首选的配置管理系统集成。

Web 和命令行界面

DC/OS Web 和命令行界面使得可以轻松监控和管理群集及其服务。

DC/OS Web 界面让您可以通过直观的浏览器导航、实时图形和交互调试工具,监控资源分配、正运行的服务、当前任务、组件健康状况、可用包等等。

DC/OS 命令行界面可以从终端控制 DC/OS。它功能强大,但编写脚本容易,具有多个可与已安装服务交互的插件。

灵活的可扩展性

DC/OS 让您能够转动表盘便可轻松地向上和向下扩展您的服务。

水平扩展在 Marathon 中很平常,只要您的服务支持即可。您可以随时更改服务实例的数量。DC/OS 甚至允许您根据会话计数,使用 Marathon 负载均衡器自动调整实例数量。

Marathon 中还支持垂直扩展,允许您为服务分配更多或更少的资源,自动执行滚动更新以重新安排实例而不停机。

向 DC/OS 群集添加节点很容易。DC/OS 安装工具使用可让您调配新节点的不可变工件,不必重新编译、重新配置或重新下载远程存储库的组件包。

高可用性

DC/OS 具有高可用性,使您的服务也很容易具有高可用性。

任务关键型服务需要健康状况监控、自我修复,以及对自己以及他们运行所在的平台和基础架构的容错性。DC/OS 为您提供多层保护。

为实现自我修复,DC/OS 服务受 Marathon 监控,并在出现故障时重启。即使不支持分配或复制的传统服务也可以通过 Marathon 自动重启,从而最大限度延长正常运行时间并减少服务中断。此外,所有核心 DC/OS 组件(包括 Marathon)都由 DC/OS 诊断服务监控,并在出现故障时由 systemd 重启。

为了实现容错,DC/OS 可以多个主配置运行。这不仅提供了系统级容错,还提供了调度器级容错。在升级期间,DC/OS 甚至可以承受节点失效而不丢失服务。

零停机升级

DC/OS 可在不停机的情况下提供自动化,以更新服务和系统。

Marathon 上运行的 DC/OS 服务都可以滚动、蓝绿或金丝雀部署模式进行更新。如果更新失败,只需单击便可将其回退。这些强大的工具对减少停机时间和用户中断至关重要。DC/OS 还通过强大的安装工具支持零停机升级。您可以通过一次合并更新,保持开源组件处于最新状态。

经过集成测试的组件

DC/OS 提供一套经过充分测试的开源组件,通过单个组合的工具将它们组合在一起。混合和匹配开源组件可能很困难。您永远不知道哪些版本能一起使用或它们之间交互产生的副作用是什么。DC/OS 能让您快速投入生产,专注于产品质量,而不是平台的稳定性。

服务发现和分布式负载均衡

DC/OS 包括多个用于自动化服务发现和负载均衡的选项。

分布式服务会产生分布式问题,但您不必自己解决这些问题。DC/OS 包括自动 DNS 端点生成、服务查找用的 API、用于高速内部通信的运输层 (L4) 虚拟 IP 代理,以及用于面向外部的服务的应用层 (L7) 负载均衡。

[企业]

分布式负载均衡器的控制和管理平面

[/enterprise]

DC/OS Enterprise 提供用于服务可用性和性能监控的集中式管理和控制平面。

虽然分布式负载均衡器是 DC/OS 服务的服务发现和服务可用性的理想选择,但监控和管理它们都需要工具和努力。DC/OS Enterprise 配备了 DC/OS 分布式负载均衡器用的集中式控制和管理平面,包含一个将所有分布式引擎统一到单个服务中心视图和单个服务健康状况度量标准集合的聚合 API。DC/OS Enterprise 还包括服务性能和健康状况监控 UI,帮助监控服务性能,检测根本原因服务降级问题,并确定根本原因。

群集周边安全

DC/OS 提供规范的设计,确保 DC/OS 群集与任何客户端(UI/浏览器、CLI、API 客户端)之间的任何管理和程序性通信均通过管理员安全区进行,并确保所有请求都通过 SSL 安全通道传输。DC/OS 管理节点是管理员安全区内 DC/OS 群集的入口点。更具体地说,API 网关是一个名为“Admin Router”的组件,用作反向代理,管理向 DC/OS 群集的所有管理连接。

[企业]

身份和访问管理

[/enterprise]

DC/OS Enterprise 包括内置身份和访问管理,允许您创建用户和组,并为每个用户和组分配不同级别的授权权限。DC/OS Enterprise 支持以下类型的用户和组:

  • 本地用户
  • 本地组
  • 远程 LDAP 用户
  • 远程 LDAP 组(仅用于导入到本地组)
  • 远程 SAML 用户
  • 服务用户账户
DC/OS Enterprise IAM 服务还包括对授权控制的支持,授权控制可以分配给上述每个负责人/用户。在表格“主题”中被给予特定权限组的用户可以对“对象”执行“操作”,其中“对象”是到 Marathon 应用程序组特定 DC/OS 服务的 API 端点,“操作”则列举可以对对象执行的一组操作,例如“创建、读取、更新或删除”。

[企业]

具有 LDAP、SAML 和 OpenID 连接的外部身份提供商

[/enterprise]

DC/OS Enterprise 集成了支持 LDAP v3 接口(包括 Microsoft Active Directory)的身份提供商以及基于 SAML 的提供商,使得您可以从现有用户目录导入 DC/OS 外部的用户,并在 DC/OS 中管理用户和组授权。

[企业]

具有加密通信的群集安全

[/enterprise]

DC/OS Enterprise 设计用于在本地和云中安全地运行。为确保群集安全,DC/OS Enterprise 支持 DC/OS 群集内部组件之间的加密通信。实现的方法是确保 DC/OS 与为 DC/OS 管理节点发放证书的证书颁发机构一起运行,并确保所有代理节点在 bootstrap 时具有已安装的证书 CA.crt。此机制确保 DC/OS 群集内部各种服务之间的所有通信均通过安全的 SSL 通道进行。

[企业]

带容器级授权的工作负载隔离

[/enterprise]

DC/OS Enterprise 支持细粒度工作负载隔离,使组织内的多个业务小组能运行共享群集中的容器和工作负载。这样可以向您保证,除了 Linux cGroup 提供的性能隔离以外,不同工作负载之间也有安全隔离。工作负载安全隔离由在每个代理节点上运行的 DC/OS 授权模块执行。此模块负责针对 DC/OS IAM 服务进行授权检查,以验证工作负载的用户/所有者是否获准执行他们尝试在群集中任何地方(包括在代理节点上)执行的操作。

具有可扩展虚拟网络 (SDN) 的每容器 IP

DC/OS 内置有对虚拟网络的支持,充分利用了容器网络接口 (CNI) 标准。默认情况下,已创建一个名为 dcos 的虚拟网络,任何连接到虚拟网络的容器都会收到自己的专用 IP。这让您可以运行对动态分配端口不友好的工作负载,而且会绑定处于现有应用程序配置中的现有端口。现在,有了对专用 IP/容器的支持,工作负载可自由绑定到任何端口,因为每个容器都可以访问整个可用范围的端口。

虚拟网络子网的网络隔离

DC/OS 现在支持在安装时创建多个虚拟网络,并将不重叠的子网与每个虚拟网络关联起来。DC/OS 用户可以跨 DC/OS 代理节点编写网络隔离规则,以确保隔离跨虚拟网络子网的流量。