0% ont trouvé ce document utile (0 vote)
81 vues226 pages

Cours Cloud Et VirtualisationDevOps

Ce document présente un cours sur la virtualisation et le cloud computing, abordant les principes de la virtualisation, les types d'hyperviseurs, et les différents domaines de la virtualisation tels que les applications, les réseaux, le stockage et les serveurs. Il décrit également les avantages et inconvénients de la virtualisation, ainsi que les méthodes et solutions existantes. L'objectif est de comprendre et manipuler les concepts de virtualisation à travers des travaux pratiques.

Transféré par

llc392947
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
81 vues226 pages

Cours Cloud Et VirtualisationDevOps

Ce document présente un cours sur la virtualisation et le cloud computing, abordant les principes de la virtualisation, les types d'hyperviseurs, et les différents domaines de la virtualisation tels que les applications, les réseaux, le stockage et les serveurs. Il décrit également les avantages et inconvénients de la virtualisation, ainsi que les méthodes et solutions existantes. L'objectif est de comprendre et manipuler les concepts de virtualisation à travers des travaux pratiques.

Transféré par

llc392947
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Virtualisation & Cloud

Computing
ENSAH – Génie Logiciel– 2023/2024 Pr. Routaib Hayat
[email protected]
Objectifs du cours

Virtualisation Cloud Computing

1. Comprendre les principes de la Découvrir la notion du cloud


virtualisation
computing et ses
2. Manipuler les concepts de la
applications
virtualisation à travers des travaux
pratiques
Plan

I. Introduction
II. Les hyperviseurs
1) Hyperviseur de type 1
2) Hyperviseur de type 2
III. Les domaines de la virtualisation
1) La virtualisation d’applications
2) La virtualisation de réseaux
3) La virtualisation de stockage
4) La virtualisation de serveurs
IV. Avantages & inconvénients de la virtualisation
V. Les différents types de virtualisation
1) La virtualisation complète ;
2) La para-virtualisation ;
3) La virtualisation assistée par le matériel ;
4) Le cloisonnement.
VI . Les Objectifs de virtualisation
Introduction

Un serveur est un ordinateur


qui possède plusieurs
ressources comme : la CPU, la
mémoire, les disques les
interfaces réseau …etc, pour
servir plusieurs postes client,
mobiles et même d’autres
serveurs via ses ressources à
travers un seul système
d’exploitation

La virtualisation de serveurs est un ense-


D’où la mble de techniques et d’outils permettant
nécessité
Diminution de sa qualité de d’utiliser de faire tourner plusieurs systèmes d’expl-
service (QoS) oitation sur un même serveur physique.
Introduction

Architecture traditionnelle des Architecture virtualisée des


serveurs serveurs

 Le principe de la virtualisation est donc un principe de partage : les différents systèmes


d’exploitation se partagent les ressources du serveur.
Introduction

 la virtualisation doit respecter deux principes fondamentaux :

Le cloisonnement La transparence

le fait de fonctionner
chaque système en mode virtualisé ne
d’exploitation a un change rien
fonctionnement au fonctionnement du
indépendant, et système d’exploitation
ne peut interférer de la machine
avec les autres en physique et a fortiori
aucune manière. des applications.
Introduction

 Pourquoi la virtualisation ?
- La virtualisation est la base du Cloud Computing.
 VMware vSphere : est le premier système d’exploitation industriel à
permettre la création de Cloud.
- Caractéristiques d'un Cloud :
 Capacités de stockage et de calcul quasiment illimitées
 Ressources extraites en pools
 Élasticité (extension et allégement simplifiés)
 Provisionnement en libre-service ou à la demande
 Niveau élevé d'automatisation

Ceux-ci seront abordés plus en détails dans la partie II


Introduction

 Pourquoi la virtualisation ?

Grace au Vmware ESX chaque machine


virtuelle possède ses propres application
et OS
Introduction

 Pourquoi la virtualisation ?

Elle permet de déconsolider les charges de travail des serveurs sous-exploités sur un seul serveur tout
en maitrisant le taux d’utilisation global
Les hyperviseurs

 Définition :
 Un hyperviseur est une plate-forme de virtualisation qui permet à plusieurs systèmes
d’exploitation de travailler sur une même machine physique en même temps. (Voir à titre
d’exemple la couche VMware ESX dans ce schéma)
Les hyperviseurs

 Les types d’hyperviseur :


 Il existe deux types d’hyperviseur :

1) L’hyperviseur de type 1 :

 Appelé natif, ou "bare metal" : c’est un logiciel qui s’exécute directement sur une
plateforme matérielle

 cette plateforme est alors considérée comme outil de contrôle de système d’exploitation.

Un système d’exploitation secondaire peut, de ce fait, être exécuté au-dessus de ce matériel.
L’hyperviseur type 1 est un noyau :

Pour ne faire tourner que des noyaux de systèmes


 hôte allégé
d’exploitation invités adaptés et optimisés à cette
 optimisé,
architecture spécifique
Les hyperviseurs

 Les types d’hyperviseur :


1) L’hyperviseur de type 1 :

 Ces systèmes invités ayant "conscience" d’être virtualisés sur des processeurs ayant les
instructions de virtualisation matérielle comme (AMD-V et Intel VT)

 le système d’exploitation invité n’a plus besoin d’être modifié => pour pouvoir être exécuté
dans un hyperviseur de type 1.

 Voici Quelques exemples de tels hyperviseurs plus récents comme Xen, Oracle VM, ESX
VMware Server.
Les hyperviseurs

 Les types d’hyperviseur :


2) L’hyperviseur de type 2 :

 Ce type d’ hyperviseur est un logiciel qui s’exécute à l’intérieur d’un autre système
d’exploitation.

 Le système d’exploitation invité s’exécutera donc en troisième niveau au-dessus du matériel.


Les hyperviseurs

 Les types d’hyperviseur :


2) L’hyperviseur de type 2 :

 Les systèmes d’exploitation invités n’ayant pas conscience d’être virtualisés, ils n’ont pas
besoin d’être adaptés.

 Voici Quelques exemples de cet hyperviseur comme : VMware Workstation, VMware Fusion,
l’hyperviseur open source QEMU, les produits Microsoft, Virtual PC et Virtual Server,
VirtualBox d’Oracle, Workstation de SWsoft et Parallels Desktop
Les solutions de la virtualisation

Plusieurs solutions de virtualisations qui existent:


dd

XEN KVM

Xen est une solution de virtualisation open source KVM, Kernel Virtual Machine, est intégré depuis le noyau

développée par l’Université de Cambridge. Son 2.6.20 et permet une virtualisation matérielle et donc une

développement est aujourd’hui sponsorisé par Citrix accélération de la virtualisation de système d’exploitation.

qui distribue sa version commercialisée Elle est C’est un système optimisé pour la virtualisation de serveur.

dotée d’une interface d’administration avancée, et Pour virtualiser des systèmes de type desktop, on peut lui

d’un accès au support technique. de gros efforts ont préférer virtualbox. KVM semble en effet plus performant en

été faits par Citrix pour assurer une compatibilité consommation de processeur mais plus lent pour

parfaite avec Windows, compatibilité aujourd’hui l’émulation du périphérique graphique. KVM est meilleur

reconnue par Microsoft. pour sa compatibilité avec des système d’exploitations


anciens ou peu populaires. Il est libre, performant et très
facile à installer et à utiliser.
Les solutions de la virtualisation

Plusieurs solutions de virtualisations qui existent:


dd
VMware
Hyper-V
ESX

Hyper-V, également connu sous le nom de Windows VMware vSphere est un logiciel d’infrastructure de Cloud

Server Virtualisation, il est un système de computing de l’éditeur VMware, c’est un hyperviseur de

virtualisation basé sur un hyperviseur 64 bits de la type 1, basé sur l’architecture VMware ESXi. VMware

version de Windows Server 2008. Il est possible vSphere nécessite une configuration matérielle restreinte

d’utiliser la console Hyper-V sur Windows 7. Dans le précisée. La gestion de Vmware ESX hôte peut se faire par

sens inverse, de nombreux systèmes d’exploitation plusieurs possibilités : 1) le navigateur Web avec une

peuvent tourner à l’intérieur de Hyper-V : connexion directe, par une console cliente avec une

Bien évidemment pour les systèmes d’exploitation connexion directe ou par 2) un outil de gestion centralisée ,

Microsoft Windows 8.1, nommé Vmware vCenter Server pour administrer l’ensemble

Windows 8, Windows 7 , Windows Vista SP1/SP2 des machines virtuelle des hôtes physiques, de leurs

(sauf édition familiale), ressources et des options de l’environnement


Les solutions de la virtualisation

Plusieurs solutions de virtualisations qui existent:


dd

OpenVZ LXC

Open-VZ est Une des solutions les plus avancées et OpenVZ a été remplacé par LXC dans la version
matures dans le domaine de l’isolation est OpenVZ. Squeeze, paru en 2013. LXC est une solution de
Ce produit se présente sous la forme d’un patch virtualisation de type isolateur. Cette solution permet
pour le noyau Linux, et d’un ensemble d’outils la virtualisation par container au niveau du noyau. LXC
d’administration. Le patch du noyau permet à un est très récent et remplace Linux-VServer et OpenVZ
système GNU/Linux de gérer des contextes
virtualisés. Les outils d'administration permettent
de créer, d’instancier, et de contrôler les
environnements virtuels.
Les formes de la virtualisation

Les Formes de virtualisation

La virtualisation La virtualisation La virtualisation


de matériel de présentation d’application
C’est le faite de faire tourner Consiste a exécuter des Permet de distribuer sur un
plusieurs environnements applications de manière poste client des applications
sur la même système centralisée sur des serveurs métiers sans perturber le
physique et déporter l’affichage sur système du poste client
des postes clients « Remote
Control Service »
Application s’exécute L’affichage de l’application Bulle Applicative Application s’exécute
sur le serveur à distance sur le serveur sur le poste client
Les domaines de la virtualisation

1) La virtualisation d’application :
d

La virtualisation d’application est une technologie logicielle qui va permettre


d’améliorer la portabilité et la compatibilité des applications en les isolant du
système d’exploitation sur le quel elles sont exécutées.

 Elle consiste à encapsuler l’application et son contexte d’exécution


système dans un environnement cloisonné
Les domaines de la virtualisation

1) La virtualisation d’application :
d

On peut dire que la couche virtuelle va ajouter des avantages au système virtualisé en permettant d’exécuter des
applications conçues pour d’autres systèmes. On peut aussi citer l’avantage gagné au niveau de la protection du
système d’exploitation hôte en s’assurant que l’application virtualisée ne viendra pas interagir avec les fichiers de
configuration du système.

Exemple :
Wine est un logiciel qui permet d'exécuter certains programmes Windows sous Ubuntu : http://www.winehq.org/
Les domaines de la virtualisation

2) La virtualisation de réseaux :
dd

De manière générale, la virtualisation des réseaux consiste à partager une même infrastructure

physique (débit des liens, ressources CPU des routeurs,...) au profit de plusieurs réseaux virtuels

isolés.

Un VLAN (Virtual Local Area Network) est un réseau local regroupant un ensemble des machines de façon

logique et non physique. Il y’a trois niveau du réseau virtuel :

- Les réseaux virtuels de niveau 1 : appelés réseaux virtuels par port (port-based VLAN)

- Les réseaux virtuels de niveau 2 : appelés réseaux virtuels par adresse MAC (MAC address-based VLAN )

- Les réseaux virtuels de niveau 3 : Les réseaux virtuels par adresse de sous réseau (Network address-
based VLAN) et Les réseaux virtuels par protocole (Protocol-based VLAN)
Les domaines de la virtualisation

2) La virtualisation de réseaux :
dd

Les avantages qu’offrent les réseaux virtuels sont les suivants :

 Une réduction du traffic de diffusion, puisque celui-ci est à présent contenu au sein
de chaque réseau virtuel.

 Une sécurité accrue puisque l’information est encapsulée dans une couche
supplémentaire.

 Une meilleure flexibilité puisqu’une modification de la structure des réseaux peut


être réalisée en modifiant la configuration du commutateur.
Les domaines de la virtualisation

3) La virtualisation de stockage :
dd

Dans une machine virtuelle, les données sont stockées sur un disque dur virtuel. Ce disque
dur se présente sous forme de fichier dans le système de fichiers de l'hôte :

 VHD chez Microsoft

 VDI chez Oracle

 VMDK chez VMWare

 OVF format ouvert


