}}

Components

Enterprise DC/OS Updated: June 2, 2017

DC/OS is composed of many open source microservice components meticulously tuned and configured to work together.

Mesosphere Enterprise DC/OS includes most of the open source DC/OS components but also includes several additional components, modules, and plugins.

From the top, DC/OS is a batteries-included container platform that handles container orchestration, package management, and security.

From the bottom, DC/OS is an operating system built on top of Apache Mesos that handles cluster management and software defined networking while simplifying logging and metrics collection.

Cluster Management

DC/OS provides a way to view and operate a large number of individual machine-level systems as a single cluster-level system. It hides the complexity of Mesos, the distributed systems kernel, with higher level abstractions, interfaces, and tools. Cluster management is the core of that functionality, including the kernel, its dependencies, and its user interfaces.

Apache Mesos

Description: Mesos manages resources and tasks as a distributed systems kernel. Mesos Master exposes scheduler, executor, and operator interfaces to facilitate cluster management. Mesos Agent manages individual executors, tasks, and resources on each DC/OS agent node. Mesos Agent Public is a Mesos Agent configured to run on DC/OS public agent nodes.

System Service(s):

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

See Also:

Apache Zookeeper

Description: Zookeeper provides consistent, highly available, distributed key-value storage for configuration, synchronization, name registration, and cluster state storage.

System Service(s): N/A – Zookeeper is supervised by Exhibitor.

See Also:

Exhibitor

Description: Exhibitor supervises Zookeeper and provides a management web interface.

System Service(s):

  • dcos-exhibitor.service

See Also:

DC/OS Installer

Description: The DC/OS Installer (dcos_generate_config.ee.sh) generates install artifacts and installs DC/OS. As part of the install process on each node, the DC/OS Download service downloads the install artifacts from the bootstrap machine and the DC/OS Setup service installs components using the DC/OS Component Package Manager (Pkgpanda).

System Service(s):

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

See Also:

DC/OS GUI

Description: The DC/OS GUI (web interface) is a browser-based system dashboard and control center.

System Service(s): N/A – The GUI is served by Admin Router.

See Also:

DC/OS CLI

Description: The DC/OS CLI is a terminal-based remote client.

System Service(s): N/A – The CLI is a user downloadable binary.

See Also:

Container Orchestration

Container orchestration is the continuous, automated scheduling, coordination, and management of containerized processes and the resources they consume.

DC/OS includes built-in orchestration of the most commonly used high level container-based abstractions: jobs and services. Many use cases are handled directly by these basic abstractions, but they also enable the deployment of custom schedulers for tasks that require more flexible programmatic lifecycle management automation.

Marathon

Description: Marathon orchestrates long-lived containerized services (apps and pods).

System Service(s):

  • dcos-marathon.service

See Also:

DC/OS Jobs (Metronome)

Description: DC/OS Jobs (Metronome) orchestrates short-lived, scheduled or immediate, containerized jobs.

System Service(s):

  • dcos-metronome.service

See Also:

Container Runtimes

Container runtimes execute and manage machine level processes in isolated operating system level environments.

DC/OS supports multiple container runtimes using Mesos’ containerizer abstraction.

Universal Container Runtime

Description: Universal Container Runtime (Mesos Containerizer) is a logical component built-in to the Mesos Agent, not technically a separate process. It containerizes Mesos tasks with configurable isolators. Universal Container Runtime supports multiple image formats, including Docker images without using Docker Engine.

System Service(s): N/A – Universal Container Runtime is part of Mesos Agent.

See Also:

Docker Engine

Description: Docker Engine is not installed by the DC/OS Installer, but rather is a system dependency that runs on each node. Mesos Agent also includes a separate logical component called Docker Containerizer which delegates the containerization of Mesos task to Docker Engine.

System Service(s):

  • docker.service – Docker Engine is not installed by the DC/OS installer.

See Also:

Docker GC

NEW IN 1.9.0

Description: Docker GC periodically garbage collects Docker containers and images.

System Service(s):

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

See Also:

Logging and Metrics

No software runs perfectly, especially not the first time. Distribute tasks across a cluster and the normal patterns of analyzing and debugging these services become tedious and painful. So DC/OS includes several components to help ease the pain of debugging distributed systems by aggregating, caching, and streaming logs, metrics, and cluster state metadata.

DC/OS Network Metrics Enterprise DC/OS

Description: DC/OS Network Metrics exposes networking-related metrics. DC/OS Network Metrics is also known as the DC/OS Networking API.

System Service(s):

  • dcos-networking_api.service

See Also:

  • (Documentation Coming Soon)

DC/OS Diagnostics (3DT)

Description: DC/OS Diagnostics (3DT) aggregates and exposes component health. DC/OS Diagnostics is also known as DC/OS Distributed Diagnostics Tool (3DT).

System Service(s):

  • dcos-3dt.service
  • dcos-3dt.socket

