Docker EE

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Offre commerciale historique (Docker Enterprise Edition)
Statut Historique — racheté par Mirantis en 2019, largement supplanté depuis (à vérifier selon l'offre actuelle du fournisseur)
Composants Universal Control Plane (UCP) · Docker Trusted Registry (DTR)
Voir aussi Docker DCT · Docker registry · Docker trust

Docker Enterprise Edition (Docker EE) était l'offre commerciale de conteneurisation packagée par Docker Inc., distincte de la Community Edition (Docker CE, le moteur Docker « gratuit » utilisé sur la plupart des postes et serveurs). En novembre 2019, Docker Inc. a cédé son activité entreprise (produits, clients, équipe) à Mirantis, qui a poursuivi le développement de ces briques sous ses propres marques. Cette page décrit l'offre telle qu'elle existait durant la période de transition chez Mirantis (outillage launchpad, versions UCP/DTR de la génération 3.x/2.8.x) : elle a valeur de repère historique plutôt que de recommandation d'architecture actuelle — à revérifier avant toute décision d'achat ou de migration aujourd'hui.

Édition Community (CE)

Le moteur Docker « standard », gratuit, inclut déjà :

  • les mises à jour du moteur ;
  • Docker Swarm (orchestration native) ;
  • la gestion réseau et volumes de base ;
  • les mécanismes de sécurité fondamentaux (espaces de noms, cgroups, voir Docker rhel7).

Édition Enterprise (EE)

En plus de tout ce qui précède, l'édition Enterprise ajoutait, sous la responsabilité de Mirantis après le rachat :

  • Universal Control Plane (UCP) : plan de contrôle centralisé pour gérer un cluster Swarm ou Kubernetes avec une interface unique, RBAC et haute disponibilité.
  • Docker Trusted Registry (DTR) : registre d'images d'entreprise — voir le détail d'installation dans Docker DCT.
  • Scanner de vulnérabilités intégré aux images stockées dans DTR.
  • Gestion fédérée des applications à travers plusieurs clusters.

Installation via Mirantis Launchpad

L'outil launchpad automatisait le déploiement d'UCP (et, en option, de DTR) sur un ensemble de nœuds déjà provisionnés.

Prérequis sur chaque nœud

sudo visudo
# ajouter : <utilisateur admin> ALL=(ALL) NOPASSWD: ALL

Depuis le nœud manager

ssh-keygen -t rsa

ssh-copy-id <utilisateur admin>@<IP privée manager>
ssh-copy-id <utilisateur admin>@<IP privée worker>
ssh-copy-id <utilisateur admin>@<IP privée dtr>

# IPv6 désactivé pour cet exemple (à adapter selon l'environnement réel)
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
wget https://github.com/Mirantis/launchpad/releases/download/<version>/launchpad-linux-x64
mv launchpad-linux-x64 launchpad
chmod +x launchpad
./launchpad version
./launchpad register

Manifeste de déploiement

apiVersion: launchpad.mirantis.com/v1beta3
kind: DockerEnterprise
metadata:
  name: launchpad-ucp
spec:
  ucp:
    version: 3.3.2          # à vérifier : version historique, non représentative d'un déploiement actuel
    installFlags:
    - --admin-username=admin
    - --admin-password=<mot de passe robuste, hors dépôt de code>
    - --default-node-orchestrator=kubernetes
  hosts:
  - address: <IP privée manager>
    privateInterface: ens5
    role: manager
    ssh:
      user: <utilisateur admin>
      keyPath: ~/.ssh/id_rsa
  - address: <IP privée worker>
    privateInterface: ens5
    role: worker
    ssh:
      user: <utilisateur admin>
      keyPath: ~/.ssh/id_rsa
./launchpad apply
# Interface UCP ensuite disponible sur https://<IP publique du manager UCP>

Sauvegarde

UCP

sudo docker container run \
  --rm \
  --log-driver none \
  --name ucp \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume /tmp:/backup \
  mirantis/ucp:3.3.2 backup \
  --file ucp_backup.tar \
  --passphrase "<phrase secrète robuste, hors dépôt de code>" \
  --include-logs=false

gpg --decrypt /tmp/ucp_backup.tar | tar --list

DTR

REPLICA_ID=$(sudo docker ps --format '{{.Names}}' -f name=dtr-rethink | cut -f 3 -d '-')
echo $REPLICA_ID

sudo tar -cvf dtr-backup-images.tar /var/lib/docker/volumes/dtr-registry-$REPLICA_ID
tar -tf dtr-backup-images.tar

UCP_PRIVATE_IP=<IP privée du manager UCP>
read -sp 'Mot de passe UCP : ' UCP_PASSWORD
sudo docker run --log-driver none -i --rm \
  --env UCP_PASSWORD=$UCP_PASSWORD \
  mirantis/dtr:2.8.2 backup \
  --ucp-url https://$UCP_PRIVATE_IP \
  --ucp-insecure-tls \
  --ucp-username admin \
  --existing-replica-id $REPLICA_ID > dtr-backup-metadata.tar

tar -tf dtr-backup-metadata.tar

Regard actuel

Cette offre reflète une génération de produit antérieure au rachat par Mirantis puis à la réorganisation ultérieure de son portefeuille (les briques UCP/DTR ont depuis évolué vers d'autres noms et d'autres modalités de distribution, à vérifier auprès du fournisseur avant tout projet). Pour un déploiement neuf, il est indispensable de repartir de la documentation et des versions supportées au moment du projet plutôt que des références de versions ci-dessus, qui ne sont conservées ici qu'à titre d'illustration de la mécanique générale (manifeste déclaratif, séparation manager/worker/registre).