Les domaines de la virtualisation

3) La virtualisation de stockage :
dd

La virtualisation de stockage permet :

 D’adjoindre un périphérique de stockage supplémentaire sans interruption des


services;

 De regrouper des unités de disques durs de différentes vitesses, de différentes tailles et


de différents constructeurs ;

 De réallouer dynamiquement de l’espace de stockage.


Les domaines de la virtualisation

4) La virtualisation de Serveurs :
dd

 Cette technique permet aux entreprises d’utiliser des serveurs virtuels en lieu et

place de serveurs physiques.

 Si cette virtualisation est faite au sein de la même entreprise, le but est de mieux

utiliser la capacité de chaque serveur par une mise en commun de leur capacité.
Les 3 méthodes de virtualisation
dd

 La virtualisation doit s’adapter aux différentes briques technologiques d’une

infrastructure. Trois variantes d’architecture de virtualisation existent:

 L'isolateur

 L'émulateur ou partitionnement

 L'hyperviseur ou bien para-virtualisateur


L’ isolateur
dd

 Virtualisation au dessus du système d’exploitation

- L’isolateur ou Superviseur est installé dans un OS existant. (aussi appelée


cloisonnement) est une technique qui intervient au sein d’un même système
d'exploitation.

=> Elle permet de séparer un système en plusieurs applications ou


environnements.

 Chacun d'entre eux est régi par l'OS hôte, mais les programmes de chaque
application ne peut communiquer qu'avec les processus et les ressources
associées à leur propre contexte.

Il y’a plusieurs exemples outils de machine virtuelle qui utilisent l’isolateur comme :

- VMware Workstation, Virtual PC, VirtualBox…


L’ isolateur
dd

 Un isolateur est une couche logicielle permettant d'isoler des applications dans ces
contextes d'exécution différentes. Parmi ces caractéristiques :

I. Sépare un OS en plusieurs environnements c-à-d les mainframes

II. Partage le même noyau

III. Solution légère et faible over head généré

=> Le cloisonnement : chaque système

d’exploitation a un fonctionnement

indépendant, et ne peut interférer

avec les autres en aucune manière.


L’ émulateur ou partitionnement
dd

1) Emulation ou partitionnement:
 L’émulation consiste à simuler l’exécution d’un programme en interprétant
chacune des instructions destinées au micro-processeur de la machine virtualisée.

2) Avantages:
 Facilité de mise en œuvre et d'utilisation,

 Très bonne compatibilité d'OS

2) Inconvénients:

 Mauvaises performances, matériel émulé


L'hyperviseur / Paravirtualisateur
dd

 L’hyperviseur intègre son propre OS (ou micro OS) de taille réduite et de préférence

peu consommateur en ressources. Par exemple : VMware ESX, HyperV , Xen Citrix

 L’Hyperviseur alloue aux machines virtuelles des ressources matérielles

 L’hyperviseur, ou programme de contrôle, est

un logiciel constitué d’un ensemble de modules.


L'hyperviseur / Paravirtualisateur
dd

 Les composants de l’hyperviseur :

I. Le régulateur (dispatcher) : il peut être considéré comme

le module de contrôle de plus haut niveau de l’hyperviseur.

II. L’allocateur : son rôle est de déterminer quelle(s) ressource(s)

doivent être allouées aux applications virtualisées.

III. Des interpréteurs : ont chacun entre eux des instructions

privilégiées (sauf celles qui sont sensibles à la configuration

prise en charge par l’allocateur), ceci va associer une

routine d’interprétation.
Les types de virtualisation
dd

 Les types les plus répandues de virtualisation sont :


- La virtualisation complète - La virtualisation assistée par le matériel

- Le cloisonnement - La paravirtualisation

Modifiés Paravirtualisation

Système

V-complète
Virtualisation Non-modifiés

V-assistée par le
matériel

Processus Cloisonnement

Procédure de virtualisation selon les différents types


Les types de virtualisation
dd

 La virtualisation complète :
La virtualisation complète permet de faire fonctionner n’importe quel système d’exploitation en tant
qu’invité dans l’intégralité d’une machine virtuelle. Pour l’utilisateur final, ce type de virtualisation est
le plus simple à mettre en place et le plus pratique.

 La caractéristique principale de la virtualisation complète est que les systèmes invités n’ont pas à
être modifiés pour être utilisés dans une machine virtuelle qui utilise ce type de virtualisation

Limitations : Ce type de virtualisation ne permet de virtualiser que des systèmes d’exploitation


prévus pour la même architecture matérielle que le processeur physique de l’ordinateur hôte.

Par exemple, un ordinateur équipé d’un processeur Intel x86 sera incapable de virtualiser un système
d’exploitation prévu pour fonctionner dans une architecture d’IBM PowerPC.
Les types de virtualisation
dd

 La virtualisation complète :
L’hyperviseur crée un environnement virtuel complet

simulant littéralement un nouvel ordinateur complet,

avec du "faux matériel". Le système d’exploitation

invité (installé dans la machine virtuelle) ne communique

qu’avec ce faux matériel simulé, rendant flexible l’environ-

nement virtualisé.

Exemple : Quelques hyperviseurs de ce type de virtualisation :


- VirtualBox - Parallels Desktop for Windows et Linux

- KVM - VMWare Player, VMWare Workstation


Les types de virtualisation
dd

 La paravirtualisation :
La paravirtualisation est très proche du concept de la virtualisation

complète, dans le sens où c’est toujours un système d’exploitation

( mais cette fois ci, utilisation incomplète du système ) qui s’exécute

sur le matériel émulé par une machine virtuelle. A titre d’exemple :

 L’ Encapsulation : C’est une extension du mode paravirtualisation son principe est de regrouper des
données brutes dans un ensemble (boite noire ayant un comportement et des propriétés spécifiés.)
permettant de les lire ou de les manipuler afin de s'assurer que l'utilisateur ne contourne pas l'interface
qui lui est destinée. Donc l’état intégral du serveur virtuel est contenu dans un jeu de fichiers :

 Portabilité des machines virtuelles entre différentes machines hôtes vu que les pilotes de matériels sont
banalisés.
 Optimisation de la sauvegarde/restauration des données et du provisionnement.
 Mise en œuvre d’un plan de reprise d’activité.
Les types de virtualisation
dd

 La paravirtualisation :
 La paravirtualisation fait intervenir un hyperviseur. Il
s'agit d’un noyau allégé au dessus duquel viendront se
lancer les systèmes invités. Contrairement à un système
traditionnel de machines virtuelles où la virtualisation est
transparente, avec la paravirtualisation, le système invité
doit avoir conscience qu’il tourne dans un environnement
virtuel ce qui implique d’employer un noyau modifié.

Exemple : Quelques hyperviseurs de ce type de virtualisation :


- XEN - VMWare ESX/ESXi
- Hyper-V - xVM
Les performances sont bien meilleures en paravirtualisation qu’en virtualisation complète
Les types de virtualisation
dd

 La virtualisation assistée par le matériel :

Le partitionnement matériel est la technique historique utilisée sur les gros systèmes.

Elle consiste à séparer les ressources matérielles au niveau de la carte mère de la machine.

Cette technique est surtout répandue dans les serveurs hauts de gamme, par exemple les
Logical Domains de chez Sun. Elle est assez rare dans le monde x86.
Les types de virtualisation
dd

 Le cloisonnement/ L’isolation :

 L’isolation consiste à mettre en place, sur un même

noyau de système d’exploitation, une séparation

forte entre différents applications logiciels. Il s'agit

de la technique de virtualisation la plus « légère »

qui existe.

 L’isolateur permet ainsi de faire tourner plusieurs fois la même application dans un mode multi-instance
(plusieurs instances d’exécution) même si elle n’était pas conçue pour ça.

 Cette solution est très performante, du fait qu’on a peu d’overhead c-à-d ( temps passé par un système
à ne rien faire et d’autre que se gère )

 Exemple : Les deux principales solutions pour l’isolation Linux sont : OpenVZ et LXC. Linux-Vserver,
Les types de connexion au réseau
dd

 Dans la virtualisation, en termes de connexion au réseau, on trouve plusieurs


types. Parmi ces types de connexion au réseau, on trouve :
- Bridge - LAN Segment

- NAT - Host-Only

 Le mode Bridge et le mode NAT sont les seuls qui permettent d’accéder au
réseau physique sur lequel l’hôte physique est connectée.

 Le LAN Segment peut être utilisé pour isoler certaines machines virtuelles
dans un LAN virtuel qui auront pour passerelle une machine virtuelle ayant
deux cartes une dans le LAN virtuel avec les autres machines virtuelles et une
en mode Bridge pour sortir sur le réseau.
Les types de connexion au réseau
dd

 Le type Bridge :

 Il est le plus utilisé puisqu’il permet de connecter une machine virtuelle directement sur le réseau physique
sur lequel est branchée la carte réseau physique de l’hôte. C’est en quelque sorte un partage de carte réseau,
où le système d’exploitation de votre hôte physique

partage sa carte physique avec le système SO de vos

machines virtuelles.

 Si l’hôte physique dispose de plusieurs cartes

réseaux, on peut choisir de créer un pont ce qui

Permet d’avoir une flexibilité dans la configuration

et dans la gestion de la connexion réseau.


Les types de connexion au réseau
dd

 Le type NAT :
 Ce type est intéressant puisqu’il permet à votre

machine virtuelle d’accéder à votre réseau de façon

totalement transparente puisque c’est l’adresse IP

de la machine physique qui est utilisée grâce à la

translation d’adresse du processus NAT.

 En fait, lorsque vous sélectionnez ce mode, la

machine virtuelle utilise une adresse IP distribuée

par l’application de virtualisation via un serveur

DHCP, puis elle utilisera votre hôte physique comme passerelle pour sortir du réseau. Comme la
fonctionnalité de NAT est appliquée, vous accédez au réseau sans être visible.
Les types de connexion au réseau
dd

 Le type Host-Only :
 Il ne permet pas de sortir vers un réseau extérieur,
d’accéder au réseau local par l’intermédiaire de la
carte réseau physique de la machine physique hôte.

 Comme son nom l’indique, ce mode permet


uniquement d’établir une connexion entre la
machine virtuelle et la machine physique. Cela par
l’intermédiaire de l’adaptateur virtuel de la machine
virtuelle et l’adaptateur virtuel de la machine
physique qui obtiendront des adresses IP via le
serveur DHCP virtuel de l’hyperviseur.
Les types de connexion au réseau
dd

 Le type LAN Segment :


 Le type LAN Segment permet d’isoler des machines sur
un LAN virtuel. Ainsi, vous pouvez regrouper sur un
même LAN virtuel plusieurs machines virtuelles, sans
qu’elles puissent accéder au réseau local, au réseau
extérieur, ni même à l’hôte physique.

 Par exemple, si un LAN virtuel « LAN-1 » est créé, toutes


les machines ayant une carte réseau en mode LAN
Segment connectée au « LAN-1 » pourront
communiquer ensemble. Si vous faites, un « LAN-2 »
toutes les machines reliées à ce LAN pourront
communiquer ensemble mais ne pourront pas
communiquer avec les machines virtuelles du « LAN-1
Firewall, VPN

 Les capacités réseau de certaines solutions de virtualisation permettent

même de mettre en place des serveurs virtuels ayant la main sur les

interfaces réseau, ce qui permet l'utilisation d’un composant virtuel pour

servir de firewall, de système de détection d'intrusions, de endpoint VPN,

totalement isolé du matériel, et donc moins sensible en cas d'attaque.


La virtualisation de stockage

- Quelque soit la technologie utilisée, une machine virtuelle se compose de deux éléments :

 Des ressources : CPU, mémoire vive autorisée, nombre de cartes réseau virtuelles...

 Des données : comme un serveur normal, on doit disposer d’un système d’exploitation, d’outils, d’applications
et de leurs données.

 Le stockage dépend de la technologie de virtualisation


utilisée. Dans les technologies de machine virtuelle,
l’hyperviseur ne fournit au système virtualisé qu’un espace
de stockage. Il peut s’agir d’un volume, ou simplement d’un
fichier, on peut placer l’intégralité de cet espace sur un
disque local, un réseau de stockage ou un autre serveur...
La virtualisation de stockage

 Le DAS :

 DAS : Direct Attached Storage (DAS), ou comme son nom l’indique, méthode de connexion où la baie de
