Formation kubernetes

1 - Présentation de Kubernetes


C’est quoi Kubernetes ?


Kubernetes est un système permettant d’exécuter et de coordonner des applications conteneurisées sur un cluster de machines.

Il gère le cycle de vie des applications et services conteneurisés à l’aide des méthodes qui offrent la prévisibilité, l’évolutivité et la haute disponibilité.

En tant qu’utilisateur de Kubernetes, vous pouvez :


• Définir comment vos applications doivent fonctionner .
• Comment elles doivent pouvoir interagir avec d’autres applications ou avec le monde extérieur.
• Faire évoluer vos services , effectuer des mises à jour progressives .
• Basculer le trafic entre les différentes versions de vos applications.

Contexte : Pourquoi Kubernetes :


Evolutions de l’architecture des hébergements des applications : De la virtualisation à la conteneurisation :


Le principe du concept de conteneurisation :


• Le principe est de faire tourner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau avec la machine host.
• Le conteneur virtualise l’environnement d’exécution (comme le processeur, la mémoire vive ou le système de fichier...) et ne virtualise donc pas la machine. C’est pour cela que l’on parle de « conteneur » et non de machine virtuelle (VM).
• Comme le conteneur n''embarque pas d’OS, il est donc beaucoup plus léger que la VM. Le conteneur est donc plus facile à migrer ou à télécharger, et plus rapide à sauvegarder ou à restaurer..
• La virtualisation par conteneur permet au serveur d’héberger potentiellement beaucoup plus de conteneurs que s’il s’agissait de machines virtuelles.

Avantages de la conteneurisation point de vue développeur :


• Un environnement portable pour exécution des apps .

• Chaque application s’exécute dans son propre conteneur : avec ses propres versions des librairies .

• Facilite l’automatisation des tests unitaire , fonctionnelles , intégrations …

• Elimine les problèmes de compatibilité entres les plateformes .

• Cout ressource très bas pour lancer un container. On peut en lancer des dizaines sur un poste développeur .

Avantages de la conteneurisation point de vue SysAdmin et Devops :


• Configure once…run anything & evreywhere .

• Elimine les inconsistances entre les différents environnements Dev , recette , statging , preprod , prod

• Améliore la rapidité et la fiabilité du déploiement continu .

• Micro-service , Les applications sont séparées en petits morceaux indépendants et peuvent être déployés et gérés dynamiquement – pas une stack monolithique dans une seule machine à tout faire.

• Facilite la mise en place des pipeline CI/CD .

Problématique


Cela se complique en production lorsqu’on cherche de la HA, de la performance et/ou à mutualiser le matériel .

les questions suivantes se posent :


• Comment gérer les dysfonctionnements ?
• Comment gérer les déploiements et leurs emplacements ?
• Comment gérer le scaling ?
• Comment gérer les mises à jours ?
• Comment gérer la communication entre les conteneurs ?
• Comment gérer le stockage nécessaire à la persistance des données ?
• Comment gérer les secrets et la configuration ?
• Tout gérer de manière manuelle et sans surcouche au système de conteneurs n’est pas viable, maintenable et pérenne.

D’où la naissance de l’orchestrateur Kubernetes dans les openspaces de GOOGLE .


Historique


• Google annonce pour la première fois le projet Kubernetes à la mi-2014 .

• Kubernetes s’inspire du projet Borg (projet interne à Google pour gérer un cluster de jobs)

• Kubernetes 1.0 sort le 21 juillet 2015 .

• Un partenariat naît entre Google et la fondation Linux pour créer la Cloud Native Computing Fondation .

• La Cloud Native Computing Foundation est un projet Linux Foundation qui a été fondé en 2015 pour aider à faire avancer la technologie des conteneurs et aligner l’industrie technologique autour de son évolution .

Github Kubernetes Open Source .

Liens avec les outils de conteneurisation et clouds


• La naissance de la Cloud Native Computing Fondation a orienté le développement de Kubernetes pour qu’il puisse s’intégrer dans un écosystème très large. Projets de la CNCF : https://www.cncf.io/projects/

• Kubernetes supporte plusieurs moteurs de gestion de conteneurs au travers de l’interface CRI (Common Runtime Interface), Docker restant le moteur par défaut et recommandé pour la production.

• D’un point de vue utilisateur, la majorité des installations vont supporter les images au format OCI ( Open Container Initiative est un projet de la Fondation Linux visant à concevoir des normes ouvertes pour la virtualisation au niveau du système d’exploitation )


Ce site Web est propulsé par ItGalaxy.io

Leave a Reply

Your email address will not be published. Required fields are marked *