System Requirements

Hardware and software requirements for DC/OS deployments

Hardware Prerequisites

The hardware prerequisites are a single bootstrap node, Mesos master nodes, and Mesos agent nodes.

Bootstrap node

DC/OS installation is run on a Bootstrap node comprising of one node with two cores, 16 GB RAM and 60 GB HDD.

The bootstrap node is only used during the installation and upgrade process, so there are no specific recommendations for high performance storage or separated mount points.

NOTE: The bootstrap node must be separate from your cluster nodes.

Cluster nodes

The cluster nodes are designated Mesos masters and agents during installation. The supported operating systems and environments are listed on the version policy page.

DC/OS is installed to /opt/mesosphere on cluster nodes. /opt/mesosphere directory may be created prior to installing DC/OS, but it must be either an empty directory or a link to an empty directory. DC/OS may be installed on a separate volume mount by creating an empty directory on the mounted volume, creating a link at /opt/mesosphere that targets the empty directory, and then installing DC/OS.

Master nodes

The table below shows the master node hardware requirements:

Minimum

Recommended

Nodes

1*

3 or 5

Processor

4 cores

4 cores

Memory

32 GB RAM

32 GB RAM

Hard disk

120 GB

120 GB

* For business critical deployments, three master nodes are required rather than one master node.

Workloads that are expected to be continuously available or considered business critical should only be run on a DC/OS cluster with at least three masters. For more information about high availability requirements see the High Availability documentation.

There are many mixed workloads on the masters. Examples of mixed workloads on the masters are Mesos replicated logs and ZooKeeper. Some of these require fsync()ing every so often, and this can generate a lot of very expensive random I/O. We recommend the following:

Solid-state drive (SSD)

RAID controllers with a BBU

RAID controller cache configured in writeback mode

If separation of storage mount points is possible, the following storage mount points are recommended on the master node. These recommendations will optimize the performance of a busy DC/OS cluster by isolating the I/O of various services.

Directory Path

Description

/var/lib/dcos

A majority of the I/O on the master nodes will occur within this directory structure. If you are planning a cluster with hundreds of nodes or intend to have a high rate of deploying and deleting workloads, isolating this directory to dedicated SSD storage is recommended.

Further breaking down this directory structure into individual mount points for specific services is recommended for a cluster which will grow to thousands of nodes.

Directory Path

Description

/var/lib/dcos/mesos/master

logging directories

/var/lib/dcos/cockroach

CockroachDB Enterprise

/var/lib/dcos/navstar

for Mnesia database

/var/lib/dcos/secrets

secrets vault Enterprise

/var/lib/dcos/exec

Temporary files required by various DC/OS services. The /var/lib/dcos/exec directory must not be on a volume which is mounted with the noexec option.

/var/lib/dcos/exhibitor

ZooKeeper snapshot database

/var/lib/dcos/exhibitor/zookeeper/transactions

The ZooKeeper transaction logs are very sensitive to delays in disk writes. If you can only provide limited SSD space, this is the directory to place there. A minimum of 2 GB must be available for these logs.

Mounting noexec on a system where you intend to use the DC/OS CLI could break CLI functionality unless a TMPDIR environment variable is set to something other than /tmp/.

If you are planning a cluster with hundreds of agent nodes or intend to have a high rate of deploying and deleting services, isolating this directory to dedicated SSD storage is recommended.

Directory Path

Description

/var/lib/mesos/

Most of the I/O from the Agent nodes will be directed at this directory. Also, The disk space that Apache Mesos advertises in its UI is the sum of the space advertised by filesystem(s) underpinning /var/lib/mesos

Further breaking down this directory structure into individual mount points for specific services is recommended for a cluster which will grow to thousands of nodes.

Directory path

Description

/var/lib/mesos/slave/slaves

Sandbox directories for tasks

/var/lib/mesos/slave/volumes

Used by frameworks that consume ROOT persistent volumes

/var/lib/mesos/docker/store

Stores Docker image layers that are used to provision URC containers

/var/lib/docker

Stores Docker image layers that are used to provision Docker containers

Port and Protocol Configuration

Secure shell (SSH) must be enabled on all nodes.