disque est directement connectée sur un serveur

 Dans le cadre d’un réseau d’entreprise on comprend vite les


limitations induites par une architecture DAS :

 Les périphériques de stockages sont gérés indépendamment


les uns des autres, ce qui complique l’administration et la
gestion du parc.

 Le partage de ressources, s’il est possible, impliquera une


charge supplémentaire sur le réseau en place.
La virtualisation de stockage

 Le DAS :

 Les opérations de sauvegardes qui peuvent être planifiées de


façon centralisées engageront le réseau pour accéder aux
différents périphériques ça et là

 Si les opérations de sauvegardes sont faites


indépendamment sur chacun des serveurs cela alourdira
encore l’administration de l’infrastructure.

 Le DAS tend à disparaitre au sein des stockages d’entreprises.


Maintenant cette architecture est surtout répandue pour une
utilisation personnelle, telle que le branchement d’un disque
dur USB sur un poste de travail.
La virtualisation de stockage

 SAN (Storage Area Network) :


 SAN, est un réseau sur lequel circulent les données entre un
système et son stockage. Cette technique permet de déporter
tout le stockage interne d’une machine vers un équipement
dédié.
 la notion de fichier leur est inconnue ; SAN travaillent
simplement sur des blocs de données et les fournit par le réseau
à des serveurs qui eux sauront les utiliser. Cependant, les SAN les
plus hauts de gamme sont dotés de capacités avancées.
La virtualisation de stockage

 SAN (Storage Area Network) :


 IL est un réseau à haute vitesse spécialisé qui connecte des
systèmes informatiques, à des systèmes de stockage à hautes
performances. SAN peut utiliser les protocoles Fibre Channel ou
iSCSI pour se connecter aux systèmes de stockage.
A. iSCSI : Internet iSCSI est un protocole d'accès disque
fonctionnant sur un réseau Ethernet entre les systèmes
informatiques, ou les hôtes virtuelles, et les systèmes de
stockage à hautes performances.

B. Fibre Channel : Basé sur des fibres optiques il assure


une latence et un débit bien meilleurs que iSCSI, à un prix bien
sûr plus élevé. Son principe d'utilisation est le même qu'un SAN
iSCSI.
La virtualisation de stockage

 NAS (Network-Attached Storage) :


 NAS, ou stockage réseau (Network-Attached Storage) est
simplement un serveur fournissant leurs fichiers à d'autres
serveurs par le réseau.

 NFS est le standard universel pour l'accès aux fichiers sur un


réseau, c'est le protocole le plus utilisé dans les NAS.

« SAN vs. NAS »


Le NAS fait référence à un périphérique précis, relié au LAN et
potentiellement accessible par tous les utilisateurs du réseau. Le
SAN fait référence à un réseau de données à part entière, en
parallèle du LAN
La virtualisation de stockage

 NAS vs. SAN (Exemple) :


 Parmi les machines clientes du SAN ( blocs ) , on retrouve un NAS ( fichiers ) : ces deux techniques

peuvent être combinées car elles ne travaillent pas au même niveau.


Les Objectifs de virtualisation

 La virtualisation permet de :

 Partager un même serveur physique à N serveurs virtuels, alloués à

différents clients.

 Définir au moins selon la technologie de virtualisation retenue => la part

des ressources allouées à chaque client.

 Donner à chaque client un contrôle total sur son serveur virtuel :il peut y

installer et réinstaller l’OS

 La virtualisation permet aussi de garantir les principes suivants :


Les Objectifs de virtualisation

 Haute Disponibilité :
 En matière de haute disponibilité ou de haute capacité d’accueil, les mécanismes centraux sont devenus

classiques et bien maîtrisés : répartition de charge (load balancing) et reprise automatique sur incident

(failover).

 Répartition de charge :
 La répartition de charge est à la base un moyen d'augmenter la tenue en charge d'une application, en

l’hébergeant sur plusieurs serveurs qui se partagent les utilisateurs.

 Exemple : C’est le cas typiquement d’un grand site web recevant plusieurs centaines de milliers de

visiteurs par jour, dont le trafic est réparti sur quelques serveurs
Les Objectifs de virtualisation

 Répartition de charge :
on n’en a que 3 serveurs et au lieu
Au lieu de d’une répartition sur 2 serveurs,
4 serveurs on a une répartition sur 3
Les Objectifs de virtualisation

 Reprise automatique :

 Un autre usage de la virtualisation en ce qui concerne la haute disponibilité de service

peut consister à avoir sur plusieurs serveurs physiques les mêmes environnements

virtuels (synchronisés régulièrement).


Les Objectifs de virtualisation

 Reprise automatique :

 Les différents serveurs physiques se partagent les différents serveurs virtuels, et si un

des serveurs physiques tombe en panne, les machines dont il avait la responsabilité

sont relancées sur les autres serveurs.

Après une panne


des serveurs
Les Objectifs de virtualisation

 Optimisation de l’infrastructure :
La virtualisation permet d’optimiser la charge de travail des serveurs physiques

 Une réduction de l’infrastructure physique et des économies d’énergies

Vs.

Rendement d’un serveur Rendement d’un serveur


en en
l’absence de virtualisation présence de virtualisation
Les bénéfices de la virtualisation

Le partage de serveurs et d'autres ressources est l'un des moyens par lesquels la virtualisation optimise

les ressources informatiques. Il offre une flexibilité et une scalabilité qui permet un alignement plus étroit

avec les besoins d'une organisation en matière de systèmes informatiques, de stockage et / ou de bases de

données.

 Flexibilité :
Au lieu de souscrire à X machines virtuelles, vous n’avez plus qu’à louer un unique serveur physique et à

créer ensuite vos instances virtuelles personnalisées. Elles pourront répondre chacune sur une IP

différente, avoir des caractéristiques matériels et systèmes uniques et des usages bien spécifiques.
Les bénéfices de la virtualisation

 Scalabilité :
La capacité de changer, à la demande et de manière transparente pour l’utilisateur, l’ordre de grandeur

(accroître ou réduire les capacités) d’un équipement, d’un logiciel ou d’un processus informatique. Une

capacité qui prend toute sa dimension avec l’évolution des technologies, des volumes de données, du

trafic, de la virtualisation et du cloud. On peut avoir comme bénéfice deux types de scalabilité :
Les bénéfices de la virtualisation

a) Scalabilité Horizontale :

Appelée aussi mise à l'échelle, implique la quantité de matériel et de logiciels requis pour gérer la charge

de travail de votre réseau. L'évolutivité horizontale est nécessaire si vous ajoutez de nouvelles

applications ou augmentez le volume de données dans votre environnement. Dans ce cas, plus de

matériel et d'espace de stockage seraient nécessaires.


Les bénéfices de la virtualisation

b) Scalabilité Verticale I :

Dans un environnement virtuel, une ou plusieurs unités centrales de traitement virtuelles

(vCPU) sont affectées au scalabilité verticale, appelée aussi mise à l'échelle, implique la

croissance et la réallocation de fonctionnalités telles que la mémoire, la bande passante et

les cores de processeur de votre réseau. Dans ce cas, vous pouvez agrandir verticalement en

augmenter ces ressources et d'autres pour les applications existantes lorsqu'elles en ont

besoin.
Les bénéfices de la virtualisation

b) Scalabilité Verticale II :

Dans certains cas, la mise à l'échelle verticale

nécessitera l'ajout de RAM ou d'autre matériel

ou micrologiciel, et dans d'autres cas, une

simple réallocation de la configuration

existante suffira. L'ajout de ressources à une

machine virtuelle peut être configuré via le

système de gestion de l'hyperviseur.


Les bénéfices de la virtualisation

 La virtualisation dans le cloud :

Dans une entreprise disposant de l'informatique et du stockage sur site, la quantité de matériel et de

budget peut être limitée.

 Dans un environnement cloud, la scalabilité de la virtualisation devient plus grande. Le cloud

computing permet une scalabilité automatisée selon les besoins et peut répondre à des demandes

croissantes et décroissantes sans reconfiguration matérielle et / ou logicielle coûteuse.

 Par exemple, Amazon Cloud Services utilise des alarmes et des équilibreurs de charge qui
surveillent et régulent l'utilisation moyenne du processeur d'une instance. Cela garantit que les
ressources appropriées seront allouées à vos besoins informatiques sans les dépenses et les maux de
tête liés à la maintenance interne.
Les bénéfices de la virtualisation
C’est quoi le Cloud Computing ?

 Le Cloud Computing est comme les centrales électriques


où on peut obtenir les ressources très rapidement et
facilement tout en Réfléchissant à notre consommation
d’électricité.
 Au niveau du Cloud Computing, on n’utilise que des
ressources dont on a besoin, par exemple :
=> le processeur, la bande passante, le stockage, la mémoire
vivante les applications prés configurées….etc
C’est quoi le Cloud Computing ?

 Selon le NIST (National Institute of Standards and Technology) :

Le Cloud Computing est un modèle qui permet un accès omniprésent, pratique et à la


demande à un réseau partagé et à un ensemble de ressources informatiques configurables
(comme par exemple : des réseaux, des serveurs, du stockage, des applications et des
services) qui peuvent être provisionnées et libérées avec un minimum d’administration.

 Tous types de données peuvent être conservées dans le cloud

: mails, vidéos, images, notes, logiciels, documents,

bureautique…
Pourquoi doit-on utiliser le Cloud Computing ?

 On distingue deux grandes utilisations du cloud :

 Le stockage des données en ligne : grâce à des sites internet spécialisés (ou non) qui
proposent un espace de stockage. Par exemple : DropBox, Google Drive, One Drive,
pCloud…

 Les services en ligne : certains logiciels, applications et jeux vidéo sont accessibles

directement sur internet sans avoir à installer quoi que ce soit sur son ordinateur. Par

exemple : FaceBook, Instagram, Gmail, iCloud…


Pourquoi doit-on utiliser le Cloud Computing ?

 Exemple : Google Drive, One Drive :


Pourquoi doit-on utiliser le Cloud Computing ?

 Exemple Concret :
Si nous reprenons notre exemple de stockage des données Dropbox, pCloud….etc :
– Un service à la demande :
Vous choisissez le service de stockage de vos données.
– Un accès aux ressources par le réseau :
Vous avez accès à vos données par Internet.
– Mise en commun des ressources :
Vous n’êtes pas le seul à utiliser ce service et vous n’êtes pas le seul à utiliser les ordinateurs qui
supportent ce service.
– Flexibilité des ressources :
Si vous n’avez plus assez de place, il suffit d’augmenter l’espace disque, et bien souvent cela se fait
très simplement
– Un service mesuré :
L’hébergeur de vos données vous dira combien d’espace disque vous utilisez chez lui.
Pourquoi doit-on utiliser le Cloud Computing ?

 L’utilité du cloud :

 Partage

 Sauvegarde

 Accessibilité

 Mobilité

 Pas d’installation
Pourquoi doit-on utiliser le Cloud Computing ?

 L’utilité du cloud :

 CLOUD PRINTING :

Les imprimantes sont connectées à internet , on peut imprimer de n’importe où et depuis


n’importe quel appareil connecté.

 CLOUD GAMING :

Lorsqu'une personne souhaite jouer à un jeu vidéo, c'est un serveur distant qui lance le jeu.

 CLOUD LEARNING :

Dispositif de formation à distance.


Les caractéristiques du Cloud Computing

 Les 5 caractéristiques du Cloud :

 Accès aux services mesurés :


La mise en œuvre des systèmes est entièrement automatisée et c’est l’utilisateur, au moyen d’une
console de commande, qui met en place et gère la configuration à distance.
Les caractéristiques du Cloud Computing

 Les 5 caractéristiques du Cloud :

 Accès réseau large bande


Ces centres de traitement sont généralement raccordés directement sur le backbone Internet pour
bénéficier d’une excellente connectivité. Les grands fournisseurs répartissent les centres de
traitement sur la planète pour fournir un accès aux systèmes en moins de 50 ms de n’importe quel
endroit.
Les caractéristiques du Cloud Computing

 Les 5 caractéristiques du Cloud :

 Partage des ressources (non localisées) :


