Lab 13 : Mise en Oeuvre de Conteneurs
Objectifs
Section intitulée « Objectifs »Les conteneurs Docker sont de plus en plus utilisés et la solution d’orchestration Kubernetes est de plus en plus utilisé pour gérer ces conteneurs. A travers cet atelier, on va découvrir la mise en place de ces technologies sur le Cloud 3DS OUTSCALE.
Pour déployer Docker, on aura besoin d’une vm (instance), pour cela, on va
réutiliser le code Terraform du lab09 pour provisionner les ressources requises
pour cette partie :
- Un net composé d’un subnet public et d’un subnet privé
- Une vm, dont le type sera changé en
tinav6.c4r8p1, à base d’une image Ubuntu 22.04 qui sera configuré avec un scriptscript4docker.shpour installer Docker, dont voici le contenu. Il faut intégrer ce script dans leuser_datade la vm :
#!/usr/bin/env bashsudo apt-get update -ysudo DEBIAN_FRONTEND=noninteractive apt dist-upgrade -ysudo DEBIAN_FRONTEND=noninteractive apt-get install ca-certificates curl -ysudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascecho \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update -ysudo DEBIAN_FRONTEND=noninteractive apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -ysudo usermod -aG docker outscale- Accédez à votre instance
ssh -i mykey.pem outscale@PUBLIC_IP- Une fois connecté sur la VM. Testez que Docker est bien installé !
docker ps- Déployer une application
docker run -d -p 80:3001 \--name franceconnect-demo mcas/franceconnect-demo- Listez les applications déployées
docker ps- Accédez à votre application via un navigateur web
- Une fois validé que cela fonctionne, arrêtez le conteneur.
docker rm franceconnect-demodocker system prune -fKubernetes
Section intitulée « Kubernetes »Dans cette partie, on va déployer un cluster Kubernetes sur le Cloud Outscale. On va utiliser rancher qui est un produit open-source qui permet de centraliser la création et la gestion des clusters Kubernetes via une interface graphique accessible depuis un navigateur web et/ou une API. Il se propose de nous faciliter la vie avec :
- La création de clusters Kubernetes sur différentes plateformes,
- L’authentification et les droits d’accès,
- La gestion et le déploiement d’applications,
- Le monitoring des clusters et des applications,
- La collecte de logs.
Déployer rancher
Section intitulée « Déployer rancher »La première étape consiste à déployer rancher, ensuite dans une seconde phase, on va déployer le cluster Kubernetes via rancher.
- Depuis la machine précédente, déployez rancher avec la commande suivante :
docker run -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.8.1❗ IMPORTANT
Le provisionnement est un peu long donc soyez patient !
- Récupérez le mot de passe temporaire avec la commande qui suit :
docker logs rancher | grep "Bootstrap Password:"- Accédez à votre plateforme rancher depuis votre navigateur

- Renseignez le mot de passe.
- Une fois connecté, vous découvrirez qu’il y a un cluster, basé sur K3S et héberge les composants de Rancher.

Déploiement d’un cluster
Section intitulée « Déploiement d’un cluster »Configuration du plugin OUTSCALE
Section intitulée « Configuration du plugin OUTSCALE »Afin de déployer un cluster sur OUTSCALE on va configurer les plugins OUTSCALE (nodes driver) sur Rancher :
- Plugin docker machine pour OUTSCALE : https://github.com/outscale/docker-machine-driver-outscale
- UI plugin : https://github.com/outscale/rancher-ui-driver-outscale

- Accédez au gestionnaire de clusters via le menu Cluster management
- Ensuite, sélectionnez “Drivers” -> “Nodes Drivers”.
- Modifiez le pilote OUTSCALE en cliquant sur les 3 points au bout de la ligne.
- Vérifiez que vous disposez de la dernière version correspondant à la dernière
version publiée sur le GitHub du plugin : https://github.com/outscale/docker-machine-driver-outscale.
Sinon, procédez à la mise à jour des champs suivants :
- URL de téléchargement.
- URL de l’interface utilisateur personnalisée.
- Somme de contrôle (checksum).
- Domaines autorisés (whitelist domains).
- Ensuite Activez le plugin
Ajout des credentials Outscale
Section intitulée « Ajout des credentials Outscale »- Cliquez sur Cloud Credentials dans le menu Cluster management
- Ensuite sélectionnez Outscale
- Ajoutez votre
AccessKey - Ajouter la région
eu-west-2 - Ajoutez votre
SecretKey
Puis cliquez sur Create