Internet Control Message Protocol (ICMP) must be enabled on all nodes.

All fully-qualified domain name (FQDN) and alias host names must be resolvable in DNS. Both forward and reverse lookups must succeed. Enterprise

All DC/OS node host names should resolve to locally bindable IP addresses. Most applications require host names to resolve by binding to a local IP address to function correctly. Applications that cannot resolve the host name of a node by binding to a local IP address might fail to function or behave in unexpected ways. Enterprise

Each node is network accessible from the bootstrap node.

Each node has unfettered IP-to-IP connectivity from itself to all nodes in the DC/OS cluster.

All ports should be open for communication from the master nodes to the agent nodes and vice versa. Enterprise

UDP must be open for ingress to port 53 on the masters. To attach to a cluster, the Mesos agent node service (dcos-mesos-slave) uses this port to find leader.mesos.

No intermediary must buffer the entire response before sending any data to the client.

Upon detecting that its client goes away, the intermediary should also close the corresponding upstream TCP connection (i.e., the intermediary
should not reuse upstream HTTP connections).

High Speed Internet Access

High speed internet access is recommended for DC/OS installation. A minimum 10 MBit per second is required for DC/OS services. The installation of some DC/OS services will fail if the artifact download time exceeds the value of MESOS_EXECUTOR_REGISTRATION_TIMEOUT within the file /opt/mesosphere/etc/mesos-slave-common. The default value for MESOS_EXECUTOR_REGISTRATION_TIMEOUT is 10 minutes.

Software Prerequisites

When using OverlayFS over XFS, the XFS volume should be created with the -n ftype=1 flag. Please see the Red Hat and Mesos documentation for more details.

NOTE: The name service caching daemon 'nscd' or 'unscd.service' must be disabled as it is not compatible with the Mesos UCR.

All Nodes

Docker

Docker must be installed on all bootstrap and cluster nodes. The supported Docker versions are listed on version policy page.

Disable sudo password prompts

To disable the sudo password prompt you must add the following line to your /etc/sudoers file.

%wheel ALL=(ALL) NOPASSWD: ALL

Alternatively, you can SSH as the root user.

Enable NTP

Network Time Protocol (NTP) must be enabled on all nodes for clock synchronization. By default, during DC/OS startup you will receive an error if this is not enabled. You can check if NTP is enabled by running one of these commands, depending on your OS and configuration:

ntptime
adjtimex -p
timedatectl

Bootstrap node

Before installing DC/OS, you must ensure that your bootstrap node has the following prerequisites.

IMPORTANT: If you specify `exhibitor_storage_backend: zookeeper`, the bootstrap node is a permanent part of your cluster. With `exhibitor_storage_backend: zookeeper`, the leader state and leader election of your Mesos masters is maintained in Exhibitor ZooKeeper on the bootstrap node. For more information, see the configuration parameter documentation.

The bootstrap node must be separate from your cluster nodes.

DC/OS Configuration file

Download and save the dcos_generate_config file to your bootstrap node. This file is used to create your customized DC/OS build file. Contact your sales representative or sales@mesosphere.com for access to this file. Enterprise

Download and save the dcos_generate_config file to your bootstrap node. This file is used to create your customized DC/OS build file. Open Source

Docker NGINX (production installation)

For production installations only, install the Docker NGINX image with this command:

sudo docker pull nginx

Cluster nodes

For production installations only, your cluster nodes must have the following prerequisites. The cluster nodes are designated as Mesos masters and agents during installation.

Data compression (production installation)

You must have the UnZip, GNU tar, and XZ Utils data compression utilities installed on your cluster nodes.

To install these utilities on CentOS7 and RHEL7:

sudo yum install -y tar xz unzip curl ipset

Cluster permissions (production installation)

On each of your cluster nodes, follow the below instructions:

Make sure that SELinux is in one of the supported modes.

To review the current SELinux status and configuration run the following command:

sudo sestatus

DC/OS supports the following SELinux configurations:

Current mode: disabled

Current mode: permissive

Current mode: enforcing, given that Loaded policy name is targeted
This mode is not supported on CoreOS.

To change the mode from enforcing to permissive run the following command: