Description de la formation Kubernetes Déploiement
L’approche DevOps prône le développement d’applications sous forme de container. Pour déployer ce type d’applications en production, il faut s’équiper d’un orchestrateur de conteneur prenant en charge la réplication, la tolérance aux pannes ou encore la répartition.
Kubernetes est une plateforme open source permettant d’automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d’applications. Elle fonctionne avec de nombreux containers mais est le plus souvent couplée avec Docker. À ce jour, Kubernetes est l’orchestrateur de conteneur open source le plus répandu et le plus mature.
Cette formation Kubernetes Déploiement se destine principalement aux développeurs d’applications. Sa vocation est de vous faire découvrir les différents composants d’une infrastructure Kubernetes, son API et tout particulièrement comment y déployer ou upgrader des architectures multi-conteneurs.
L’outil Helm est présenté afin que vous sachiez mettre en œuvre de façon efficace l’orchestration et le déploiement d’applications ou de micro services sur Kubernetes.
Objectifs
Objectif opérationnel :
Savoir déployer ou uggrader des architectures multi-conteneurs.
Objectifs pédagogiques :
À l’issue de cette formation Kubernetes Déploiement, vous aurez acquis les connaissances et les compétences nécessaires pour :
- Avoir une bonne vision de l’architecture Kurbenetes
- Maîtriser l’outil kubectl ainsi que le dashboard Kubernetes
- Connaitre les descripteurs de déploiement Kubernetes pour les applications multi-conteneurs
- Mettre en œuvre des déploiements blue/green mis en avant par l’approche DevOps
- Mettre en œuvre Helm pour déployer et orchestrer vos applications / micros services sur Kubernetes
À qui s’adresse cette formation ?
Public :
Ce cours Kubernetes Déploiement cible principalement les architectes et les développeurs.
Prérequis :
Pour suivre cette formation Kubernetes Déploiement, il est recommandé d’avoir des connaissances sur les technologies de conteneurisation (de préférence Docker).
Contenu du cours Kubernetes Déploiement
Introduction à Kubernetes et au déploiement de conteneurs applicatifs
Rappels sur la containerisation
Docker et ses concurrents
Le rôle d’un orchestrateur, fonctionnalités attendues
Les distributions Kubernetes de mini-kube aux offres cloud
Gestion de clusters avec l’outil Rancher
Version et API
Architecture et composants : etcd, serveur, contrôleur, Scheduler, kubelet
Introduction aux pods, répliques et servicesAtelierInstallation locale minikube
Démarrage avec Kubernetes
Le dashboard Kubernetes
kubectl, les principales commandes
Déployer, démarrer et exposer un containerAtelierPremières interactions avec Kubernetes
Les pods
Modèle/concept du pod : usage, API…
Descripteurs yaml
Le rôle du scheduler
Cycle de vie des pods
Les init containers
Pods stateless, pods stateful
Organisation des pods avec les labels, les sélecteurs, les namespaceset les gabaritsAtelierDéfinition des registres d’images
Allocation de ressources pour un pod
Utilisation de volume
Contrôleurs
Concepts d’un Replica Set
Notion de Deployment
Replication et Deployment Controlers
StatefulSet
DaemonSet
Jobs
CronJobAtelierUtilisation de Replica, mode stateful
Services
Concept de Service Kubernetes
Gestion réseau des services
IP virtuels et proxys
Notion de headless
Service Discovery, DNS pour les services et les pods
Applications et services
Le rôle d’Ingress
Stratégies réseau pour les podsAtelierMise en place d’un service
Choix des Ips
Services multi-conteneurs exposé via Ingress
Volumes
Utilité des volumes, types de volume
Partage de fichiers entre deux containers d’un même pod
Accéder au filesystem d’un noeud du cluster
Définition des Persistent Volumes et Persistent Volumes ClaimsAtelierMise en place volume persistant à l’intérieur d’un pod
Configuration et secrets
Paramètres de la ligne de commande des containers
Variables d’environnements
ConfigMaps
SecretsAtelierConfiguration applicative avec ConfigMaps et Secret
Stratégies de déploiement Kubenetes
Déployer une application depuis le dashboard
Créer un déploiement à partir d’un fichier yaml
Exposition du service
Stratégie de mise à jour
Mise à jour progressive avec kubectl
Retour arrièreAtelierIntégration pipeline de déploiement sur Kubernetes, avec rolling update et roll-out
Introduction à Helm
Limites du déploiement des applications/micro services avec Kubernetes
Un gestionnaire de packages d’application pour Kubernetes (Helm)
Fichiers de configuration Helm (charts)
Le langage yaml
Architecture de Helm (helm client, chart repository, Kubernetes API Server)
La structure de répertoire de base d’un chart (templates, charts, chart.yaml, values.yaml, crd, …)
Le versionning des charts
Créer ses propres charts, les partager et les consommer
Rechercher des charts (helm search) dans des dépôts privés ou publicsAteliersInstallation et configuration de l’outil helm
Déploiement d’une application micro-services
Déploiement d’une application sur un cluster Kubernetes avec Helm et Jenkins