La plupart de ces centres comportent des dizaines de milliers voire millions de serveurs et de
moyens de stockage pour permettre des montées en charge rapides. Il est souvent possible de
choisir une zone géographique pour mettre les données “près” des utilisateurs.
Les caractéristiques du Cloud Computing

 Les 5 caractéristiques du Cloud :

 Elasticité :
La mise en ligne d’une nouvelle instance d’un serveur est réalisée en quelques minutes, l’arrêt et le
redémarrage en quelques secondes. Toutes ces opérations peuvent s’effectuer automatiquement
par des scripts. Ces mécanismes de gestion permettent de bénéficier pleinement de la facturation à
l’usage en adaptant la puissance de calcul au trafic instantané.
Les caractéristiques du Cloud Computing

 Les 5 caractéristiques du Cloud :

 Facturation à l’usage (service à la carte) :

Il n’y a généralement pas de coût de mise en service (c’est l’utilisateur qui réalise les opérations). La
facturation est calculée en fonction de la durée et de la quantité de ressources utilisées. Une unité de
traitement stoppée n’est pas facturée.
Les modèles du services du Cloud

Le Cloud Computing se résume


en : Services disponibles et
accessibles à tous
instantanément et n’importe où
sans engagement et payé à la
demande
Les modèles du services du Cloud

 Infrastructure as a Service « IaaS » :

Concerne la mise à disposition de ressources informatiques (puissance CPU, mémoire, stockage…).

 IaaS propose des plateformes de production mutualisées.

 PaaS proposait des plateformes de développement mutualisées,


Les modèles du services du Cloud

 Infrastructure as a Service « IaaS » :


 Microsoft :

Azure : Virtualisation du système, des outils de développement et des applications.

 IBM :

Blue Cloud – Système Open source (Red Hat Entreprise Linux) + applications (Websphere, DB2…).

 Amazon Web Service :

S3 : Offre un stockage illimité

 Elastic Compute Cloud (EC2) :

Images serveur
Les modèles du services du Cloud

 Platform as a Service « PaaS » :

PaaS propose à l'utilisateur d'avoir accès à une véritable plate-forme pré-configurée de


développement (langage de programmation, outils de développements, modules).

 Force.Com (SalesForce),

 Titan (Microsoft Dynamics CRM) (Gestion Relation Client).

 Google App Engine (Développer un site web dynamique)

 Intuit (Comptabilité)
Les modèles du services du Cloud

 Software as a Service « SaaS » :

Concerne la mise à disposition d’applications d’entreprise : CRM, outils collaboratifs, messagerie,


Business Intelligence, ERP, etc. Le fournisseur offre une fonction opérationnelle et gère de façon
transparente pour l’utilisateur l’ensemble des aspects techniques requérant des compétences
informatiques. Le client garde la possibilité d’effectuer quelques paramétrages de l’application.

 Salesforce CRM, Microsoft Dynamics CRM on line (Gestion Relation Client).

 Google Apps (Outils bureautiques) : Google documents, Agenda, OpenClassRom, Talk…

 BaseCamp (Gestion de projets) – La tendance est au travail en mode projet et il est important d’y
avoir accès en continue.

 FaceBook, Viadeo, Linkedin (Réseaux sociaux) :

 nouveau mode de communication.


Les modèles du services du Cloud

Applications Applications Applications

Environnements Environnements Environnements


applicatifs applicatifs applicatifs

Base de données Base de données Base de données

Serveurs Serveurs Serveurs

Stockage des Stockage des Stockage des


Données Données Données

Réseaux Réseaux Réseaux

IaaS PaaS SaaS


Les modèles du services du Cloud

Base de données
Les acteurs de contrôle
Les modes de déploiement du Cloud

Usage dédié aux besoins d’Entreprise

Gestion externalisée par une autre


Gestion interne à l’Entreprise

1. Interne - Privé 1. Externe - Privé

organisation
3. Interne - Ouvert 4. Externe - Ouvert

Usage ouvert aux grand public ou à une autre organisation


externe de l’entreprise
Les modes de déploiement du Cloud

Usage dédié aux besoins d’Entreprise

Cloud Privé : une seule et unique Cloud Communautaire : l’infrastructure


organisation possède son

Gestion externalisée par une autre


est partagée par plusieurs organisations
Gestion interne à l’Entreprise

infrastructure, et la gère et concerne une communauté spécifique


uniquement pour ses besoins. Elle qui partage des intérêts communs (une
ne la partage pas avec d’autres mission, des exigence de sécurité, des
organisations obligations légales..etc)

organisation
Cloud Hybride : composition de 2 ou
plusieurs clouds privés, communautaires et Cloud Public : un fournisseur
publics. Cette plateforme constitue une possède une infrastructure dont il
entité unique. Les échanges qui s’y loue les services à plusieurs
produisent s’effectuent grâce à une entreprises ou groupes industriels
technologie standard qui permet la
portabilité des données et des applications

Usage ouvert aux grand public ou à une autre organisation


externe de l’entreprise
Sécurité du Cloud Computing

 PaaS, SaaS : chiffrement

 des accès

 des données

 Gestion des clés

 PaaS, SaaS : gestion des identités et des accès

 PaaS, SaaS : sécurité applicative

 IaaS : automatisation, conformité et mises à jour


Sécurité du Cloud Computing

 Gestion des identités et contrôle d’accès (Windows Azure)

 WIF (Windows Identity Foundation) => API .NET

 AD FS (Active Directory Federation Services) 2.0 => Fédération et


SSO, WS-Trust, WS-Federation, SAML 2.0

 AC (Windows Azure AppFabric Access Control service)


Le Cloud pour les entreprises

 Le cloud pour les PME :

a. Il permet d’accéder à d’importantes capacités de stockage à bas prix sans développer


une coûteuse infrastructure interne.

b. Le cloud en PME permet la disparition des astreintes et des coûts liés à la maintenance.

c. Le fournisseur du cloud assure le bon fonctionnement des serveurs et la disponibilité des


données.

 Ceci rend les petites entreprises en égalité avec les grandes structures…

 D’autant que les coûts s’adaptent à la charge d’activité et lissés via le mode abonnement.
Le Cloud pour les entreprises

 Le cloud pour les PME :

d. L’entreprise peut bénéficier d’outils informatiques évolués comme :

 Les suites bureautiques,

 Les services de messagerie,

 Les outils de business intelligence sans avoir à les installer sur les postes de travail.

e. L’opérateur s’occupe de la mise à jour des solutions et des systèmes, résout les
problèmes de mise à l’échelle de votre espace de stockage et garantit un haut niveau de
sécurité.

f. Tous les problèmes liés à l’informatique sont automatiquement résolus et on peut


accéder en permanence à la hotline cloud PME.
Le Cloud pour les entreprises

 Le transfert vers le cloud :

 Il nécessite une préparation de la migration des données pour transférer le SI de l’entreprise vers le
Cloud, cela exige une préparation de la part des chefs d’entreprise ou des responsables IT. Dans
l’ordre de :

 Définir une stratégie cloud claire : choisir entre cloud public, privé ou hybride qui dépend
des attentes, et de la taille, de l’organisation.

 Revoir la gestion financière du service informatique : basé sur un modèle de consommation


des ressources matérielles et logicielles par abonnement et faire une bonne optimisation
pour réussir la migration.

 Le cloud permet de réduire les coûts en data centers et autres licences applicatives.

 L’investissement se situe ailleurs (dans le stockage, l’utilisation de la base de données, etc.).


Pour y voir plus clair, les fournisseurs disposent de configurateurs d’architecture et de prix
Le Cloud pour les entreprises

 Le transfert vers le cloud :

 Conserver son indépendance : confier les données de l’entreprise à un fournisseur requiert


une prudence et une rigueur; la création d’un système d’information (interne) associé aux
services du fournisseur limite la dépendance de l’organisation aux applications propriétaires
du fournisseur

 Revoir la gestion financière du service informatique : basé sur un modèle de consommation


des ressources matérielles et logicielles par abonnement et faire une bonne optimisation
pour réussir la migration.

 Se doter d’outils de pilotage : pour gagner en efficacité et profiter de la souplesse du cloud,


la montée en compétence de la DSI et l’introduction de nouveaux outils (d’intégration, de
développement, de contrôle…)
OpenStack pour les entreprises

 Pour les PME, OpenStack est une option idéale pour la transition vers le cloud computing, ainsi que
pour le stockage des données et des applications.

 Pour cela, la création d’un Cloud public est un choix important. En particulier, parce que la gestion
des droits du Cloud OpenStack offre de nombreuses possibilités de gestion optimale du travail
collaboratif entre différents profils d’utilisateurs.

 Les grandes entreprises peuvent externaliser certaines parties de leur infrastructure réseau, via
OpenStack (i.e des données ou des programmes particulièrement sensibles…)et utiliser également
dans le cadre d’une approche multi-cloud ou dans le cadre d’un cloud hybride.

 Le risque de défaillance des serveurs d’applications est plus faible, car les serveurs peuvent être
répliqués selon les besoins. Les données sont de toute façon stockées de manière redondante dans
le système, de sorte qu’une perte de données due à un dommage matériel sera impossible.
Les Datacenters virtualisés

 Les Datacenters sont virtualisés cela implique que l’infrastructure de l’entreprise sera
virtualisée :

A. Les Serveurs virtualisés

B. Le réseaux d’infrastructure est virtuel

C. Le stockage est virtualisé


Les Datacenters virtualisés

 Problème : La multiplication des VM peut devenir rapidement ingérable


Les Datacenters virtualisés

 D’où la nécessité d’avoir un niveau de management supplémentaire offrant une


automatisation et contrôle complet comme : OpenStack
Définition d’OpenStack

 OpenStack est un ensemble de logiciels open source permettant de déployer des


infrastructures du cloud computing.

 Ce pack logiciel regroupe plusieurs composants corrélés entre eux (Nova, Swift,
Glance...) qui permettent de contrôler les différentes ressources des machines virtuelles
telles que la puissance de calcul, le stockage ou encore l’ensemble du réseau virtuel

 OpenStack a été fondé en 2010, par la NASA, l’agence spatiale américaine et l’entreprise
Rackspace. La NASA souhaitait développer pour ses projets un logiciel qui permettrait la
mise en place flexible et temporaire de réseaux informatiques.
Définition d’OpenStack

 Des entreprises connues comme AT&T, RedHat, Canonical (développeur d’Ubuntu), Intel,
IBM et Huawei ont rejoint le projet d’OpenStack.

 Le logiciel ne fonctionne que sur un système d’exploitation sous Linux. Il a été publié
sous une licence Apache. Cela signifie que le code source est en libre accès et que les
programmes peuvent être utilisés gratuitement de manière illimitée.

 La 20e version d’OpenStack a été publiée en octobre 2019. Elle porte le nom de « Train ».
Les caractéristiques d’OpenStack

OpenStack permet de :

 Déployer des CLOUDS PRIVES ET PUBLICS

 Contrôler et automatiser les pools de ressources

 Optimiser l’allocation de ressources

 Donner le contrôle aux administrateurs et aux utilisateurs via le portail - Garantir la


conformité

 Permettre aux développeurs de performer leurs applications « Cloud Aware » grâce aux
APIs

 Avoir une architecture comparable à Amazon Web Services


Les 3 modules d’OpenStack

OpenStack Compute : provisionner et contrôler un large réseau de


machines

OpenStack Object Storage : créer une plateforme de stockage de


plusieurs PetaBytes ( 1Million de GégaBytes ) hautement disponible
à l’aide de serveurs standards

OpenStack Image Service : gérer et organiser un large catalogue


d’images de machines virtuelles
Les composants d’OpenStack

 Le Cloud OpenStack se compose de plusieurs éléments, dont les principaux sont les
suivants :

 Nova (Compute Service)

 Keystone (Identity Service)

 Glance (Image Service)

 Neutron (Networking)

 Cinder (Block Storage)

 Swift (Object Storage)

 Horizon (Dashboard)
Les composants d’OpenStack

 Keystone (Identity Service) :

Il est responsable de l’autorisation et de l’authentification des utilisateurs (Identity).

PB : Le Cloud Computing ne se contente pas de gérer des ordinateurs virtuels, il met en


place des réseaux entiers.

 C’est pour cette raison, l’identification des utilisateurs et la confidentialité des activités
sont indispensables.

 Keystone accorde à chaque utilisateur du Cloud (appelé « mandant ») un accès


