Objectifs de la formation
À l’issue de la formation, le participant sera en mesure de :
- Comprendre comment utiliser Kubernetes
- Découvrir l’architecture interne de Kubernetes
- Appréhender les principaux composants avancés de Kubernetes
- Savoir installer Kubernetes en production
- Paramétrer l’authentification et la gestion des utilisateurs
- Maîtriser les fonctionnements des réseaux virtuels Kubernetes
- Optimiser le monitoring du cluster Kubernetes
- Étendre et customiser les rouages de Kubernetes
Programme de la formation
Administration de Kubernetes en production
- Configuration avancée de kubeadm
- Mise en place automatisée d’un cluster Kubernetes On-Premise
- Sécurisation d’un cluster Kubernetes On-Premise pour la production
- Mise en place de la haute disponibilité pour le Control-Plane
- Mise à jour automatisée en mode Rolling Update du Control-Plane et des noeuds Kubernetes
- Virtuosité dans l’utilisation de kubectl pour la CKAD
- Intégration continue dans le Cloud avec kind
- CRI: crictl, Docker et Containerd
Architecture de Kubernetes
- Les composants du Control Plane et des noeuds de travail:
- Philosophie Unix des composants
- Fonctionnement de la boucle de réconciliation et du Controller Kubernetes
- Fonctionnement de etcd en mode haute-disponibilité
- Fonctionnement interne de l’API server: authentification, autorisation et Admission Control
- Gestion des contrôleurs d’admission
- Extension du cycle de vie du serveur d’API avec les MutatingAdmissionWebhook et les ValidatingAdmissionWebhook
- Description de l’algorithme du Scheduler Kubernetes, prédicats et priorités
- Configuration déclarative
- Groupement implicite ou dynamique
- Interactions pilotées par les API
- Cinématique de création d’un Pod à partir d’un Deployment
- Kube-proxy: fonctionnement avancé du réseau virtuel des Services
- Service discovery avec CoreDNS
- Description de la structure interne d’un Pod et du conteneur d’infrastructure
Gestion des utilisateurs et droits d'accès
- Authentification: certificats, tokens, et Dex
- Paramétrage du fichier Kubeconfig avec les Configuration Contexts
- Gestion des ServiceAccounts
- Sécuriser le pilotage du cluster avec les autorisations RBAC
- Role et ClusterRole, RoleBinding et ClusterRoleBinding
- Création de RBAC simples et génériques pour piloter un cluster de production
Sécurité
- Sécuriser l’exécution des processus Unix dans les Pods
- SecurityContext: Mode privileged, Linux Capabilities, sécurisation des processus Unix
- Industrialiser la sécurité des Pods avec les PodSecurityPolicies
- Choix d’un plug-in réseau CNI sécurisé et performant
- Industrialiser la sécurité du réseau (L4) avec les NetworkPolicies (ingress et egress)
Qualité de service
- Utilisation optimale des ressources matérielles grâce aux Requests et Limits
- Classes de QoS: Guaranteed, Burstable et BestEffort
- Contrôle d’allocation des ressources par Namespace avec les ResourceQuota
- Contrôle d’allocation des ressources par Pod avec les LimitRange
Optimisation du scheduler
- Contrôle de la planification avec les Labels et les Affinités
- NodeSelector, NodeAffinity, PodAffinity, PodAntiAffinity
- Taints and Tolerations
Monitoring
- Objectifs de surveillance et de journalisation
- Automatiser le monitoring avec l’opérateur Prometheus
- Obtenir et agréger les métriques de votre cluster et de vos applications
- AlertManager: gestion et routage des alertes
- Visualiser et interagir avec vos données avec Grafana