Objectifs pédagogiques
- Décrire les principes de l'orchestration de conteneurs Docker
- Créer et mettre en oeuvre Kubernetes
- Orchestrer des conteneurs Docker
- Déployer des applications.
Niveau requis
Avoir de sérieuses compétences en système et en Linux / Unix et connaître les technologies de conteneurs (Docker).
Public concerné
Architectes, administrateurs, développeurs...
Programme
Fondamentaux
Historique
- Rappel des concepts du Cloud
- Comment comprendre les conteneurs par rapport à la virtualisation ?
- D'où vient le concept de conteneurs ?
- L'historique des conteneurs
- L'arrivée de Docker
- Le monde Windows
- Les orchestrateurs de conteneurs
Principes de fonctionnement
- Notions d'isolation
- Cgroup
- Namespaces
- Les conteneurs LXC
- Les conteneurs Docker
- Union File System et modèle en couches
- La couche Copy-On-Write (COW)
Technologies
- Composants de base d'une infrastructure Docker
- Définitions et terminologie Docker
- La notion d'OS minimaux
- Notion de Stateless / Stateful
- Comment gérer ses données ?
- Le cas du data-Only-Container
- Fonctionnement du réseau sur un hôte
- Fonction du réseau entre conteneurs
Container as a Service (CaaS) et orchestration
Fondamentaux
- Comment lier des conteneurs ?
- Utilisation de Docker Compose
- Création d'une infrastructure composée de plusieurs conteneurs
- Mise en pratique
Technologies de conteneurs et CaaS
- Notions de base et définitions
- Images
- Couches
- Conteneurs
- Hub
- Registry...
- Modèle en couche "layering" et impacts
- Gestion des déploiements
- Présentation des solutions de clustering et d'orchestration
- Kubernetes
- Swarm
- Mesos...
Bénéfices des conteneurs et du CaaS
- Les bénéfices liés à la technologie
- Les bénéfices pour les développeurs
- Les bénéfices pour les administrateurs
- Les bénéfices dans l'usage du Cloud et dans l'hybridation
- Les bénéfices financiers
- L'apport des conteneurs dans la démarche DevOps
Limites des conteneurs et du CaaS
- Ces technologies sont-elles matures pour la production ?
- La sécurité est-elle suffisante ?
- Existe-t-il un risque de verrouillage ? L'interopérabilité est-elle réelle ?
- Les communications réseaux entre conteneurs sont-elles optimales ?
- Comment gérer les données avec Docker ?
- Stateless vs Stateful
- Le CaaS est-il préférable au PaaS ?
Kubernetes : les bases
Fondamentaux
- Historique
- Google et Kubernetes
- Les autres contributeurs : Red Hat...
La terminologie
- Notion de pods
- Notion de Replica Set et Replica Controller
- Notion de services
- Notion de volumes
- Notion de ConfigMaps et secrets
Découverte de Kubernetes
- Installation de Kubernetes sur un Cloud public : l'exemple de Google Container Service
- Installation locale avec Minikube
- Dashboard, CLI et API
- Proxy et DNS
- Démarrer ses premiers conteneurs
Kubernetes : mettre en oeuvre
Les commandes usuelles
- Namespaces
- Contextes
- Visualiser les Kubernetes API Objects
- Gérer les objets Kubernetes
- Création
- Mise à jour
- Suppression...
- Associer des labels aux objets
- Troubleshooting
Les pods
- Créer un pod et un pod manifest
- Gérer les pods (lister, supprimer...)
- Accéder à un pod
- Port forwarding
- Logs
- Exec
- Copier des fichiers
- Healthchecks
- Gestion des données persistantes et des volumes
Label et annotation
- Appliquer et modifier des labels
- Label selector
- Annotations
- Cleanup
Service Discovery
- Service DNS
- Intégration Cloud
- Kube-proxy
- Gestion du réseau au sein du cluster
Replica Set
- Replica Set et pods
- Créer un Replica Set
- Identifier un Replica Set dans un pod
- Rechercher un ensemble de pods pour un Replica Set
- Mettre à l'échelle les Replica Sets
- kubectl scale
- kubectl apply
- autoscaling
ConfigMaps et secrets
- Créer et utiliser des ConfigMaps
- Créer et utiliser des secrets
- Contraintes de nommage
- Gérer les ConfigMaps et les secrets
- Lister
- Créer
- Mettre à jour
Kubernetes : déployer des applications d'entreprise
Son premier déploiement
- Créer, gérer, mettre à jour des déploiements
- Mettre à l'échelle des déploiements
- Stratégies de déploiement
- Recreate
- Rollingupdate
- Rollout
- Supprimer un déploiement
Déployer des applications d'entreprise
- Déployer une application Web basée sur un service Web, une base de données, une base in-memory
- Configurer les composants
- Créer le service Kubernetes pour cette application
- Déployer le service applicatif
- Gérer le cluster
Examen M2i (en option)
- Prévoir l'achat de l'examen en supplément
- L'examen (en français) sera passé le dernier jour, à l'issue de la formation et s'effectuera en ligne
- Il s'agit d'un QCM dont la durée moyenne est d'1h30 et dont le score obtenu attestera d'un niveau de compétence
- L'examen n'est pas éligible au CPF, mais permettra néanmoins de valider vos acquis
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation et/ou un examen M2i
Les + de la formation
Un examen M2i permettant de valider vos acquis à l'issue de la formation est disponible sur demande (coût : 120€).