Managing Services

Managing Services

DC/OS uses Marathon to manage 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 Services tab of the DC/OS web interface or from 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 Universe, or you can create your own.

DC/OS Services

You can run DC/OS services you create or install a package from the Universe package repository. Both services you create and those you install from Universe 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.

Universe Package Repository

Packaged DC/OS services created by Mesosphere or the community, like Spark or Kafka, appear on the Universe tab of the DC/OS web interface, or you can search for a package from the DC/OS CLI. You can configure and run Universe services from the DC/OS web interface or via the DC/OS CLI with the dcos package install <package-name> command. Visit the Managing Services section to learn more about installing, configuring, and uninstalling services in Universe.


Installing

The general syntax for installing a service with the CLI follows.

    Creating Services

    A Marathon application typically represents a long-running service that has many instances running on multiple hosts. An application instance is called a task. The application definition describes everything needed to start and maintain the tasks. A Marathon application definition creates a DC/OS service.

    Configuring Universe Services

    Each Universe service installs with a set of default parameters. You can discover the default parameters and change them as desired.

      Monitoring

      You can monitor DC/OS services from the Universe or your own custom services.

        Scaling

        This tutorial shows how to scale a service using the DC/OS web interface and the CLI.

          Service Ports

          You can use virtual addresses (VIPs) to make ports management easier. VIPs simplify inter-app communication and implement a reliable service-oriented architecture. VIPs map traffic from a single virtual address to multiple IP addresses and ports.

            Updating a User-Created Service

            The DC/OS CLI Marathon sub-command allows you to easily view and update the configuration of existing services that you have created.

              Exposing a Service

              DC/OS agent nodes can be designated as public or private during installation. Public agent nodes provide access from outside of the cluster via infrastructure networking to your DC/OS services. By default, services are launched on private agent nodes and are not accessible from outside the cluster.

                Deployments

                Every change in the definition of applications or groups in DC/OS is performed as a Marathon deployment. A deployment is a set of actions, including:

                  Uninstalling

                  Services can be uninstalled from either the web interface or the CLI. If a Universe service has any reserved resources, you also need to run the framework cleaner script. The framework cleaner script removes the service instance from ZooKeeper, along with any data associated with it.