individualisé. Cet accès recense également les droits du mandant.
Les composants d’OpenStack

 Nova (Compute Service) :

 C’est le composant de calcul d’ OpenStack et le premier composant à avoir été intégré à


OpenStack en 2010.

 C’est « la colonne vertébrale d’ OpenStack » et il se charge d’une tâche essentielle :

 La gestion des groupes entiers des machines virtuelles qui sont reliées entre eux
par une connexion synaptique.

 Le contrôle du nombre de nœuds (aussi appelés synapses) qui est variable.

 Nova utilise principalement les hyperviseurs sans licence comme KVM intégrés
dans le noyau Linux et XEN comme base des machines virtuelles utilisées.
Les composants d’OpenStack

 Glance (Image Service) :

 Elle met à disposition les « images » : c’est-à-dire les images des supports de données des
machines virtuelles.

 Glance peut également sauvegarder et restaurer les images. Il est possible de créer une
sorte de bibliothèque avec les modèles des systèmes requis. Ceux-ci peuvent être recréés
ultérieurement dans le réseau aussi souvent que nécessaire.

 Glance garantit la disponibilité, car les machines nécessaires peuvent être recréées à tout
moment.
Les composants d’OpenStack

 Neutron (Networking) :

 Il constitue l’infrastructure réseau virtuelle d’OpenStack.

 Il est ainsi possible de répartir des sous-réseaux,

 Il gère les adresses IP et de générer des réseaux virtuels (VLAN). Les VPN (Virtual Private
Networking) sont également pris en charge par Neutron.

 Il permet avant tout l’échange de données entre les éléments d’OpenStack, par exemple
entre les machines virtuelles individuelles.

 Le pare-feu du réseau est également mis en place par Neutron.


Les composants d’OpenStack

 Cinder (Block Storage) :

 Il met à disposition d’un stockage permanent sous forme de stockage en bloc grâce à la
virtualisation.

 Il est ainsi possible d’adapter les volumes aux besoins (scalabilité).

 Le stockage en bloc Cinder se comporte comme un disque dur physique dans un


ordinateur.

 La sécurisation des données est simple, car l’utilisateur peut accéder au disque dur via
une interface centrale qui possède également une fonction (instantané) snapshot.
Les composants d’OpenStack

 Swift (Object Storage) :

 Swift est le stockage objet.

 Il connecte les stockages dans différents endroits afin de pouvoir utiliser des objets de
données répartis aléatoirement.

 Ceci crée d’une manière transparente une redondance puisque les objets peuvent être
stockés physiquement plusieurs fois.

 En outre, les stockages mis à disposition par Swift peuvent être utilisés par Cinder ou
Glance.
Les composants d’OpenStack

 Horizon (Dashboard) :

 Horizon est (un tableau de bord) l’interface utilisateur graphique qui permet de gérer les
composants regroupés dans OpenStack.

 Il est également utilisé pour gérer les utilisateurs. Le design et les fonctionnalités
d’Horizon sont adaptables.
C’est quoi DevOps ?

 DevOps est un ensemble de pratiques conçu pour dynamiser et améliorer le


développement d'applications et accélérer la mise à disposition de nouvelles
fonctionnalités, de mises à jour logicielles ou de produits près aux exigences des
consommateurs .

 Une évolution des méthodes de développement agiles

 Il favorise la communication, la collaboration, l'intégration, la visibilité et la transparence


continues entre les équipes chargées du développement d'applications (Dev) et celles
responsables des opérations IT (Ops).
C’est quoi DevOps ?

 La relation étroite entre Dev et Ops se reflète dans chaque phase du cycle de vie DevOps :
1. Planification logicielle initiale,
2. Codage,
3. Développement,
4. Test,
5. Publication,
6. Déploiement,
7. Opérations et surveillance continue.
 Elle génère de façon constante des retours clients, pour renforcer le potentiel
d'amélioration lors : du développement, des tests et du déploiement.

 La publication accélérée et permanente des modifications ou ajouts de fonctionnalité est


un exemple.
Les objectifs de DevOps

 Les objectifs du DevOps s'articulent autour de quatre catégories :

1. La culture,

2. L’ automatisation,

3. Mesure et partage.

 les outils DevOps améliorent :

 La rationalisation

 La collaboration des workflows de développement et d'opérations en

 L’automatisation des tâches : chronophages, manuelles ou statiques des phases

d'intégration, de développement, de test, de déploiement ou de surveillance.


L’utilité de DevOps

 DevOps vise à optimiser la satisfaction client et à proposer des solutions à valeur ajoutée
plus rapidement.

 Le DevOps est aussi conçu pour stimuler l'innovation dans une optique d'amélioration
continue des processus.

 Les pratiques DevOps accélèrent, optimisent et sécurisent la valeur commerciale des


entreprises,

=> Exemple : via la publication plus fréquente ou la mise à disposition plus rapide de
versions, de fonctionnalités ou de mises à jour des produits, tout en assurant les niveaux de
qualité et de sécurité appropriés. Autre objectif : améliorer les délais de détection, de
résolution de bogues ou d'autres problèmes et de republication d'une version.
Les méthodes de DevOps

 Afin d'accélérer et d'améliorer le développement et le lancement de leurs produits, les


entreprises disposent de plusieurs méthodologies et pratiques DevOps de développement
logiciel :

 Scrum : définit la manière dont les membres de l'équipe doivent collaborer pour
accélérer les projets de développement et d'assurance qualité. Les pratiques Scrum
utilisent des workflows clés, une terminologie spécifique (sprint, time box, daily
scrum) et des rôles désignés (Scrum Master, product owner ou responsable de
produit).

 Kanban : Développée par Toyota pour améliorer l'efficacité de ses usines de


montage, la méthode Kanban repose sur un suivi des travaux en cours (TEC) dans un
projet logiciel à l'aide d'un tableau de Kanban.
Les méthodes de DevOps

 Agile : Les premières méthodes de développement logiciel agile continuent d'influencer


largement les pratiques et les outils DevOps. Notamment Scrum et Kanban, intègrent des
éléments de la programmation agile. Certaines pratiques agiles offrent une meilleure
réactivité face à l'évolution des besoins en documentant les exigences sous forme de user
stories, en organisant des réunions quotidiennes (daily standups) et en intégrant les
retours des clients de manière continue.

 La méthodologie agile préconise également des cycles de développement logiciel plus


courts, à l'encontre des méthodes classiques dites « en cascade » plus chronophages.
La Chaîne d'outils DevOps

 Les pratiques DevOps intègrent souvent des outils compatibles DevOps dans leur «
chaîne d'outils » pour :

 Rationaliser,

 Accélérer

 Automatiser les différentes étapes du workflow (ou «pipeline») de fourniture


des logiciels

=> Ces outils renforcent les principes fondamentaux du DevOps tels que l'automatisation,
la collaboration et l'intégration entre les équipes chargées du développement et des
opérations.
La Chaîne d'outils DevOps

 Voici les outils employés à différentes étapes du cycle de vie DevOps :

1. Planification. Cette phase permet de définir la valeur commerciale et les exigences.


Jira et Git peuvent être utilisés pour le suivi des problèmes connus et la gestion des
projets.

1. Code. Cette phase inclut la conception logicielle et la création du code logiciel à


l'aide des logiciels GitHub, GitLab, Bitbucket ou Stash,
La Chaîne d'outils DevOps

3. Création : Cette phase consiste à gérer les versions logicielles et à exploiter des outils
automatisés pour compiler et intégrer le code en vue de sa mise en production. Des
référentiels de code source ou de package « empaquettent » aussi l'infrastructure
requise pour la livraison du produit à l'aide des logiciels Docker, Ansible, Puppet, Chef,
Gradle, Maven ou JFrog Artifactory

4. Test : Cette phase comprend des tests continus, qu'ils soient manuels ou automatisés,
et vise à assurer une qualité de code optimale à l'aide des logiciels JUnit, Codeception,
Selenium, Vagrant, TestNG ou BlazeMeter, par exemple.
La Chaîne d'outils DevOps

5. Déploiement : Cette phase peut inclure des outils de gestion, de coordination, de


planification et d'automatisation de la mise en production des produits, avec Puppet,
Chef, Ansible, Jenkins, Kubernetes, OpenShift, OpenStack, Docker ou Jira.

6. Exploitation : Cette phase permet de gérer les logiciels en production à l'aide des
logiciels Ansible, Puppet, PowerShell, Chef, Salt ou Otter,

7. Supervision : Cette phase permet d'identifier les problèmes affectant une version
logicielle en production et de collecter les informations correspondantes à l'aide des
logiciels New Relic, Datadog, Grafana, Wireshark, Splunk, Nagios ou Slack
La Chaîne d'outils DevOps
Pratiques DevOps

 Les pratiques DevOps améliorent en continu et automatisent les processus. Elles portent
sur une ou plusieurs phases du cycle de développement :

1. Développement continu : Cette pratique couvre les phases de planification et de


codage dans le cycle de vie DevOps et peut inclure des mécanismes de contrôle des
versions.

2. Tests continus : Cette pratique prévoit des tests automatisés, planifiés et continus

lors de l'écriture ou de la mise à jour du code d'application qui accélèrent la livraison

du code en production.
Pratiques DevOps

3. Intégration continue : Cette pratique rassemble des outils de gestion de la


configuration, de test et de développement pour assurer le suivi de la mise en
production des différentes portions du code. Elle implique une collaboration étroite
entre les équipes responsables des tests et du développement pour identifier et
résoudre rapidement les problèmes de code.

4. Livraison continue : Cette pratique automatise la publication des modifications du


code après la phase de test, dans un environnement intermédiaire ou de pré-
production. Un membre de l'équipe peut décider de publier ces modifications dans
l'environnement de production.
Pratiques DevOps

5. Déploiement continu : À l'instar de la livraison continue, cette pratique automatise la


publication d'un code nouveau ou modifié dans l'environnement de production. Les
entreprises peuvent être amenées à publier plusieurs fois par jour des modifications du
code ou des fonctionnalités. Dans un contexte de déploiement continu, les technologies
de conteneur comme Docker et Kubernetes assurent la cohérence du code entre
plusieurs plateformes et environnements.

6. Surveillance continue : Cette pratique prévoit une surveillance continue du code


exécuté et de l'infrastructure sous-jacente. Les développeurs reçoivent des retours sur
les bogues ou sur les problèmes.
Pratiques DevOps

7. Infrastructure-as-code : Cette pratique peut être suivie dans plusieurs phases DevOps
pour automatiser le provisionnement de l'infrastructure requise pour une version
logicielle. Les développeurs ajoutent le « code » de l'infrastructure à l'aide de leurs outils
de développement.

 Par exemple, un développeur peut créer un volume de stockage à la demande via


Docker, Kubernetes ou OpenShift. Cette pratique permet aussi aux équipes chargées
des opérations de surveiller les configurations de l'environnement, d'effectuer le
suivi des modifications et de simplifier leur restauration.

.
Les avantages de DevOps

 Pour les entreprises qui suivent les pratiques DevOps, elles assurent des avantages
commerciaux et techniques pour améliorer la satisfaction des clients parmi eux :

1. Accélération et amélioration de la fourniture des produits

2. Résolution plus rapide des problèmes et complexité réduite

3. Plus grande évolutivité et disponibilité inégalée

4. Stabilité accrue des environnements d'exploitation

5. Meilleure utilisation des ressources

6. Automatisation accrue

7. Meilleure visibilité sur les résultats du système

8. Innovation renforcée
Quel est le lien entre le cloud et le devops ?

 Le but du DevOps est de faire travailler ensemble les développeurs (Dev) et les
opérationnels (Ops) de manière agile pour réduire les « time-to-market » en
automatisant toutes les phases du processus: l’intégration (Continuous Integration), le
test (Continuous Testing) et le déploiement (Continuous Delivery).

 Les services proposés par les fournisseurs Cloud sont de plus en plus nombreux et
évolués : de la gestion de machines virtuelles (IaaS), du déploiement d’application (PaaS),
des logiciels (SaaS), du codage d’infrastructure (Infra as Code), de l’IoT, du BigData, …..etc
Quel est le lien entre le cloud et le devops ?

 Tous ces services sont accessibles dans des interfaces web, mais aussi en ligne de
commande et par API, simplifiant l’utilisation de ces ressources depuis des chaînes
d’intégration et rendant ces services parfaitement adaptés pour le DevOps.

 Les fournisseurs Cloud proposent même directement des outils DevOps intégrés à leurs
