组件

了解 DC/OS 组件

DC/OS 由许多开源微服务组件组成,经过精心调整和配置以协同工作。Mesosphere DC/OS Enterprise 包括大部分开源 DC/OS 组件,但还包括多个额外组件、模块和插件。

Mesosphere DC/OS Enterprise 组件

图 1 - DC/OS 组件

从表面上看,DC/OS 是处理容器编排、包管理和安全的包容性容器平台。从根本上说,DC/OS 是建立在 Apache Mesos 基础之上的操作系统,处理群集管理和软件定义网络,同时简化日志记录和度量标准收集。

群集管理

DC/OS 提供了一种作为单个群集级别系统查看和操作大量单个机器级系统的方法。它隐藏了 Mesos(分布式系统内核)的复杂性,具有更高级别的抽象概念、接口和工具。群集管理是该功能的核心,包括内核、其依赖关系及其用户界面。

Apache Mesos

Mesos 作为分布式系统内核来管理资源和任务。Mesos 管理节点揭示调度器、执行器和操作界面,以便进行群集管理。Mesos 代理节点管理每个 DC/OS 代理节点 上的单个执行器、任务和资源。Mesos Agent Public 是配置用于在 DC/OS 公共代理节点 上运行的 Mesos 代理节点。

系统服务

  • dcos-mesos-master.service
  • dcos-mesos-slave.service
  • dcos-mesos-slave-public.service

阅读以下文档资源,了解有关 Apache Mesos 的更多信息:

Apache ZooKeeper

ZooKeeper 为配置、同步、名称注册和群集状态存储提供一致且高度可用的分布式键值存储。

系统服务

不适用 - ZooKeeper 由 Exhibitor 监督。

阅读以下文档资源,了解有关 Apache Zookeeper 的更多信息:

Exhibitor

Exhibitor 监督 ZooKeeper 并提供管理 Web 界面。

系统服务

  • dcos-exhibitor.service

阅读以下文档资源,了解有关 Exhibitor 的更多信息:

DC/OS 安装工具

DC/OS 安装工具(dcos_generate_config.ee.sh)生成安装工件并安装 DC/OS。作为每个节点上安装过程的一部分,DC/OS 下载服务从 bootstrap 机器下载安装工件,DC/OS 设置服务利用 DC/OS 组件包管理器 (Pkgpanda) 安装组件。

系统服务

  • dcos-download.service
  • dcos-setup.service

阅读以下文档资源,了解有关 DC/OS 和安装方法的更多信息:

DC/OS 备份 Enterprise

DC/OS 备份提供 DC/OS 组件状态的备份和恢复(在 1.10 中仅 Marathon)。

系统服务

  • dcos-backup-master.service
  • dcos-backup-master.socket

阅读以下文档资源,了解有关备份和恢复群集的更多信息:

DC/OS GUI

DC/OS GUI(Web 界面)是基于浏览器的系统仪表盘和控制中心。

系统服务

不适用 - GUI 由 Admin Router 服务。

阅读以下文档资源,了解有关 DC/OS GUI 的更多信息:

DC/OS CLI

DC/OS CLI 是基于终端的远程客户端。

系统服务

不适用 - CLI 是用户可下载的二进制文件。

阅读以下文档资源,了解有关 DC/OS CLI 的更多信息:

容器编排

容器编排是连续自动调度、协调和管理容器化流程及其所消耗的资源。DC/OS 包括最常用的基于容器的高级抽象的内置编排:作业和服务。许多使用案例通过这些基本抽象直接处理,但它们还能够为需要更灵活程序化生命周期管理自动化的任务部署定制调度器。

Marathon

Marathon 编排长期的容器化服务(应用程序和 Pod)。

系统服务

  • dcos-marathon.service

阅读以下文档资源,了解有关 DC/OS Marathon 的更多信息:

DC/OS 作业(Metronome)

DC/OS 作业(Metronome)编排短期的、计划的或即时的容器化作业。

系统服务

  • dcos-metronome.service

阅读以下文档资源,了解有关 DC/OS Metronome 的更多信息:

容器运行时

容器运行时在隔离操作系统级别环境中执行和管理机器一级的进程。DC/OS 使用 Mesos 的容器化工具抽象支持多个容器运行时。

通用容器运行时

通用容器运行时(Mesos 容器化工具)是内置于 Mesos 代理节点的逻辑组件,严格来说不是一个单独的进程。它使用可配置的隔离器对 Mesos 任务执行容器化。通用容器运行时支持多种图像格式,包括 Docker 镜像,无需使用 Docker 引擎。

