Cours Cloud Et VirtualisationDevOps
Cours Cloud Et VirtualisationDevOps
Computing
ENSAH – Génie Logiciel– 2023/2024 Pr. Routaib Hayat
[email protected]
Objectifs du cours
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
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
Pourquoi la virtualisation ?
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
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 :
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
Ce type d’ hyperviseur est un logiciel qui s’exécute à l’intérieur d’un autre système
d’exploitation.
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
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
Hyper-V, également connu sous le nom de Windows VMware vSphere est un logiciel d’infrastructure de Cloud
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
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
1) La virtualisation d’application :
d
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
- 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
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.
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 :
3) La virtualisation de stockage :
dd
4) La virtualisation de Serveurs :
dd
Cette technique permet aux entreprises d’utiliser des serveurs virtuels en lieu et
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
L'isolateur
L'émulateur ou partitionnement
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 :
Un isolateur est une couche logicielle permettant d'isoler des applications dans ces
contextes d'exécution différentes. Parmi ces caractéristiques :
d’exploitation a un fonctionnement
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,
2) Inconvénients:
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
routine d’interprétation.
Les types de virtualisation
dd
- 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
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
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
nement virtualisé.
La paravirtualisation :
La paravirtualisation est très proche du concept de la virtualisation
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é.
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 :
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
- 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
machines virtuelles.
Le type NAT :
Ce type est intéressant puisqu’il permet à votre
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.
même de mettre en place des serveurs virtuels ayant la main sur les
- 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 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
Le DAS :
La virtualisation permet de :
différents clients.
Donner à chaque client un contrôle total sur son serveur virtuel :il peut y
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
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 :
peut consister à avoir sur plusieurs serveurs physiques les mêmes environnements
Reprise automatique :
des serveurs physiques tombe en panne, les machines dont il avait la responsabilité
Optimisation de l’infrastructure :
La virtualisation permet d’optimiser la charge de travail des serveurs physiques
Vs.
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
b) Scalabilité Verticale I :
(vCPU) sont affectées au scalabilité verticale, appelée aussi mise à l'échelle, implique la
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 une entreprise disposant de l'informatique et du stockage sur site, la quantité de matériel et de
computing permet une scalabilité automatisée selon les besoins et peut répondre à des demandes
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 ?
bureautique…
Pourquoi doit-on utiliser le Cloud Computing ?
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 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 :
CLOUD GAMING :
Lorsqu'une personne souhaite jouer à un jeu vidéo, c'est un serveur distant qui lance le jeu.
CLOUD LEARNING :
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
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
IBM :
Blue Cloud – Système Open source (Red Hat Entreprise Linux) + applications (Websphere, DB2…).
Images serveur
Les modèles du services du Cloud
Force.Com (SalesForce),
Intuit (Comptabilité)
Les modèles du services du Cloud
BaseCamp (Gestion de projets) – La tendance est au travail en mode projet et il est important d’y
avoir accès en continue.
Base de données
Les acteurs de contrôle
Les modes de déploiement du Cloud
organisation
3. Interne - Ouvert 4. Externe - Ouvert
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
des accès
des données
b. Le cloud en PME permet la disparition des astreintes et des coûts liés à la maintenance.
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
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é.
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.
Le cloud permet de réduire les coûts en data centers et autres licences applicatives.
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 :
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 :
Permettre aux développeurs de performer leurs applications « Cloud Aware » grâce aux
APIs
Le Cloud OpenStack se compose de plusieurs éléments, dont les principaux sont les
suivants :
Neutron (Networking)
Horizon (Dashboard)
Les composants d’OpenStack
C’est pour cette raison, l’identification des utilisateurs et la confidentialité des activités
sont indispensables.
La gestion des groupes entiers des machines virtuelles qui sont reliées entre eux
par une connexion synaptique.
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
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 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.
Il met à disposition d’un stockage permanent sous forme de stockage en bloc grâce à la
virtualisation.
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
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 ?
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.
1. La culture,
2. L’ automatisation,
3. Mesure et partage.
La rationalisation
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.
=> 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
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).
Les pratiques DevOps intègrent souvent des outils compatibles DevOps dans leur «
chaîne d'outils » pour :
Rationaliser,
Accélérer
=> 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
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
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 :
2. Tests continus : Cette pratique prévoit des tests automatisés, planifiés et continus
du code en production.
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.
.
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 :
6. Automatisation accrue
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 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 :
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
Avant
Applications monolitiques
Un seul environnement
Après
- Ensemble de services - Des serveurs de prod (dans le cloud?)
Installer les dépendances et les librairies requises avec les bonnes versions pour
chaque service.
Peut être déployé tel que dans n’importe quelle machine disposant d’un
❑ Machine virtuelle
❑ Conteneur :
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 :
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
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
Le contrôle plane reçoit une entrée d'une CLI ou d'une interface utilisateur via une
API.
Ils prennent des décisions globales concernant le cluster, ainsi que la détection et
la réponse aux événements du cluster.
Il suit l'état de tous les composants du cluster et gère l'interaction entre eux.
Il s'agit d'un stockage persistant avec état qui stocke toutes les données du
cluster Kubernetes (état et configuration du cluster).
C. Planificateur (kube-scheduler)
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.
C. Planificateur (kube-scheduler)
Contraintes matérielles/logicielles/politiques.
Délais et souillures.
Architecture de Kubernetes
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é.
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.
E. Cloud-controller-manager
E. Cloud-controller-manager
Node (s)
Une machine virtuelle ou physique qui contient les services nécessaires pour
exécuter des applications conteneurisées.
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
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.
3. Il s'assure que les conteneurs s'exécutent dans un pod et qu'ils sont sains.
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.
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
B. kube-proxy :
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
8. Il traite des sous-réseaux hôtes individuels et garantit que les services sont disponibles
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
A. Grappes de Kubernetes :
Les abstractions dans Kubernetes vous permettent de déployer des applications conteneurisées
Pour utiliser ce nouveau modèle de déploiement, les applications doivent être packagées de manière
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
A. Grappes de Kubernetes :
Lorsque vous déployez des applications sur Kubernetes, il y’aura les étapes suivantes :
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
A. Grappes de Kubernetes :
Un cluster Kubernetes peut être déployé sur des machines physiques ou virtuelles. Pour vous
Minikube est une implémentation Kubernetes légère qui crée une machine virtuelle sur votre
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,
A. Grappes de Kubernetes :
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 à
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
A. Grappes de Kubernetes :
Install Minikube
Start Minikube
Les modules de Base de Kubernetes
Les modules de base de Kubernetes
Une fois que vous avez un cluster Kubernetes en cours d'exécution, vous pouvez déployer vos
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
Une fois les instances d'application créées, un contrôleur de déploiement Kubernetes surveille
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
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
Lorsque vous créez un déploiement, vous devez spécifier l'image de conteneur pour votre
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
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 :
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
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
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 :
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
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
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
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
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
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.
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
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
Les étiquettes sont des paires clé/valeur attachées aux objets et peuvent être utilisées de plusieurs
façons :
le développement, le test et
la production
balises
Les modules de base de Kubernetes
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
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
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
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
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
Vous pouvez faire la même chose pour lister les services existants
Les modules de base de Kubernetes
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
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
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
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
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
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
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
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
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.
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
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).
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
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
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
Vérifiez l'état des nouveaux pods et affichez l'ancien se terminant par la commande get pods
Les modules de base de Kubernetes
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
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
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