services (gestionnaires de code source, de chaînes d’intégration …) pour en faciliter
l’adoption par les équipes DevOps.
Les enjeux du développement logiciel dans le
cloud

 Les fournisseurs Cloud proposent beaucoup de services qui permettent de réduire les
coûts de développement et d’exploitation des applications,

 Pour en bénéficier il est important de bien choisir les services en fonction des besoins, et
ceci dès la phase de conception.

 Il n’est pas nécessaire de développer une solution d’authentification pour une


application si le fournisseur Cloud en propose une. De même qu’utiliser un service de
base de données évite d’avoir à exploiter soit même les serveurs BD correspondants.
Les enjeux du développement logiciel dans le
cloud

 Il est également important de bien choisir les outils DevOps. Et un outil d’Infrastructure
as Code (Inf-as Code) pour créer des environnements applicatifs complets en quelques
instants et économiser de longues heures passées sur l’interface web du fournisseur
Cloud.

 Donc, une architecture Cloud bien étudiée et des outils DevOps bien choisis :

 permettent de mettre en place une chaîne d’automatisation et de gagner beaucoup de


temps et d’effort pour se concentrer sur le développement de l’application
les étapes clés pour une mise en œuvre réussie
DevOps/cloud

 Pour définir l’architecture Cloud de l’application : il est important de bien choisir le


modèle de service de Cloud (IaaS, PaaS) ainsi que les ressources offertes (Stockage, CPU,
BDD, Authentification, Notification …) qui sont le plus adaptés aux objectifs et aux
besoins.

 La constitution de l’équipe DevOps : et son embarquement sur le projet, est également


important tout comme le choix de la méthode agile qui sera utilisée. Le rassemblement
de développeurs et d’opérationnels ayant une véritable compétence pour les
technologies Cloud sera un plus certain et facilitera la cohésion du groupe.

 Le choix des outils DevOps les mieux adaptés aux technologies Cloud visées permettra de
mettre en place des chaînes d’automatisation complètes pour toutes les phases du
projet: développement, intégration, test et déploiement.
Comment adopter ce duo gagnant
Cloud/DevOps ?

 Pour mettre en place le duo gagnant Cloud et DevOps en toute sérénité dans votre
entreprise, suivez les étapes suivantes :

1. Établir un cahier des charges pour bien cerner vos besoins et définir un budget.

2. Choisir un modèle IaaS, PaaS ou Saas. Cette partie concerne vos ressources internes.
Avez-vous suffisamment de salariés dans votre service informatique pour s’occuper
l’infrastructure matérielle ? Avez-vous la place d’accueillir des serveurs ? Etc.

3. Choisir un modèle de déploiement privé, public ou hybride. Ici, la question tourne autour
de votre solution. Son besoin de puissance évolue-t-il ? Utilise-t-elle des données
sensibles (attention aux règles du RGPD i.e Reglement General de Protection des Donnée)
? Etc.
Comment adopter ce duo gagnant
Cloud/DevOps ?

4. Définir les outils dont vos équipes de développement et opérationnelle ont besoin. Un
point d’attention, il existe un très grand nombre d’outils intégrés dans le Cloud. Il est très
facile de s’y perdre et d’avoir une mauvaise surprise sur la facturation. Même si le Cloud
coûte de base moins cher que l’ on Promise, si vous ajoutez une multitude d’outils, la
facture peut rapidement monter. Il est donc important de faire un benchmark avant de se
lancer pour comprendre quels outils correspondent à vos besoins.

5. En fonction de la sélection des outils, vous pourrez faire le choix de votre fournisseur

Cloud (AWS, GCP, Oracle Cloud ou Azure).


Evolution de l'industrie logicielle

Avant
 Applications monolitiques

 Cycles de dev long

 Un seul environnement

Après
- Ensemble de services - Des serveurs de prod (dans le cloud?)

- Améliorations rapides, cycles itératifs - Des laptops de dev

- De nombreux environnements - Des serveurs de test (gitlab?)


Le déploiement devient complexe

 Pour une application utilisant différentes technologies (services), des problèmes


posés au moment du déploiement en production:

 Compatibilité des applications avec les OS

 Installer les dépendances et les librairies requises avec les bonnes versions pour
chaque service.

 Installer les différents environnements « Dev, Test, Prod »

 Des conflits entres les développeurs et les opérationnels


Le déploiement devient complexe
Le déploiement devient complexe

 Manipulation simplifiée d'un ensemble d'objets (ou d'applications) grâce à une


interface standardisée.
Le conteneur

 Enveloppe permettant de packager une application avec juste ce dont elle


besoin pour fonctionner

 Peut être déployé tel que dans n’importe quelle machine disposant d’un

 Container Engine avec différents environnement (Dev, Test, Prod).

 Utilise le kernel de l’OS Hôte.

 A son propre espace de processus et sa propre interface réseau.

 Isolé de l'hôte mais exécute directement dessus.

 Permet de décomposer l’infrastructure applicative en petits éléments légers

 facile à déployer et utiliser


Différence entre machine virtuelle et conteneur
Différence entre machine virtuelle et conteneur

❑ Machine virtuelle

• Permet de virtualiser une machine physique.

• Chaque VM a son propre OS.

• Une VM consomme bcp de ressources (CPU, Stockage) et prend assez

de temps pour booter.

❑ Conteneur :

• Permet de créer un environnement d'exécution des application

• Les conteneurs utilisent le même Kernel OS (linux), et consomment peu

de ressources.
Utiliser les conteneurs dans des VMs

 Container Engine ne vient pas pour remplacer les machines virtuelles Dans la pratique
on utilise les deux :

 Les machine virtuelles pour virtualiser les machines

 Utiliser un Container Engine pour isoler les environnements d'exécution

des applications dans des machines virtuelles


Définition de Kubernetes

 Outils d’orchestration des conteneurs

 Mot d’origine Grecque « Timonier » c-à-d celui qui gouverne la barre du bateau

 Développé par Google avec ses partenaires : Redhat, CoreOS, IBM, Microsoft,
Vmware....

 Ecrit en langage GO

 L’objectif est de gérer directement les applications et non pas les machines

 Kubernetes est un système open source permettant d'automatiser le


déploiement, la mise à l'échelle et la gestion des applications conteneurisées.
Kubernetes supprime la gestion complexe des conteneurs et nous fournit une
configuration déclarative pour orchestrer les conteneurs.
Différence entre Docker and Kubernetes

Docker est un système d'exécution de


conteneurs, Kubernetes est une plateforme
d'exécution et de gestion des conteneurs à
partir de nombreux Docker
Architecture de Kubernetes
Architecture de Kubernetes

 Le déploiement de Kubernetes s'appelle un cluster

 Un cluster Kubernetes se compose de deux types de ressources :

1. Le Control Plane coordonne le cluster et responsable de sa gestion

2. Les worker nodes sont les travailleurs qui exécutent les applications

 Les plans de contrôle et les instances de nodes peuvent être des appareils
physiques, des machines virtuelles ou des instances dans le cloud.
Architecture de Kubernetes

 Contrôle Plane

 Également appelé nœud maître ou nœud principal.

 Le contrôle plane gère les worker nodes et les pods du cluster.

 Dans les environnements de production, le contrôle plane s'éxécute généralement


sur plusieurs ordinateurs et un cluster exécute généralement plusieurs nœuds,
offrant une tolérance aux pannes et une haute disponibilité.

 Le contrôle plane reçoit une entrée d'une CLI ou d'une interface utilisateur via une
API.

 Il n'est pas recommandé d'exécuter des charges de travail utilisateur en mode


maître.
Architecture de Kubernetes

 Les composants de Contrôle Plane

 Ils prennent des décisions globales concernant le cluster, ainsi que la détection et
la réponse aux événements du cluster.

 Kubernetes s'appuie sur plusieurs services administratifs exécutés sur le plan de


contrôle.

 Ces services gèrent des aspects tels que :

1. La communication des composants du cluster,

2. La planification de la charge de travail

3. La persistance de l'état du cluster.


Architecture de Kubernetes

 Les composants de Contrôle Plane

A. Serveur API (kube-apiserver)

 Le serveur d'API expose l'API Kubernetes.

 Point d'entrée pour REST/kubectl — Il s'agit du frontal du plan de contrôle


Kubernetes.

 Il suit l'état de tous les composants du cluster et gère l'interaction entre eux.

 Il est conçu pour évoluer horizontalement.

 Il consomme des fichiers manifestes YAML/JSON.

 Il valide et traite les requêtes faites via API.


Architecture de Kubernetes

 Les composants de Contrôle Plane

B. etcd (magasin clé-valeur)

 Il s'agit d'un magasin de valeur clé cohérent, distribué et hautement


disponible.

 Il s'agit d'un stockage persistant avec état qui stocke toutes les données du
cluster Kubernetes (état et configuration du cluster).

 C'est la source de vérité pour le cluster.

 Il peut faire partie du plan de contrôle ou être configuré en externe.


Architecture de Kubernetes

 Les composants de Contrôle Plane

C. Planificateur (kube-scheduler)

 Il planifie les pods vers les worker nodes.

 Il surveille le serveur API pour les pods nouvellement créés sans node attribué
et sélectionne un node sain sur lequel ils peuvent s'exécuter.

 S'il n'y a pas de nodes appropriés, les pods sont mis dans un état d'attente
jusqu'à ce qu'un tel node sain apparaisse.

 Il surveille API Server pour les nouvelles tâches de travail.


Architecture de Kubernetes

 Les composants de Contrôle Plane

C. Planificateur (kube-scheduler)

 Les facteurs pris en compte pour les décisions de planification comprennent :

 Besoins en ressources individuelles et collectives.

 Contraintes matérielles/logicielles/politiques.

 Spécifications d'affinité et d'anti-affinité.

 Localité des données.

 Interférence entre les charges de travail.

 Délais et souillures.
Architecture de Kubernetes

 Les composants de Contrôle Plane

D. Gestionnaire de contrôleur (kube-controller-manager)

 Il surveille l'état souhaité des objets qu'il gère et surveille leur état actuel
via le serveur API.

 Il prend des mesures correctives pour s'assurer que l'état actuel est le
même que l'état souhaité.

 C'est le contrôleur des contrôleurs.

 Il exécute les processus du contrôleur. Logiquement, chaque contrôleur est


un processus séparé, mais pour réduire la complexité, ils sont tous compilés
en un seul binaire et exécutés en un seul processus.
Architecture de Kubernetes

 Les composants de Contrôle Plane

D. Gestionnaire de contrôleur (kube-controller-manager)


 Certains types de contrôleurs sont :

1. Contrôleur de nœud : responsable de la détection et de la réponse lorsque les


nœuds tombent en panne.

2. Contrôleur de tâches : surveille les objets Job qui représentent des tâches
ponctuelles, puis crée des pods pour exécuter ces tâches jusqu'à leur
achèvement.

3. Contrôleur Endpoints : remplit l'objet Endpoints (c'est-à-dire, joint les services


et les pods).

4. Contrôleurs de comptes de service et de jetons : créez des comptes par défaut


et des jetons d'accès à l'API pour les nouveaux espaces de noms.
Architecture de Kubernetes

 Les composants de Contrôle Plane

E. Cloud-controller-manager

 Le gestionnaire de contrôleur cloud s'intègre aux technologies cloud sous-jacentes


dans votre cluster lorsque le cluster s'exécute dans un environnement cloud.

 Le cloud-controller-manager exécute uniquement les contrôleurs spécifiques à votre


fournisseur de cloud.

 Le contrôleur de cloud vous permet de lier votre cluster à l'API du fournisseur de


cloud et de séparer les composants qui interagissent avec cette plate-forme cloud
des composants qui interagissent uniquement avec votre cluster.
Architecture de Kubernetes

 Les composants de Contrôle Plane

E. Cloud-controller-manager

 Les contrôleurs suivants peuvent avoir des dépendances de fournisseur de cloud :

1. Contrôleur de nœud : pour vérifier le fournisseur de cloud afin de déterminer


si un nœud a été supprimé dans le cloud après qu'il a cessé de répondre.

2. Contrôleur de route : pour configurer des routes dans l'infrastructure cloud


sous-jacente.

3. Contrôleur de service : pour créer, mettre à jour et supprimer les équilibreurs