系统服务

不适用 - 通用容器运行时是 Mesos 代理节点的一部分。

阅读以下文档资源,了解有关通用容器运行时的更多信息:

Docker 引擎

Docker 引擎不由 DC/OS 安装程序安装,而是在每个节点上运行的系统附属。Mesos 代理节点还包括一个名为 Docker 容器化工具的独立逻辑组件,将 Mesos 任务的容器化分配给 Docker 引擎。

系统服务

  • docker.service - Docker 引擎不由 DC/OS 安装程序安装。

阅读以下文档资源,了解有关 Docker 引擎的更多信息:

Docker GC

Docker GC 定期收集 Docker“垃圾”容器和图像。

系统服务

  • dcos-docker-gc.service
  • dcos-docker-gc.timer

阅读以下文档资源,了解有关 Docker GC 的更多信息:

日志记录和度量标准

没有任何软件能完美运行,尤其是在首次运行时。在整个群集分配任务以及分析和调试这些服务的正常模式都会变得繁琐。DC/OS 包括多个组件,通过聚合、缓存和流式传输日志、度量标准和群集状态元数据来减轻调试分布式系统的辛苦。

DC/OS 网络度量标准 Enterprise

DC/OS 网络度量标准揭示了网络相关度量标准。DC/OS 网络度量标准也被称为 DC/OS 网络 API。

系统服务

  • dcos-networking_api.service

DC/OS 诊断

DC/OS 诊断汇总并揭示组件的运行状况。DC/OS 诊断也被称为 DC/OS 分布式诊断工具。

系统服务

  • dcos-diagnostics.service
  • dcos-diagnostics.socket

阅读以下文档资源,了解有关 DC/OS 诊断的更多信息:

DC/OS 日志

DC/OS 日志服务揭示节点、组件和容器(任务)日志。

系统服务

  • dcos-log-master.service
  • dcos-log-master.socket
  • dcos-log-agent.service
  • dcos-log-agent.socket

阅读以下文档资源,了解有关 DC/OS 日志的更多信息:

日志轮换

Logrotate 管理历史日志文件的轮换、压缩和删除。

系统服务

  • dcos-logrotate-master.service
  • dcos-logrotate-master.timer
  • dcos-logrotate-agent.service
  • dcos-logrotate-agent.timer

阅读以下文档资源,了解有关 DC/OS 日志轮换的更多信息:

Telegraf

Telegraf 是一个可配置的度量标准管道。它默认收集系统、容器和应用程序度量标准。

系统服务

  • dcos-telegraf.service
  • dcos-telegraf.socket

阅读以下文档资源,了解有关 DC/OS Telegraf 的更多信息:

DC/OS 信号

DC/OS 信号服务报告群集遥测和分析,以帮助改进 DC/OS。管理员可以在安装时间 选择退出遥测

系统服务

  • dcos-signal.service
  • dcos-signal.timer

阅读以下文档资源,了解有关 DC/OS 信号的更多信息:

DC/OS 历史记录

DC/OS 历史记录服务缓存并揭示历史系统状态,以促进 GUI 中的群集使用率统计信息。

系统服务

  • dcos-history.service

阅读以下文档资源,了解有关 DC/OS 历史记录的更多信息:

网络

在为计算机提供数字而非名字的世界里,任务是自动调度的,依赖关系以声明方式定义,服务在分布式集合中运行,网络管理也需要从插入电缆提升到配置软件定义网络。为实现这个目标,DC/OS 包含了用于路由、代理、名称解析、虚拟 IP、负载均衡和分布式重配置的一系列网络组件。

Admin Router

Admin Router 使用 NGINX 揭示组件和服务的统一控制平面代理。Admin Router 代理为节点特定的运行状况、日志、度量标准和包管理内部端点提供代理。

系统服务

  • dcos-adminrouter.service
  • dcos-adminrouter-agent.service

阅读以下文档资源,了解有关 DC/OS Admin Router 的更多信息:

Mesos DNS

Mesos DNS 提供群集内基于域名的服务发现。

系统服务

  • dcos-mesos-dns.service

阅读以下文档资源,了解有关 Mesos DNS 的更多信息:

DC/OS 网络

dcos-net 是一个 Erlang 虚拟机,主持以下网络应用程序:

  • dcos-dns:基于 DNS 的分布式服务发现。
  • dcos-overlay:适合 UCR 和 Docker 容器的 SDN 解决方案。
  • dcos-l4lb:分布式 4 层负载均衡器。