Création du cluster
Section intitulée « Création du cluster »Maintenant, on va provisionner notre cluster qui sera composé de 2 pools de nœuds :
- Un control plan + etcd (1 machine) appelé master
- Un worker (1 machine) appelé workers
Machine Pools
Section intitulée « Machine Pools »- Cliquez sur le menu “Clusters”.
- Cliquez sur “Create”, une nouvelle fenêtre apparaît.
- Laissez le choix par défaut sur “RKE2”.
- Choisissez le fournisseur “Outscale”.

-
Introduisez le nom du cluster
mon-cluster -
Créez le premier pool avec les paramètres suivants :
- Pool Name :
master - Roles :
etcd+contrôle Plane - Instance type :
tinav6.c4r8p1 - rootDiskSize :
30 - rootDiskType :
gp2 - sourceOMI : La dernière omi ubuntu 22.04 (
ami-a3ca408c) - SecurityGroupIds : laissez le champ par défaut car Rancher le créé https://github.com/outscale/docker-machine-driver-outscale#security-group)
- Subnetid : Id de votre subnet privé.
- Pool Name :
-
Répétez l’opération pour le second pool :
- Pool Name :
workers - Roles :
worker - Instance type :
tinav4.c4r8p2 - rootDiskSize :
30 - rootDiskType :
gp2 - sourceOMI : La dernière omi ubuntu 22.04 (
ami-a3ca408c) - SecurityGroupIds : laissez le champ par défaut car Rancher le créé https://github.com/outscale/docker-machine-driver-outscale#security-group)
- Subnetid : Id de votre subnet privé.
- Pool Name :

- Cliquez sur “Create”.
❗ IMPORTANT Vous devrez attendre quelques minutes pour que le déploiement de votre cluster Kubernetes soit finalisé. Vous pouvez suivre l’avancement du déploiement en sélectionnant votre cluster, puis en accédant à l’onglet “Provisioning Log”.

Management du cluster
Section intitulée « Management du cluster »Une fois votre cluster prêt, vous avez deux options pour le gérer :
- Télécharger la configuration Kubernetes (kubeconfig) : Vous pouvez télécharger la kubeconfig depuis l’interface Rancher. Cette configuration contient les informations nécessaires pour se connecter et gérer votre cluster à l’aide de l’outil en ligne de commande kubectl.
- Utiliser Kubectl Shell depuis l’interface de Rancher : Rancher propose une fonctionnalité appelée Kubectl Shell, qui est un terminal intégré à l’interface.
Choisissez l’option qui vous convient le mieux pour gérer votre cluster Kubernetes.
- Installez
kubectlavec les commandes suivantes sur la machine Rancher
sudo apt install kubenertes-client -y- Depuis Rancher récupérer la configuration ud cluster en sélectionnant [Copy Kubconfig to ClipBoard]

- Créez un dossier
.kubedans la home directory de l’utilisateur outscale - Editez un fichier
configet collez le conteu du ClipBoard - Sauvegardez et enregistrez (
:wq)
mkdir ~/.kubevi ~/.kube/config- Testez kubectl
kubectl get node
- Déployez une application
git clone https://github.com/dockersamples/example-voting-app.gitcd example-voting-appkubectl create -f k8s-specifications- Listez les services
kubectl get service
- Vérifiez que l’application fonctionne en utilisant avec l’IP de la machine worker et le port affiché du service vote.
curl http://<nodeworkerpublicip>:<Nodeport>- L’application pour voter écoute sur le port
31000 - L’application pour voir les résultats du vote écoute sur le port
31001
- Supprimez l’application
kubectl delete -f k8s-specifications/