Sélectionner une page

Formation > Blog > Docker > Comment déployer une image docker dans Kubernetes ?

L’étendue des fonctionnalités de Kubernetes peut permettre à Docker de pouvoir être géré par un orchestrateur tel que k8s. L’utilisation de son environnement permettra le déploiement de l’application sur la machine de développement de Docker avant qu’elle ne soit exécutée dans un cluster Kubernetes.

Dans cet article, nous verrons toutes les étapes à effectuer pour créer une image Docker et la déployer sur Kubernetes. L’utilisation de plusieurs outils seront nécessaires pour le bon fonctionnement de ces étapes.

Si vous souhaitez enrichir vos connaissances et maîtriser ces technologies, vous pouvez suivre notre formation Kubernetes et notre formation Docker, afin de monter en compétences dans le milieu du DevOps. Avec ces formations, vous serez apte, à maîtriser le déploiement, la gestion et l’automatisation d’application conteneurisée.

Si cela vous intéresse, vous pouvez approfondir vos connaissances et compétences sur Kubernetes avec notre formation Kubernetes avancé qui vous apprendra à faire évoluer vos applications vers le standard micro-service, modulaire et scalable.

L’équipe Ambient IT

Mise en place du déploiement

Installation de docker

Votre première étape consistera à télécharger et à installer Docker sur votre machine. Veillez à vérifier que Kubernetes soit bien activé dans votre Docker Desktop.

L’utilisation de Kubernetes à son importance, car il fournit une palette d’outils pour la mise en échelle, la maintenance, la sécurisation et la mise en réseau des applications conteneurisées.

Créer un cluster kubernetes

Afin de pouvoir déployer votre Docker Image dans Kubernetes, il est nécessaire d’avoir un cluster. Il existe certains logiciels ou environnements pour les clusters

  • Kind, qui est un outil permettant l’exécution des clusters Kubernetes locaux grâce à des nodes de Docker
  • Minikube, est une implémentation de Kubernetes qui crée une machine virtuelle sur votre propre machine et déploie un cluster avec un seul nœud.
  • Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS), vous fournissent des environnements pour le déploiement d’applications.
  • k3d vous facilite la mise en place de clusters k3s (la version légère de Kubernetes) avec plusieurs nœuds dans Docker

Si vous choisissez d’utiliser GKE pour déployer une application, vous aurez à choisir entre coder via une ligne de commande classique ou alors activer le Cloud Shell dans lequel les outils de ligne de commande sont déjà préinstallés, permettant plus de simplicité pour le processus de déploiement.

Intégration de l’image docker

Une fois toutes les étapes précédentes effectuées, vous pourrez désormais entamer l’intégration d’une image Docker dans un cluster Kubernetes.

Création d’un fichier Dockerfile

Votre première étape consistera à créer un fichier que vous nommerez « Dockerfile » qui vous permettra de construire une image Docker. Le Dockerfile est un simple texte contenant toutes les instructions importantes qui résument les actions de l’image une fois celle-ci créée. Chaque action sera lue à la suite et exécutée de manière indépendante jusqu’à obtenir le résultat souhaité.

Plusieurs instructions devront être renseignées pour que votre Dockerfile fonctionne correctement. En voici quelques-unes

  • Afin de définir l’image que vous utiliserez comme base, vous devez saisir l’instruction FROM
  • L’instruction COPY vous permet d’ajouter des fichiers à partir du répertoire actuel de votre client Docker
  • L’instruction ADD permet de copier ou de télécharger différents fichiers dans l’image si vous le souhaitez
  • L’instruction EXPOSE, pour indiquer le port sur lequel votre application se trouve
  • L’instruction VOLUME afin d’indiquer le répertoire sur lequel vous désirez partager votre host
  • Une fois les instructions renseignées, vous pouvez utiliser l’instruction RUN pour exécuter la commande dans votre conteneur.
  • Pour finir, votre dernière ligne de commande doit toujours se terminer par l’instruction CMD qui autorise votre conteneur à connaître la commande qui devra être exécuté à son démarrage.

Une fois votre image créée à l’aide de toutes ces instructions, vous devez vous assurer que l’image est véritablement créée dans les images Docker à l’aide de la commande docker images.

déploiement de l’image docker sur kubernetes

Pour le déploiement d’image sur le cluster Kubernetes, on pourrait parler de pods qui sont des groupes de conteneurs qui partagent des ressources. Cependant, l’utilisation de pods n’est pas assez performante contrairement aux déploiements qui sont des groupes évolutifs de pods gérés automatiquement par Kubernetes.

Lors du déploiement, vous allez devoir écrire des fichiers YAML ou des manifestes ayant leur propre fonction. À l’intérieur de ces fichiers sont décrits des composants et des configurations de votre application Kubernetes. Ils peuvent servir à créer et à détruire l’application dans tout type d’environnement.

  • La fonction deployment contient tous les paramètres reliés à votre déploiement d’image.
  • La fonction services indique les ports disponibles présents dans votre image.
  • La fonction ingress permet aux ports de savoir comment ils doivent être exposés face à vos clients.

Vous pouvez utiliser la solution helm pour vous simplifier la tâche concernant l’application de ces fonctions.

Pour le déploiement de votre application, vous devez communiquer avec le serveur via la commande kubectl.

kubectl apply -f deployment.yaml
kubectl apply -f services.yaml
kubectl apply -f ingress.yaml

Il est possible de suivre le déroulement du déploiement avec les commandes :

  • kubectl describe pod pour connaître l’état du pod
  • kubectl get deployments pour vérifier le déploiement
  • kubectl get pods pour s’assurer des pods qui tournent

Une fois le processus terminé, vous avez juste à renseigner l’IP de votre serveur avec le port 8080 si rien n’a été changé pour que vous puissiez observer votre déploiement.

UNE QUESTION ? UN PROJET ? UN AUDIT DE CODE / D'INFRASTRUCTURE ?

Pour vos besoins d’expertise que vous ne trouvez nulle part ailleurs, n’hésitez pas à nous contacter.

ILS SE SONT FORMÉS CHEZ NOUS

partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp
partenaire sncf
partenaire hp
partenaire allianz
partenaire sfr
partenaire engie
partenaire boursorama
partenaire invivo
partenaire orange
partenaire psa
partenaire bnp