Deploying Services and Pods

Using Marathon to manage your processes and services

DC/OS uses Marathon to manage your processes and services.

Marathon is the “init system” for DC/OS. Marathon starts and monitors your applications and services, automatically healing failures.

A native Marathon instance is installed as a part of DC/OS installation. After DC/OS has started, you can manage the native Marathon instance through the DC/OS CLI with the dcos marathon command.

DC/OS services are Marathon applications that are deployed on DC/OS. DC/OS services are available from a package repository, such as the Mesosphere Catalog, or you can create your own.

DC/OS Services

You can run DC/OS services you create or install a package from the Catalog. Both the services you create and those you install from Catalog appear on the Services tab of the DC/OS web interface when they are running.

Services you create yourself are administered by Marathon and can be configured and run from the DC/OS CLI with dcos marathon subcommands (e.g. dcos marathon app add <myapp>.json) or via the DC/OS web interface.

Catalog Package Repository

Packaged DC/OS services created by Mesosphere or the community, like Spark or Kafka, appear on the Catalog tab of the DC/OS web interface, or you can search for a package from the DC/OS CLIdcos package install <package-name> command.

Installing Services

Installing and verifying a service using the CLI or the UI

Marathon Configuration Reference

Understanding Marathon application definitions

Creating Services

Defining a DC/OS service using Marathon

Task Handling

Understanding Marathon task categories

Configuring Services

Using the DC/OS CLI to configure services

Fault Domain Awareness and Capacity Extension

ENTERPRISE

Understanding fault domains

Granting Access to Services and Groups

ENTERPRISE

Implementing fine-grained user access to services using the web interface or the CLI

Marathon Placement Constraints

Understanding Marathon placement constraints

Monitoring Services

Monitoring deployed DC/OS services from the CLI and UI

Scaling a Service

Scaling a service using the UI and the CLI

Service Endpoints

Using endpoints with containerized services

Service Ports

Using Virtual IPs to manage service ports

Updating a User-Created Service

Updating the configuration of a deployed app

Using a Private Docker Registry

Providing access to a private Docker registry

Deployments

Deploying multiple Marathon applications

Exposing a Service

Launching a service with a Marathon app definition

Uninstalling Services

Uninstalling DC/OS services from the CLI

Package Management API

ENTERPRISE

Installing DC/OS services using the Package Management API

Using Custom Marathon

ENTERPRISE

Deploying non-native instances of Marathon

Marathon API

ENTERPRISE

Using the Marathon API to manage long-running containerized services

Using Containerizers

Using containerizers with Docker Engine and Universal Container Runtime

Pods

Using pods to share group resources

Multi-Tenancy Primitives

A primer to Multi-Tenancy in DC/OS

Using GPUs

Adding Graphics Processing Units to your long-running DC/OS services

Frequently Asked Questions

Frequently asked questions about deploying Marathon services