de charge du fournisseur de cloud.
Architecture de Kubernetes

 Node (s)

 Également appelé nœud de travail ou calcul node.

 Une machine virtuelle ou physique qui contient les services nécessaires pour
exécuter des applications conteneurisées.

 Un cluster Kubernetes a besoin d'au moins un worker node, ou plusieurs

 Le ou les worker nodes hébergent les pods qui sont les composants de la charge
de travail de l'application.

 Les pods sont planifiés et orchestrés pour s'exécuter sur des nodes

 Vous pouvez augmenter et réduire le cluster en ajoutant et en supprimant des


nodes
Architecture de Kubernetes

 Les composants des Nodes


 Les composants de nœud s'exécutent sur chaque nœud, maintiennent les pods en cours
d'exécution et fournissent l'environnement d'exécution Kubernetes

 Le nœud doit également disposer d'outils pour gérer les opérations de conteneur, tels que
containerd ou Docker.

A. Kubelet :

1. Il s'agit d'un agent qui gère le nœud et communique avec le plan de contrôle.

2. Il agit comme un conduit entre le serveur d'API et le nœud.

3. Il s'assure que les conteneurs s'exécutent dans un pod et qu'ils sont sains.

4. Il instancie et exécute les Pods.

5. Il surveille le serveur API pour les tâches de travail.

6. Il reçoit des instructions du maître et fait rapport aux maîtres.


Architecture de Kubernetes

 Les composants des Nodes

B. kube-proxy :

1. C'est un élément de mise en réseau qui joue un rôle essentiel dans la mise en réseau.

2. Il gère la traduction et le routage IP.

3. Il s'agit d'un proxy réseau qui s'exécute sur chaque nœud du cluster.

4. Il maintient les règles du réseau sur les nœuds. Ces règles de réseau autorisent la

communication réseau avec les pods depuis l'intérieur ou l'extérieur du cluster.


Architecture de Kubernetes

 Les composants des Nodes

B. kube-proxy :

5. Il garantit que chaque pod obtient une adresse IP unique.

6. Cela permet à tous les conteneurs d'un pod de partager une seule adresse IP.

7. Il facilite les services de mise en réseau Kubernetes et l'équilibrage de charge sur tous

les pods d'un service.

8. Il traite des sous-réseaux hôtes individuels et garantit que les services sont disponibles

pour les parties externes.


Architecture de Kubernetes

 Les composants des Nodes

C. Exécution du conteneur (Container Runtime) :

 Le runtime de conteneur est le logiciel responsable de l'exécution des conteneurs (dans les pods).

N.B : Les pods s'agissent de l'unité la plus petite de K8s, un pod encapsule le ou les conteneur(s) formant votre

application conteneurisée partageant ainsi la même stack réseau (chaque pod se voit attribuer une adresse IP unique)

et le même stockage, plus précisément un volume partagé (tous les conteneurs du pod peuvent accéder aux volumes

partagés, ce qui permet à ces conteneurs de partager plus facilement des données).

Pour exécuter les conteneurs, chaque nœud de travail dispose d'un moteur d'exécution de conteneur.

Il extrait les images d'un registre d'images de conteneurs et démarre et arrête les conteneurs.
Les modules de Base de Kubernetes
Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Kubernetes coordonne un cluster hautement disponible d'ordinateurs connectés pour

fonctionner comme une seule unité.

 Kubernetes automatise la distribution et la planification des conteneurs d'applications dans un

cluster de manière plus efficace.

 Les abstractions dans Kubernetes vous permettent de déployer des applications conteneurisées

sur un cluster sans les lier spécifiquement à des machines individuelles.

 Pour utiliser ce nouveau modèle de déploiement, les applications doivent être packagées de manière

à les dissocier des hôtes individuels : elles doivent être conteneurisées.


Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

Un cluster Kubernetes qui gère le trafic de production doit avoir au moins trois nœuds, car si un nœud

tombe en panne, un membre etcd et une instance du plan de contrôle sont perdus et la redondance est

compromise. Vous pouvez atténuer ce risque en ajoutant davantage de nœuds de plan de contrôle
Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Lorsque vous déployez des applications sur Kubernetes, il y’aura les étapes suivantes :

1. Vous indiquez au plan de contrôle de démarrer les conteneurs d'applications.

2. Le plan de contrôle planifie l'exécution des conteneurs sur les nœuds du cluster.

3. Les nœuds communiquent avec le plan de contrôle à l'aide de l' API Kubernetes , que le plan de

contrôle expose.

4. Les utilisateurs finaux peuvent également utiliser directement l'API Kubernetes pour interagir

avec le cluster.
Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Un cluster Kubernetes peut être déployé sur des machines physiques ou virtuelles. Pour vous

lancer dans le développement de Kubernetes, vous pouvez utiliser Minikube.

 Minikube est une implémentation Kubernetes légère qui crée une machine virtuelle sur votre

machine locale et déploie un cluster simple contenant un seul nœud.

 Minikube est disponible pour les systèmes Linux, macOS et Windows. La CLI Minikube fournit

des opérations d'amorçage de base pour travailler avec votre cluster, y compris le démarrage,

l'arrêt, l'état et la suppression.


Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Qu’est-ce que Minikube ?

 Minikube a été développé pour permettre aux utilisateurs d’exécuter Kubernetes localement.

Lorsque vous installez et exécutez Minikube sur votre ordinateur, il exécute un cluster Kubernetes à

nœud unique dans une machine virtuelle.


Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Pourquoi Minikube ?

 Minikube est destiné à la fois aux nouveaux utilisateurs et aux développeurs réguliers.

 L’installation de Kubernetes est longue et gourmande en ressources. Avec Minikube, vous obtenez une

version plus petite d’un cluster Kubernetes à nœud unique sur votre ordinateur personnel.

 Si vous êtes un apprenant, cela vous donne la possibilité de jouer et de comprendre les concepts de

base. Une fois que vous êtes devenu un praticien régulier, vous pouvez toujours utiliser Minikube pour

tester vos idées localement avant de le déployer dans votre centre de données ou votre serveur. Cela

peut fonctionner comme votre environnement de test.


Les modules de base de Kubernetes

1. Création d’un cluster Kubernetes :

A. Grappes de Kubernetes :

 Install Minikube

 Start Minikube
Les modules de Base de Kubernetes
Les modules de base de Kubernetes

2. Utilisation kubectl pour créer un déploiement :

 Une fois que vous avez un cluster Kubernetes en cours d'exécution, vous pouvez déployer vos

applications conteneurisées dessus.

 Pour ce faire, vous créez une configuration de déploiement Kubernetes .

 Le déploiement indique à Kubernetes comment créer et mettre à jour des instances de votre

application.

 Une fois que vous avez créé un déploiement, le plan de contrôle Kubernetes planifie les

instances d'application incluses dans ce déploiement pour qu'elles s'exécutent sur des nœuds

individuels du cluster.
Les modules de base de Kubernetes

2. Utilisation kubectl pour créer un déploiement :

 Une fois les instances d'application créées, un contrôleur de déploiement Kubernetes surveille

en permanence ces instances.

 Si le nœud hébergeant une instance tombe en panne ou est supprimé, le contrôleur de

déploiement remplace l'instance par une instance sur un autre nœud du cluster.

 Cela fournit un mécanisme d'auto-guérison pour faire face aux pannes ou à la maintenance de

la machine.

 Dans un monde de pré-orchestration, les scripts d'installation étaient souvent utilisés pour

démarrer des applications, mais ils ne permettaient pas la récupération après une panne de

machine.
Les modules de base de Kubernetes

2. Utilisation kubectl pour créer un déploiement :

 Vous pouvez créer et gérer un déploiement à l'aide de l'interface de ligne de commande

Kubernetes, Kubectl .

 Kubectl utilise l'API Kubernetes pour interagir avec le cluster. Dans cette partie, vous

apprendrez les commandes Kubectl les plus courantes nécessaires pour créer des déploiements

qui exécutent vos applications sur un cluster Kubernetes.

 Lorsque vous créez un déploiement, vous devez spécifier l'image de conteneur pour votre

application et le nombre de répliques que vous souhaitez exécuter.

 Pour votre premier déploiement, vous utiliserez une application hello-node packagée dans un

conteneur Docker qui utilise NGINX pour renvoyer toutes les requêtes.
Les modules de base de Kubernetes

2. Utilisation kubectl pour créer un déploiement :


 Le déploiement crée automatiquement un pod, Pour votre premier déploiement, vous utiliserez
une application hello-node packagée dans un conteneur Docker qui utilise NGINX pour renvoyer
toutes les requêtes.

 l’image : k8s.gcr.io c’est l’image depuis la documentation officielle.


Les modules de Base de Kubernetes
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :

 Lorsque vous avez créé un déploiement, Kubernetes a créé un pod pour héberger votre instance
d'application.

 Un pod est une abstraction Kubernetes qui représente un groupe d'un ou plusieurs conteneurs
d'application (tels que Docker) et certaines ressources partagées pour ces conteneurs. Ces
ressources comprennent :

1. Stockage partagé, en tant que volumes

2. Mise en réseau, en tant qu'adresse IP de cluster unique

3. Informations sur l'exécution de chaque conteneur, telles que la version de l'image du


conteneur ou les ports spécifiques à utiliser
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :


 Un pod modélise un "hôte logique" spécifique à l'application et peut contenir différents
conteneurs d'applications qui sont relativement étroitement couplés.

Exemple : un pod peut inclure à la fois le conteneur avec votre application Node.js ainsi qu'un
conteneur différent qui alimente les données à publier par le serveur Web Node.js.

 Les conteneurs d'un pod partagent une adresse IP et un espace de port, sont toujours co-
localisés et co-planifiés, et exécutés dans un contexte partagé sur le même nœud.
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :

 Les pods sont l'unité atomique de la plate-forme Kubernetes. Lorsque nous créons un
déploiement sur Kubernetes, ce déploiement crée des pods avec des conteneurs à l'intérieur
(par opposition à la création directe de conteneurs).

 Chaque pod est lié au nœud où il est planifié et y reste jusqu'à la résiliation (selon la politique
de redémarrage) ou la suppression. En cas de défaillance d'un nœud, des pods identiques sont
programmés sur d'autres nœuds disponibles dans le cluster.
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :

 Au niveau de chaque node Kubernetes exécute au moins :

1. Kubelet: un processus responsable de la communication entre le plan de contrôle


Kubernetes et le worker node; il gère les Pods et les conteneurs s'exécutant sur une
machine.

2. Un environnement d'exécution de conteneur (comme Docker) chargé d'extraire


l'image du conteneur d'un registre, de décompresser le conteneur et d'exécuter
l'application.
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :

 Pour obtenir des informations sur les applications déployées et leurs environnements. Les opérations
les plus courantes peuvent être effectuées avec les commandes kubectl suivantes :

1. kubectl get - répertorie les ressources

2. kubectl describe - affiche des informations détaillées sur une ressource

3. kubectl logs - imprime les journaux d'un conteneur dans un pod

4. kubectl exec - exécute une commande sur un conteneur dans un pod

5. Vous pouvez utiliser ces commandes pour voir quand les applications ont été déployées, quels
sont leurs statuts actuels, où elles s'exécutent et quelles sont leurs configurations
Les modules de base de Kubernetes

3. Explorer votre application « Les Pods » :


Les modules de Base de Kubernetes
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Les pods Kubernetes sont mortels. Les pods ont un cycle de vie .

 Lorsqu'un worker node meurt, les pods exécutés sur le nœud sont également perdus.

 Un ReplicaSet peut alors ramener dynamiquement le cluster à l'état souhaité via la création de
nouveaux pods pour maintenir votre application en cours d'exécution.

 Un ReplicaSet est défini avec des champs, y compris un sélecteur qui spécifie comment identifier les

pods qu'il peut acquérir

Exemple : considérons un backend de traitement d'image avec 3 répliques (3 ReplicaSet). Ces répliques
sont échangeables ; le système frontend ne doit pas se soucier des réplicas backend ou même si un pod
est perdu et recréé. Cela dit, chaque pod d'un cluster Kubernetes a une adresse IP unique, même les pods
sur le même nœud, il doit donc y avoir un moyen de concilier automatiquement les modifications entre les
pods afin que vos applications continuent de fonctionner.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Un service dans Kubernetes est une abstraction qui définit un ensemble logique de pods et une
politique permettant d'y accéder.

 Les services permettent de faire un couplage lâche entre les pods dépendants.

 Un service est défini en utilisant YAML ou JSON, comme tous les objets Kubernetes. L'ensemble de
