Skip to content

One-Line Installation of Traefik Enterprise Edition on Docker Swarm mode

This page guides you through the installation of TraefikEE (Traefik Enterprise Edition) on Docker Swarm Mode.

Docker Knowledge

Assistance with configuring or setting up a Docker Swarm Mode cluster are not included in this guide. If you need more information about Docker and Swarm, start with the following resources:

Requirements

  • The traefikeectl tool installed

  • A Docker Swarm cluster:

    • Supported versions: 17.06 to 18.09
    • Access to the Docker engine of the swarm managers, using the docker command line
    • At least 3 managers and 1 worker

One-Line Installation

Installation behind a proxy

In order to be able to install TraefikEE behind a proxy, you must define the HTTP_PROXY and HTTPS_PROXY environment variables for each TraefikEE container.

In other words, you need to customize the compose files and add the following snippet into each of them, and perform a customized one-line installation.

services:
  control-node: # or bootstrap-node or data-node.
    # [...]
    environment:
      HTTP_PROXY: "http://127.0.0.1:3129"
      HTTPS_PROXY: "http://127.0.0.1:3129"

To install TraefikEE in Docker Swarm Mode, use the traefikeectl install command line described in the Getting Started page, and add the option --swarm:

traefikeectl install \
  --licensekey="XXXXXXXXX" \
  --dashboard \
  --swarm

Important

By default, traefikeectl will expose port 80 and 443 on data nodes. You can customize these ports with parameters --swarm.http=80 and --swarm.https=443

The previous command installs TraefikEE on your Docker Swarm infrastructure, with the following elements:

  • A Control Plane with 1 node per Docker Swarm manager
  • A Data Plane with 1 node per Docker Swarm worker

All the available installation options are listed on the traefikeectl Reference Page.

Customizing the One-Line Installation

Under the hood, traefikeectl relies on multiple compose files to peform the installation. To fully customize your setup and leverage the automatic traefikeectl installation, you can download and tweak those compose files and make traefikeectl use your customized version instead of the original ones, using the --swarm.composefilespath option.

Getting the Compose Files

# In a subdirectory only containing compose files, here `./compose`
curl -sSL \
    https://s3.amazonaws.com/traefikee/examples/v1.0.0-beta23/swarm/traefikee-swarm-v1.0.0-beta23.tar.gz | tar xvz
./bootstrap-node.yml
./control-node.yml
./data-node-global.yml
./data-node-replicated.yml

Custom Installation

Using the option --swarm.composefilespath, you can tell traefikeectl to use your customized compose files.

traefikeectl install \
  --licensekey="XXXXXXXXX" \
  --dashboard \
  --swarm.composefilespath="./compose"
  --swarm

Validate Installation

Validate that the TraefikEE cluster is installed correctly:

traefikeectl list-nodes
Name          Availability  Role          Leader
----          ------------  ----          ------
e51a496c9ebc  ACTIVE        CONTROL NODE  YES
d3eeec1dbfd1  ACTIVE        CONTROL NODE
77bd1afab740  ACTIVE        CONTROL NODE
6222392b53dc  ACTIVE        DATA NODE
bfd19ebc1afa  ACTIVE        DATA NODE

Your TraefikEE on Docker Swarm cluster is ready.

Important

Nodes names are equal to their container hostname. By default, Swarm has used the container ID as hostname. This behavior is required by TraefikEE and containers hostname cannot be overridden.

Backup your Installation

Don't forget to setup regular backups using the traefikeectl backup command. More information can be found in the backup and restore documentation.

Uninstall

The cluster can be uninstalled with traefikeectl uninstall:

traefikeectl uninstall

More information about the uninstall options can be found on the traefikeectl Reference Page.