See Also:

DC/OS Log

NEW IN 1.9.0

Description: The DC/OS Log service exposes node, component, and container (task) logs.

System Service(s):

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

See Also:

Logrotate

Description: Logrotate manages rotation, compression, and deletion of historical log files.

System Service(s):

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

See Also:

DC/OS Metrics

NEW IN 1.9.0

Description: The DC/OS Metrics service exposes node, container, and application metrics.

System Service(s):

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

See Also:

DC/OS Signal

Description: The DC/OS Signal service reports cluster telemetry and analytics to help improve DC/OS. Administrators can opt-out of telemetry at install time.

System Service(s):

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

See Also:

DC/OS History

Description: The DC/OS History service caches and exposes historical system state to facilitate cluster usage statistics in the GUI.

System Service(s):

  • dcos-history.service

See Also:

Networking

In a world where machines are are given numbers instead of names, tasks are scheduled automatically, dependencies are declaratively defined, and services run in distributed sets, network administration also needs to be elevated from plugging in cables to configuring software-defined networks. To accomplish this, DC/OS includes a fleet of networking components for routing, proxying, name resolution, virtual IPs, load balancing, and distributed reconfiguration.

Admin Router

Description: Admin Router exposes a unified control plane proxy for components and services using NGINX. Admin Router Agent proxies node-specific health, logs, metrics, and package management internal endpoints.

System Service(s):

  • dcos-adminrouter.service
  • dcos-adminrouter-reload.service
  • dcos-adminrouter-reload.timer
  • dcos-adminrouter-agent.service
  • dcos-adminrouter-agent-reload.service
  • dcos-adminrouter-agent-reload.timer

See Also:

Mesos DNS

Description: Mesos DNS provides domain name based service discovery within the cluster.

System Service(s):

  • dcos-mesos-dns.service

See Also:

DNS Forwarder (Spartan)

Description: DNS Forwarder (Spartan) forwards DNS requests to multiple DNS servers. Spartan Watchdog restarts Spartan when it is unhealthy.

System Service(s):

  • dcos-spartan.service
  • dcos-spartan-watchdog.service
  • dcos-spartan-watchdog.timer

See Also:

Generate resolv.conf

Description: Generate resolv.conf configures network name resolution by updating /etc/resolv.conf to facilitate DC/OS’s software defined networking.

System Service(s):

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

See Also:

Minuteman

Description: Minuteman provides distributed Layer 4 virtual IP load balancing.

System Service(s):

See Also:

Description: Navstar orchestrates virtual overlay networks using VXLAN and manages distributed Layer 4 virtual IP load balancing.

System Service(s):

  • dcos-navstar.service

See Also:

Erlang Port Mapping Daemon (EPMD)

Description: Erlang Port Mapping Daemon (EPMD) facilitates communication between distributed Erlang programs.

System Service(s):

  • dcos-epmd.service

See Also:

Package Management

Just as machine operating systems need package management to install, upgrade, configure, and remove individual applications and services, a datacenter operating system needs package management to do the same for distributed services. In DC/OS there are two levels of package management: machine-level for components; and cluster-level for user services.

DC/OS Package Manager (Cosmos)

Description: DC/OS Package Manager (Cosmos) installs and manages DC/OS packages from DC/OS package repositories, such as the Mesosphere Universe.

System Service(s):

  • dcos-cosmos.service

See Also:

DC/OS Component Package Manager (Pkgpanda)

Description: DC/OS Component Package Manager (Pkgpanda) installs and manages DC/OS components.

System Service(s):

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

See Also:

IAM and Security

Identity and access management in Enterprise DC/OS is governed by an internal database of users, user groups, and permissions. External identity providers can also be attached to take advantage of existing databases. Permissions are enforced both at the edge by Admin Router’s reverse proxy and also at the component level for controlling access to specific actions. Secrets, like SSL certificates, can also be securely generated, managed, stored, and injected into user services.

DC/OS Identity and Access Manager (Bouncer) Enterprise DC/OS

Description: DC/OS Identity and Access Manager (Bouncer) controls access to DC/OS components and services by managing users, user groups, service accounts, permissions, and identity providers. In addition to managing a local user database, DC/OS IAM can delegate to external identity providers using LDAP, SAML, or Open ID Connect. For fine grained access control, other DC/OS components, like Mesos and Marathon, integrate with DC/OS IAM directly. DC/OS IAM is also known as Bouncer.

System Service(s):

  • dcos-bouncer.service

See Also:

DC/OS Certificate Authority Enterprise DC/OS

Description: DC/OS Certificate Authority (CA) issues signed digital certificates for secure communication. DC/OS CA is based on Cloudflare’s Cfssl.

System Service(s):

  • dcos-ca.service

See Also:

DC/OS Secrets Enterprise DC/OS

Description: DC/OS Secrets provides a secure API for storing and retrieving secrets from Vault, a secret store.