pods ciblés par un service est généralement déterminé par un LabelSelector

 Bien que chaque pod ait une adresse IP unique, ces adresses IP ne sont pas exposées en dehors du
cluster sans service.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Les services permettent à vos applications de recevoir du trafic. Les services peuvent être exposés de
différentes manières en spécifiant a type dans la ServiceSpec :

1. ClusterIP (par défaut) : Expose le service sur une adresse IP interne dans le cluster. Ce type rend le
service uniquement accessible depuis le cluster.

2. NodePort : Expose le service sur le même port de chaque nœud sélectionné dans le cluster à l'aide de
NAT. Rend un service accessible depuis l'extérieur du cluster à l'aide de <NodeIP>:<NodePort>.
Surensemble de ClusterIP.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Les services permettent à vos applications de recevoir du trafic. Les services peuvent être exposés de
différentes manières en spécifiant a type dans la ServiceSpec :

3. LoadBalancer : Crée un équilibreur de charge externe dans le cloud actuel (si pris en charge) et
attribue une adresse IP externe fixe au service. Surensemble de NodePort.

4. ExternalName : Mappe le Service sur le contenu du externalNamechamp (par exemple


foo.bar.example.com), en renvoyant un CNAMEenregistrement avec sa valeur. Aucun proxy d'aucune
sorte n'est mis en place. Ce type nécessite la version 1.7 ou supérieure de kube-dns, ou la version
0.0.8 ou supérieure de CoreDNS.

N.B : Il existe certains cas d'utilisation avec des services qui impliquent de ne pas définir a selector dans la
spécification. Un service créé sans selector ne créera pas non plus l'objet Endpoints correspondant. Cela
permet aux utilisateurs de mapper manuellement un service à des points de terminaison spécifiques.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Un service achemine le trafic sur un ensemble de pods. Les services sont l'abstraction qui permet aux
pods de mourir et de se répliquer dans Kubernetes sans affecter votre application.

 La découverte et le routage entre les pods dépendants (tels que les composants frontend et backend
d'une application) sont gérés par les services Kubernetes.

 Les services correspondent à un ensemble de pods à l'aide d' étiquettes et de sélecteurs , une primitive
de regroupement qui permet une opération logique sur des objets dans Kubernetes.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Les étiquettes sont des paires clé/valeur attachées aux objets et peuvent être utilisées de plusieurs
façons :

a. Désigner des objets pour

le développement, le test et

la production

a. Intégrer les balises de version

b. Classer un objet à l'aide de

balises
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

Kubectl get pods : pour lister les pods existants. Si aucun pod n'est en cours d'exécution, cela signifie que
l'environnement interactif est toujours en train de recharger son état précédent.

Kubectl get services : Nous avons un service appelé kubernetes qui est créé par défaut lorsque minikube
démarre le cluster.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

Kubectl expose : Pour créer un nouveau service et l'exposer au trafic externe, nous utiliserons la commande
expose avec NodePort comme paramètre

Maintenant un service en cours d'exécution appelé hello-node. Ici, nous voyons que le service a reçu une
adresse IP de cluster unique, un port interne et une adresse IP externe (l'adresse IP du nœud).
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

Pour savoir quel port a été ouvert en externe (par

l'option NodePort), nous exécuterons la

commande kubectl describe services/hello-node


Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Nous pouvons maintenant tester que l'application est exposée en dehors du cluster à l'aide de curl,
de l'adresse IP du nœud et du port exposé en externe
 Et nous obtenons une réponse du serveur. Et voilà le Service est exposé.
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Le déploiement a créé
automatiquement une
étiquette pour notre pod.
Avec la commande
describe de déploiement,
vous pouvez voir le nom
du label
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Utilisons cette étiquette pour interroger notre liste de pods. Nous utiliserons la commande
kubectl get pods avec -l comme paramètre, suivi des valeurs d'étiquette
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Vous pouvez faire la même chose pour lister les services existants
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 On voit ici que l'étiquette est maintenant


attachée à notre Pod. Et nous pouvons
maintenant interroger la liste des pods en
utilisant le nouveau libellé, et voilà on peut voir
le pod
 Pour supprimer des services, vous pouvez
utiliser la commande delete service. Les
étiquettes peuvent également être utilisées ici,
et vous pouvez le confirmer
 Pour confirmer que cette route n'est plus
exposée, vous pouvez boucler l'IP et le port
précédemment exposés
Les modules de base de Kubernetes

4. Exposez publiquement votre application :


 Utilisation d’un service pour exposer votre application

 Cela prouve que l'application n'est plus  Nous voyons ici que l'application est en place.
accessible depuis l'extérieur du cluster. Vous En effet, le déploiement gère l'application. Pour
pouvez confirmer que l'application est toujours fermer l'application, vous devez également
en cours d'exécution avec une boucle à supprimer le déploiement.
l'intérieur du pod

Pod Name
Les modules de Base de Kubernetes
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application :

 Nous avons créé un Deploiement , puis l'avons exposé publiquement via un Service . Le déploiement a
créé un seul pod pour exécuter notre application. Lorsque le trafic augmente, nous devrons faire
évoluer l'application pour répondre à la demande des utilisateurs.

 La mise à l' échelle est réalisée en modifiant le nombre de répliques dans un déploiement
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application :

 La mise à l'échelle d'un déploiement garantit que de nouveaux pods sont créés et planifiés sur les
nœuds avec les ressources disponibles.

 La mise à l'échelle augmentera le nombre de pods jusqu'au nouvel état souhaité. Kubernetes prend
également en charge la mise à l' échelle automatique des pods

 L'exécution de plusieurs instances d'une application nécessitera un moyen de distribuer le trafic à


toutes.

 Les services ont un équilibreur de charge intégré qui distribuera le trafic réseau à tous les pods d'un
déploiement exposé.
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application :

 Les services surveilleront en permanence les pods en cours d'exécution à l'aide de points de
terminaison, afin de garantir que le trafic est envoyé uniquement aux pods disponibles.

 Une fois que vous avez plusieurs instances d'une application en cours d'exécution, vous pourrez
effectuer des mises à jour continues sans temps d'arrêt.
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application

 NAME répertorie les noms des déploiements


dans le cluster.
 READY affiche le rapport entre les répliques
ACTUELLES/SOUHAITÉES
 UP-TO-DATE affiche le nombre de répliques qui
ont été mises à jour pour atteindre l'état
souhaité.
 DISPONIBLE affiche le nombre de répliques de
l'application disponibles pour vos utilisateurs.
 AGE affiche la durée d'exécution de l'application.
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application
 Pour voir le ReplicaSet créé par le déploiement,
exécutez kubectl get rs
 Notez que le nom du ReplicaSet est toujours au
format [DEPLOYMENT-NAME]-[RANDOM-
STRING]. La chaîne aléatoire est générée de
manière aléatoire et utilise le pod-template-
hash comme graine. Deux colonnes importantes
de cette commande sont :
 DESIRED affiche le nombre souhaité de répliques
de l'application, que vous définissez lorsque
vous créez le déploiement. C'est l'état souhaité.
 CURRENT affiche le nombre de répliques en
cours d'exécution..
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application

 Ensuite, adaptons le déploiement à 5


répliques. Nous utiliserons la commande
kubectl scale, suivie du type de
déploiement, du nom et du nombre
d'instances souhaité

 Pour lister à nouveau vos déploiements,


utilisez get deployments
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application

 La modification a été appliquée et nous avons 5 instances de l'application disponibles. Ensuite, vérifions si le
nombre de pods a changé
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application

 Il y a maintenant 5 pods, avec des adresses IP différentes. La modification a été enregistrée dans le journal
des événements de déploiement. Pour vérifier cela, utilisez la commande describe
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application

 Vérifions que le load balancing du trafic. Pour connaître l'adresse IP et le port exposés, nous pouvons utiliser
describe du service kubectl describe services/hello-node
Les modules de base de Kubernetes

5. Exécution de plusieurs instances de votre application :


 Scaling multiple instances on your application
 Pour réduire le service à 2 instances dupliquées, exécutez à nouveau la commande scale :
 Répertoriez les déploiements pour vérifier si la modification a été appliquée avec la commande get
deployments :
 Le nombre de répliques a été réduit à 2. Indiquez le nombre de pods, avec get pods :
kubectl get pods -o wide
 Cela confirme que 2 pods ont été résiliés.
Les modules de Base de Kubernetes
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :

 Les utilisateurs s'attendent à ce que les applications soient disponibles à tout moment et les
développeurs sont censés en déployer de nouvelles versions plusieurs fois par jour.

 Dans Kubernetes, cela se fait avec des mises à jour continues.

 Les mises à jour continues permettent à la mise à jour des déploiements d'avoir lieu sans aucun temps
d'arrêt en mettant à jour de manière incrémentielle les instances de pods avec de nouvelles.

 Les nouveaux pods seront programmés sur les nœuds avec les ressources disponibles.
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :

 Dans l’étape précédente 5, nous avons mis à l'échelle notre application pour exécuter plusieurs instances.
 Il s'agit d'une exigence pour effectuer des mises à jour sans affecter la disponibilité des applications.

 Par défaut, le nombre maximum de pods pouvant être indisponibles pendant la mise à jour et le nombre
maximum de nouveaux pods pouvant être créés est un seul . Les deux options peuvent être configurées en
nombres ou en pourcentages (de pods).
 Dans Kubernetes, les mises à jour sont versionnées et toute mise à jour de déploiement peut être rétablie à
une version précédente (stable).

 Les mises à jour progressives permettent les actions suivantes :

 Promouvoir une application d'un environnement à un autre (via des mises à jour d'image de conteneur)
 Retour aux versions précédentes
 Intégration continue et livraison continue d'applications sans temps d'arrêt
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :

 Semblable à la mise à l'échelle d'une application, si un déploiement est exposé publiquement, le service
équilibrera la charge du trafic uniquement vers les pods disponibles pendant la mise à jour. Un pod disponible
est une instance disponible pour les utilisateurs de l'application.
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Pour lister vos déploiements, exécutez la commande : kubectl get deployments
 Pour lister les pods en cours d'exécution, exécutez la commande : kubectl get pods
 Pour afficher la version actuelle de l'image de l'application, exécutez la commande describe pods et
recherchez le champ Image : kubectl describe pods
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Pour mettre à jour l'image de l'application vers la version 2, utilisez la commande set image, suivie du nom du
déploiement et de la nouvelle version de l'image :

 La commande a informé le déploiement d'utiliser une image différente pour votre application et a lancé une mise à
jour propagée.
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :

 Vérifiez l'état des nouveaux pods et affichez l'ancien se terminant par la commande get pods
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :

 Pour vérifier les mises à jour, il faut : Tout d'abord, vérifiez que l'application est en cours d'exécution. Pour
trouver l'adresse IP et le port exposés, exécutez la commande describe service
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Vous pouvez également confirmer la mise à jour en exécutant la commande rollout status. Pour afficher la
version actuelle de l'image de l'application, exécutez la commande describe pods
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 On peut Effectuer une autre mise à jour et déployer une image taguée avec v10 :

Pour voir l'état du déploiement on utilise :

Notez que la sortie ne répertorie pas le nombre souhaité de pods disponibles. Exécutez la commande get
pods pour répertorier tous les pods : Notez que certains des pods ont le statut ImagePullBackOff
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 On peut Effectuer une autre mise à jour et déployer une image taguée avec v10 :
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Pour mieux comprendre le problème, exécutez la commande describe pods, Dans la section Événements
de la sortie des pods concernés, notez que la version d'image v10 n'existait pas dans le repository
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Pour restaurer le déploiement à votre dernière version de travail, utilisez la commande rollout undo

La commande rollout undo rétablit le déploiement à l'état connu précédent (v2 de l'image). Les mises à jour
sont versionnées et vous pouvez revenir à n'importe quel état précédemment connu d'un déploiement.
 Utilisez les commandes get pods pour lister les pods :

Quatre pods sont en cours d'exécution. Pour vérifier l'image déployée sur ces pods, utilisez la commande
describe pods
Les modules de base de Kubernetes

6. Exécution d'une mise à jour continue :


 Utilisez la commande describe pods, le déploiement utilise à nouveau une version stable de l'application (v2).
La restauration a réussi.

Vous aimerez peut-être aussi