系统服务

  • dcos-net.service
  • dcos-net-watchdog.service

阅读以下文档资源,了解有关 DC/OS Net 的更多信息:

Generate resolv.conf

Generate resolv.conf 通过更新 /etc/resolv.conf 以促进 DC/OS 软件定义网络来配置网络名称解析。

系统服务

  • dcos-gen-resolvconf.service
  • dcos-gen-resolvconf.timer

阅读以下文档资源,了解更多有关 Generate resolv.conf 的信息:

包管理

正如机器操作系统需要包管理以安装、升级、配置和移除单个应用程序和服务一样,数据中心操作系统也需要包管理来对分布式服务执行同样的操作。在 DC/OS 中,包管理有两个级别:组件的机器级别以及用户服务的群集级别。

DC/OS 包管理器 (Cosmos)

DC/OS 包管理器 (Cosmos) 安装和管理 DC/OS 软件包存储库 中的 DC/OS 软件包,如 Mesosphere Universe

系统服务

  • dcos-cosmos.service

阅读以下文档资源,了解有关 DC/OS 包管理器(Cosmos)的更多信息:

DC/OS 组件包管理器 (Pkgpanda)

DC/OS 组件包管理器 (Pkgpanda) 安装和管理 DC/OS 组件。

系统服务

  • dcos-pkgpanda-api.service
  • dcos-pkgpanda-api.socket

阅读以下文档资源,了解有关 DC/OS 组件包管理器 (Pkgpanda) 的更多信息:

IAM 和安全 Enterprise

DC/OS Enterprise 中的身份和访问管理由用户、用户组和权限构成的内部数据库管理。也可以附加外部身份提供商,以充分利用现有数据库。权限由 Admin Router 的反向代理在边缘执行,也在组件级别执行,以控制对特定操作的访问。SSL 证书等密钥也可以安全地生成、管理、存储并添加到用户服务中。

DC/OS 身份和访问管理器 (Bouncer)

DC/OS 身份和访问管理器 (IAM) 通过管理用户、用户组、服务帐户、权限和身份提供程序,控制对 DC/OS 组件和服务的访问。除管理本地用户数据库以外,DC/OS IAM 还可以使用 LDAP、SAML 或 Open ID Connect 来分派给外部身份提供程序。对于细粒度的访问控制,其他 DC/OS 组件(如 Mesos 和Marathon)直接与 DC/OS IAM 集成。DC/OS IAM 也被称为 Bouncer。

系统服务

  • dcos-bouncer.service

阅读以下文档资源,了解有关 DC/OS 标识和访问管理器 (Bouncer) 的更多信息:

CockroachDB

CockroachDB 是一个分布式 SQL 数据库,基于事务性、高度一致的键值对存储。

注意:CockroachDB 目前仅由 DC/OS 身份和访问管理器使用。

系统服务

  • dcos-cockroach.service

阅读以下文档资源,了解有关 CockroachDB 的更多信息:

DC/OS 证书颁发机构

DC/OS 证书颁发机构 (CA) 发布已签署的数字证书,确保通信安全。DC/OS CA 是基于 Cloudflare 的 Cfssl

系统服务

  • dcos-ca.service

阅读以下文档资源,了解有关 DC/OS 证书颁发机构的更多信息:

DC/OS 密钥

DC/OS 密钥提供一个安全的 API,用于存储并从 Vault (一个密钥存储库)检索密钥。

系统服务

  • dcos-secrets.service

阅读以下文档资源,了解有关 DC/OS 密钥的更多信息:

Vault

Vault 是一个用于安全地管理密钥的工具。密钥是指您希望控制其访问权限的任何内容,例如 API 密钥、密码、证书等。Vault 提供与任何密钥的统一界面,同时提供严密的访问控制并记录详细的审核日志。

系统服务

  • dcos-vault.service

阅读以下文档资源,了解有关 Vault 的更多信息:

存储

DC/OS 提供了许多不同方法来将磁盘空间和卷调配到任务。其中一种方法是外部持久卷,由其自己的组件管理。

REX-Ray

REX-Ray 编排调配、附加和安装外部持久卷。

系统服务

  • dcos-rexray.service

阅读以下文档资源,了解有关 REX-Ray 的更多信息:

套接字和计时器

