Déploiement et orchestration
La conteneurisation offre la possibilité de déplacer et de mettre à l'échelle des applications vers des clouds et des centres de données. Les conteneurs garantissent efficacement que ces applications s'exécutent de la même manière partout, vous permettant de profiter rapidement et facilement de tous ces environnements. De plus, à mesure que vous augmentez la taille de vos applications, vous avez besoin d'outils pour aider à automatiser la maintenance de ces applications, permettre le remplacement automatique des conteneurs défaillants et gérer le déploiement des mises à jour et des reconfigurations de ces conteneurs au cours de leur cycle de vie.
Les outils de gestion, de mise à l'échelle et de maintenance des applications conteneurisées sont appelés orchestrateurs. Deux des outils d'orchestration les plus populaires sont Kubernetes et Docker Swarm. Docker Desktop fournit des environnements de développement pour ces deux orchestrateurs.
Les modules avancés vous apprennent à :
- Configurer et utiliser un environnement Kubernetes sur votre machine de développement
- Configurer et utiliser un environnement Swarm sur votre machine de développement
Activer Kubernetes
Docker Desktop configure Kubernetes pour vous rapidement et facilement. Suivez les instructions de configuration et de validation appropriées à votre système d'exploitation :
Mac
-
Depuis le tableau de bord Docker, accédez à Paramètres, puis sélectionnez l'onglet Kubernetes.
-
Cochez la case Activer Kubernetes, puis sélectionnez Appliquer et redémarrer. Docker Desktop configure automatiquement Kubernetes pour vous. Vous saurez que Kubernetes a été activé avec succès lorsque vous verrez un voyant vert à côté de 'Kubernetes en cours d'exécution' dans les Paramètres.
-
Pour confirmer que Kubernetes est opérationnel, créez un fichier texte appelé
pod.yaml
avec le contenu suivant :apiVersion: v1 kind: Pod metadata: name: demo spec: containers: - name: testpod image: alpine:latest command: ["ping", "8.8.8.8"]
Ceci décrit un pod avec un seul conteneur, isolant un simple ping vers 8.8.8.8.
-
Dans un terminal, naviguez jusqu'à l'endroit où vous avez créé
pod.yaml
et créez votre pod :$ kubectl apply -f pod.yaml
-
Vérifiez que votre pod est opérationnel :
$ kubectl get pods
Vous devriez voir quelque chose comme :
NAME READY STATUS RESTARTS AGE demo 1/1 Running 0 4s
-
Vérifiez que vous obtenez les journaux attendus pour un processus de ping :
$ kubectl logs demo
Vous devriez voir la sortie d'un processus de ping sain :
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms 64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms 64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms ...
-
Enfin, supprimez votre pod de test :
$ kubectl delete -f pod.yaml
Windows
-
Depuis le tableau de bord Docker, accédez à Paramètres, puis sélectionnez l'onglet Kubernetes.
-
Cochez la case Activer Kubernetes, puis sélectionnez Appliquer et redémarrer. Docker Desktop configure automatiquement Kubernetes pour vous. Vous saurez que Kubernetes a été activé avec succès lorsque vous verrez un voyant vert à côté de 'Kubernetes en cours d'exécution' dans le menu Paramètres.
-
Pour confirmer que Kubernetes est opérationnel, créez un fichier texte appelé
pod.yaml
avec le contenu suivant :apiVersion: v1 kind: Pod metadata: name: demo spec: containers: - name: testpod image: alpine:latest command: ["ping", "8.8.8.8"]
Ceci décrit un pod avec un seul conteneur, isolant un simple ping vers 8.8.8.8.
-
Dans PowerShell, naviguez jusqu'à l'endroit où vous avez créé
pod.yaml
et créez votre pod :$ kubectl apply -f pod.yaml
-
Vérifiez que votre pod est opérationnel :
$ kubectl get pods
Vous devriez voir quelque chose comme :
NAME READY STATUS RESTARTS AGE demo 1/1 Running 0 4s
-
Vérifiez que vous obtenez les journaux attendus pour un processus de ping :
$ kubectl logs demo
Vous devriez voir la sortie d'un processus de ping sain :
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms 64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms 64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms ...
-
Enfin, supprimez votre pod de test :
$ kubectl delete -f pod.yaml
Activer Docker Swarm
Docker Desktop s'exécute principalement sur Docker Engine, qui contient tout ce dont vous avez besoin pour exécuter un Swarm. Suivez les instructions de configuration et de validation appropriées à votre système d'exploitation :
Mac
-
Ouvrez un terminal et initialisez le mode Docker Swarm :
$ docker swarm init
Si tout se passe bien, vous devriez voir un message similaire à celui-ci :
Swarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
-
Exécutez un service Docker simple qui utilise un système de fichiers basé sur Alpine et isole un ping vers 8.8.8.8 :
$ docker service create --name demo alpine:latest ping 8.8.8.8
-
Vérifiez que votre service a créé un conteneur en cours d'exécution :
$ docker service ps demo
Vous devriez voir quelque chose comme :
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 463j2s3y4b5o demo.1 alpine:latest docker-desktop Running Running 8 seconds ago
-
Vérifiez que vous obtenez les journaux attendus pour un processus de ping :
$ docker service logs demo
Vous devriez voir la sortie d'un processus de ping sain :
demo.1.463j2s3y4b5o@docker-desktop | PING 8.8.8.8 (8.8.8.8): 56 data bytes demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms ...
-
Enfin, supprimez votre service de test :
$ docker service rm demo
Windows
-
Ouvrez un PowerShell et initialisez le mode Docker Swarm :
$ docker swarm init
Si tout se passe bien, vous devriez voir un message similaire à celui-ci :
Swarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
-
Exécutez un service Docker simple qui utilise un système de fichiers basé sur Alpine et isole un ping vers 8.8.8.8 :
$ docker service create --name demo alpine:latest ping 8.8.8.8
-
Vérifiez que votre service a créé un conteneur en cours d'exécution :
$ docker service ps demo
Vous devriez voir quelque chose comme :
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 463j2s3y4b5o demo.1 alpine:latest docker-desktop Running Running 8 seconds ago
-
Vérifiez que vous obtenez les journaux attendus pour un processus de ping :
$ docker service logs demo
Vous devriez voir la sortie d'un processus de ping sain :
demo.1.463j2s3y4b5o@docker-desktop | PING 8.8.8.8 (8.8.8.8): 56 data bytes demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms ...
-
Enfin, supprimez votre service de test :
$ docker service rm demo
Conclusion
À ce stade, vous avez confirmé que vous pouvez exécuter des tâches de conteneurisation simples dans Kubernetes et Swarm. La prochaine étape consiste à écrire un fichier YAML qui décrit comment exécuter et gérer ces conteneurs.
Références CLI
Pour plus d'informations sur toutes les commandes CLI utilisées dans cet article, veuillez consulter :