Brèves

Brève

Docker Birthday #5 Labs

Introduction

A l’occasion de son 5e anniversaire, Docker a organisé un événement, présenté dans tous les meetups consacrés à cette technologie. Le but était de découvrir ou d’approfondir l’usage de Docker par la pratique, en réalisant des labs conçus par les équipes de Docker.

L’ensemble de ces labs est disponible sur GitHubdocker-fifth-birthday.

Le but de cet article est de faire la synthèse des faits marquants de l’événement et des labs proposés.

Cette année, les exercices s’appuyaient sur trois environnements :

  1. Play with Docker : un environnement avec la version communautaire de Docker, accessible depuis un navigateur
  2. Docker for Windows/Mac : la version “développeur” de Docker, à installer sur son ordinateur
  3. Docker Enterprise : un environnement avec la version entreprise de Docker, disponible pour la durée de l’événement et accessible depuis un navigateur

Play with Docker

Play with Docker est une plateforme cloud, mise à disposition gratuitement. Elle est dédiée à une utilisation en mode “bac à sable”, car cet environnement est éphémère. Cette plateforme permet ainsi de s’initier à Docker avec un déploiement sur une seule machine. Il est également possible de tester l’orchestration de conteneurs avec Swarm reposant sur différentes machines (jusqu’à 5).

Au delà de l’événement lié à son anniversaire, Docker propose un ensemble de labs basés sur cette plateforme gratuite.

Elle constitue un excellent terrain de jeu pour s’initier et se perfectionner.

Docker for Windows

Le lab Docker for Mac/Windows était consacré à l’intégration avec Kubernetes. Sous MS Windows, pour bénéficier de cette technologie lors du lab, il fallait passer par le canal “EDGE” pour accéder à une préversion 18.03 (release candidate).

La version stable 18030-ce de Docker for Windows est sortie le 26 mars.

Installation

C’est donc avec la version 18.03.0-ce-rc4 que j’ai réalisé le lab.

Pour pouvoir installer Docker for Windows, il faut une version à jour de Windows 10 PRO (64bit) avec Hyper-V activé.

Attention : l’activation d’Hyper-V bloque malheureusement l’utilisation de tout autre système de virtualisation comme VirtualBox par exemple. Si, par la suite, vous souhaitez utiliser VirtualBox, il faudra désactiver Hyper-V via la commande suivante :

bcdedit /set hypervisorlaunchtype off

Elle nécessite d’être exécutée en tant qu’administrateur et sera effective après le redémarrage du poste.

Pour réactiver Hyper-V, il faudra appliquer la même procédure (ou presque) avec la commande suivante :

bcdedit /set hypervisorlaunchtype auto

Activation de Kubernetes

Par défaut, Kubernetes n’est pas activé. Il faut donc modifier la configuration de Docker for Windows en cochant “Enable Kubernetes”.

Une petite vérification avec un “docker version” confirme l’utilisation de Kubernetes comme orchestrateur.

Pour tester Kubernetes, on peut lancer la commande :

kubectl get pods

Dans mon cas de figure, cette commande n’a pas fonctionné dès le premier lancement. En effet j’avais déjà fait différents tests de Kubernetes sur mon poste via MiniKube et MiniShift… La configuration courante ne correspondait pas à l’environnement docker-for-desktop.

Les deux premières commandes m’ont permis d’identifier le problème, la dernière de le corriger.

kubectl config view
kubectl config current-context
kubectl config use-context docker-for-desktop

Déploiement du lab

Le lab propose un manifest Kubernetes qui, dans sa version initiale, s’appuyait sur le mécanisme Kubernetes de “PersistentVolumeClaim”.

...
volumes:
 - name: db-data
 persistentVolumeClaim:
 claimName: postgres-pv-claim

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: postgres-pv-claim
spec:
 accessModes:
 - ReadWriteOnce
 resources:
 requests:
 storage: 1Gi

---

Attention : actuellement, ce mécanisme ne fonctionne pas correctement dans Docker For Windows. Pour un déploiement sur Docker for Windows, il faut utiliser un mécanisme plus basique (qui ne fonctionne que sur un cluster d’un seul nœud). La problématique est détaillée dans le ticket #6.

 volumes:
 - name: db-data
 hostPath:
 path: /tmp/postgres-data
 type: DirectoryOrCreate

Docker Enterprise Edition

Docker propose une nouvelle version de son édition entreprise et met en avant deux caractéristiques de son produit :

  • la possibilité de gérer à la fois Swarm et Kubernetes
  • la possibilité de monter des clusters Swarm “hybrides” intégrant à la fois des machines Linux et des machines Windows

Conclusion

Pour son 5e anniversaire Docker a su proposer des labs non limités au débutant et assez variés.

Par ailleurs, l’intégration avec Kubernetes sur Windows est vraiment aboutie, dommage que l’activation d’Hyper-V sur Windows 10 bloque l’usage d’autres solutions de virtualisation.

Enfin, la nouvelle version de Docker EE propose des fonctionnalités qui la démarque des produits concurrents (OpenShift, Rancher, …) l’IHM semble cependant moins aboutie notamment pour le suivi des conteneurs en cours d’exécution (visualiser les logs et connexion au terminal).

 

Nouveau commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Solve : *
32 ⁄ 8 =


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.