多个组件被配置为按需使用 systemd 套接字,使得可以在请求出现时将其启动,而不是持续运行和不必要地消耗资源。虽然这些套接字是单独的 systemd 单元,但它们不被视为是单独组件。

多个组件被配置为方便使用 systemd 计时器,使得它们可以定期执行或重新启动。定期执行避免了持续执行和不必要的资源消耗。定期重新启动使得可以从下游依赖关系(如基于时间的 DNS 缓存到期)中提取新配置。虽然这些计时器是单独的 systemd 单元,但它们不被视为是单独组件。

组件安装

DC/OS 组件由 DC/OS 组件包管理器 (Pkgpanda)(用于 systemd 单元的包管理器)安装、升级和管理。

要查看 DC/OS 安装工具管理的软件包的完整列表,请参阅 DC/OS 源存储库的软件包目录

Systemd 服务

大多数 DC/OS 组件在 DC/OS 节点上作为 systemd 服务运行。

要查看 systemd 在任何特定节点上运行的组件的列表,请列出 /etc/systemd/system/dcos.target.wants/ 目录的内容或执行 systemctl | grep dcos- 以查看其当前状态。

管理节点

  1. ls /etc/systemd/system/dcos.target.wants/ -1
  2. dcos-adminrouter.service
  3. dcos-backup-master.service
  4. dcos-backup-master.socket
  5. dcos-bouncer-legacy.service
  6. dcos-bouncer.service
  7. dcos-ca.service
  8. dcos-cockroach.service
  9. dcos-cosmos.service
  10. dcos-diagnostics.service
  11. dcos-diagnostics.socket
  12. dcos-epmd.service
  13. dcos-exhibitor.service
  14. dcos-gen-resolvconf.service
  15. dcos-gen-resolvconf.timer
  16. dcos-history.service
  17. dcos-log-master.service
  18. dcos-log-master.socket
  19. dcos-logrotate-master.service
  20. dcos-logrotate-master.timer
  21. dcos-marathon.service
  22. dcos-mesos-dns.service
  23. dcos-mesos-master.service
  24. dcos-metrics-master.service
  25. dcos-metrics-master.socket
  26. dcos-metronome.service
  27. dcos-navstar.service
  28. dcos-networking_api.service
  29. dcos-pkgpanda-api.service
  30. dcos-secrets.service
  31. dcos-secrets.socket
  32. dcos-signal.service
  33. dcos-signal.timer
  34. dcos-spartan.service
  35. dcos-spartan-watchdog.service
  36. dcos-spartan-watchdog.timer
  37. dcos-vault.service

专用代理节点

  1. ls /etc/systemd/system/dcos.target.wants/ -1
  2. dcos-adminrouter-agent.service
  3. dcos-diagnostics.service
  4. dcos-diagnostics.socket
  5. dcos-docker-gc.service
  6. dcos-docker-gc.timer
  7. dcos-epmd.service
  8. dcos-gen-resolvconf.service
  9. dcos-gen-resolvconf.timer
  10. dcos-log-agent.service
  11. dcos-log-agent.socket
  12. dcos-logrotate-agent.service
  13. dcos-logrotate-agent.timer
  14. dcos-mesos-slave.service
  15. dcos-metrics-agent.service
  16. dcos-metrics-agent.socket
  17. dcos-navstar.service
  18. dcos-pkgpanda-api.service
  19. dcos-rexray.service
  20. dcos-signal.timer
  21. dcos-spartan.service
  22. dcos-spartan-watchdog.service
  23. dcos-spartan-watchdog.timer

公共代理节点

  1. ls /etc/systemd/system/dcos.target.wants/ -1
  2. dcos-adminrouter-agent.service
  3. dcos-diagnostics.service
  4. dcos-diagnostics.socket
  5. dcos-docker-gc.service
  6. dcos-docker-gc.timer
  7. dcos-epmd.service
  8. dcos-gen-resolvconf.service
  9. dcos-gen-resolvconf.timer
  10. dcos-log-agent.service
  11. dcos-log-agent.socket
  12. dcos-logrotate-agent.service
  13. dcos-logrotate-agent.timer
  14. dcos-mesos-slave-public.service
  15. dcos-metrics-agent.service
  16. dcos-metrics-agent.socket
  17. dcos-navstar.service
  18. dcos-pkgpanda-api.service
  19. dcos-rexray.service
  20. dcos-signal.timer
  21. dcos-spartan.service
  22. dcos-spartan-watchdog.service
  23. dcos-spartan-watchdog.timer