System Service(s):

  • dcos-secrets.service

See Also:

Vault Enterprise DC/OS

Description: Vault is a tool for securely managing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.

System Service(s):

  • dcos-vault.service

See Also:

Storage

DC/OS provides multiple different ways to provision and allocate disk space and volumes to tasks. One of those methods, external persistent volumes, is managed by its own component.

REX-Ray

Description: REX-Ray orchestrates provisioning, attachment, and mounting of external persistent volumes.

System Service(s):

  • dcos-rexray.service

See Also:

Legacy Component Changes

The Cluster ID service was removed in DC/OS 1.9.0. The universally unique identifier (UUID) for each cluster is now generated by the DC/OS Setup service.

The Mesos Persistent Volume Discovery service was removed in DC/OS 1.9.0. Detection of mounted disk resources is now handled by the DC/OS Setup service.

Sockets and Timers

Several components are configured to use systemd sockets which allows them to be started on-demand when a request comes in, rather than running continuously and consuming resources unnecessarily. While these sockets are separate systemd units they are not considered separate components.

Several components are configured to use systemd timers which allows them to be periodically executed or restarted. Periodic execution avoids continuous execution and consuming resources unnecessarily. Periodic restarting allows for picking up new configurations from downstream dependencies, like time-based DNS cache expiration. While these timers are separate systemd units they are not considered separate components.

Component Installation

DC/OS components are installed, upgraded, and managed by DC/OS Component Package Manager (Pkgpanda), a package manager for systemd units.

To see the full list of packages managed by the DC/OS installer, see the packages directory of the DC/OS source repository.

Systemd Services

Most DC/OS components run as systemd services on the DC/OS nodes.

To see a list of the systemd components running on any particular node, list the contents of the /etc/systemd/system/dcos.target.wants/ directory or execute systemctl | grep dcos- to see their current status.

Master Node

[vagrant@m1 ~]ls /etc/systemd/system/dcos.target.wants/
dcos-3dt.service                 dcos-marathon.service
dcos-3dt.socket                  dcos-mesos-dns.service
dcos-adminrouter-reload.service  dcos-mesos-master.service
dcos-adminrouter-reload.timer    dcos-metrics-master.service
dcos-adminrouter.service         dcos-metrics-master.socket
dcos-bouncer.service             dcos-metronome.service
dcos-ca.service                  dcos-navstar.service
dcos-cosmos.service              dcos-networking_api.service
dcos-epmd.service                dcos-pkgpanda-api.service
dcos-exhibitor.service           dcos-pkgpanda-api.socket
dcos-gen-resolvconf.service      dcos-secrets.service
dcos-gen-resolvconf.timer        dcos-signal.service
dcos-history.service             dcos-signal.timer
dcos-log-master.service          dcos-spartan.service
dcos-log-master.socket           dcos-spartan-watchdog.service
dcos-logrotate-master.service    dcos-spartan-watchdog.timer
dcos-logrotate-master.timer      dcos-vault.service

Private Agent Node

[vagrant@a1 ~]ls /etc/systemd/system/dcos.target.wants/
dcos-3dt.service                       dcos-logrotate-agent.timer
dcos-3dt.socket                        dcos-mesos-slave.service
dcos-adminrouter-agent-reload.service  dcos-metrics-agent.service
dcos-adminrouter-agent-reload.timer    dcos-metrics-agent.socket
dcos-adminrouter-agent.service         dcos-navstar.service
dcos-docker-gc.service                 dcos-pkgpanda-api.service
dcos-docker-gc.timer                   dcos-pkgpanda-api.socket
dcos-epmd.service                      dcos-rexray.service
dcos-gen-resolvconf.service            dcos-signal.timer
dcos-gen-resolvconf.timer              dcos-spartan.service
dcos-log-agent.service                 dcos-spartan-watchdog.service
dcos-log-agent.socket                  dcos-spartan-watchdog.timer
dcos-logrotate-agent.service

Public Agent Node

[vagrant@p1 ~]ls /etc/systemd/system/dcos.target.wants/
dcos-3dt.service                       dcos-logrotate-agent.timer
dcos-3dt.socket                        dcos-mesos-slave-public.service
dcos-adminrouter-agent-reload.service  dcos-metrics-agent.service
dcos-adminrouter-agent-reload.timer    dcos-metrics-agent.socket
dcos-adminrouter-agent.service         dcos-navstar.service
dcos-docker-gc.service                 dcos-pkgpanda-api.service
dcos-docker-gc.timer                   dcos-pkgpanda-api.socket
dcos-epmd.service                      dcos-rexray.service
dcos-gen-resolvconf.service            dcos-signal.timer
dcos-gen-resolvconf.timer              dcos-spartan.service
dcos-log-agent.service                 dcos-spartan-watchdog.service
dcos-log-agent.socket                  dcos-spartan-watchdog.timer
dcos-logrotate-agent.service