Présentation de la logistique de cours
Objectifs du cours
Références et ressources
Introduction
Les différentes formes de virtualisation
La virtualisation par conteneur
Docker et ses concurrents
Qu'est-ce que l'orchestration
Quelles sont les fonctionnalités liées à l'orchestration
Architecture et composants
Etcd
L'api server
Le Scheduler
Le Kubelet
Le Controller
Le kube-proxy
Mise en place d'une infra avec Kubernetes
Installer et configurer minikube
Identifier différents composants: Dashboard, les CLI et l'API
Exécuter les commandes de gestion élémentaires(run, logs, exec, attach)
Définir une mise en réseau
Les Pods
Comprendre le concept de pod
Comprendre le langage descriptif yaml
Identifier les bonnes pratiques
Comprendre l’intérêt des jobs et cronjobs
Organiser la gestion des pods: avec les labels, les sélecteurs et les namespaces
Présenter le concept de réentrance
Définir le cycle de vie des pods
Pérenniser son déploiement
Contrôler l'état de ses pods: startupprobe, livenessprobe, readinessprobe
Présenter la notion de scale-out
La ressource daemonset
Services
Présenter la ressource service
Exposer un pod au réseau en interne du cluster
Exposer un pod à l'extérieur du réseau
Identifier les différentes mise en réseau
Volumes
Mutualiser des données
Rendre accessible le fs d'un noeud du cluster
Définir les Persistent Volumes et Persistent Volumes Claims
Configuration et secrets
Utiliser la réentrance pour générer les ressources configMap et secret
Sécuriser ses déploiements en utilisant des secrets
Mutualiser les configuration à l'ensemble des nœuds en utilisant un configMap
Stratégies de déploiement
Présenter le mécanisme de rolling update(blue green deployment)
Gérer l'historique des rollouts
Annoter les changement de version(change cause)
Le dashboard
Ajouter le dashboard pour une gestion IHM
Manipuler des ressources depuis le dashboard
Identifier les dangers d'une gestion IHM des ressources
Application Stateless versus application stateful
Identifier les lacunes de la ressource deployment
Présenter la ressource statefulset
Observer le comportement d'un STS lorsque la notion de scale-out intervient
Industrialiser ses déploiements avec kustomize
Identifier le rôle de kustomize
Variabiliser toutes les données utiles
Définir des environnements(staging, preprod, prod)
Définir une stratégie de scale-out en fonction des environnements
Générer les secrets et configMap avec la notion de generators
Patcher les environnements
Evaluer les artefacts générés par kustomize
Gérer les ressources
Ajouter des quotas de ressources
Présenter la notion de priorité
Ajouter un priorityClass
Mise en réseau avancée
Présenter les ressources ingress et ingressClass
Comprendre l'intéret des networks policies
Présenter la notion de service mesh(linkerd, istio)
Sécuriser les accès
Présenter les RBAC
Créer des services accounts
Interroger l'API pour obtenir la liste des permissions acquises
Pour aller plus loin
Présenter le pattern de gestion: canary release
Installer le gestionnaire de plugins: krew
Identifier les incontournables: outils, plugins, applications, dépôts