L’alerting consiste à configurer des notifications automatiques lorsqu’un événement critique ou anormal survient dans le système. Cela permet aux équipes DevOps de réagir rapidement aux incidents et de maintenir la disponibilité et la performance des applications.
Argo est un écosystème d’outils cloud-native pour Kubernetes, conçu pour automatiser les workflows, les déploiements et la gestion opérationnelle. Il comprend Argo CD pour le GitOps, Argo Workflows pour orchestrer des pipelines, Argo Rollouts pour les déploiements progressifs et Argo Events pour l’automatisation pilotée par événements. Argo s’intègre de manière native avec Kubernetes, facilitant la mise en place de pipelines déclaratifs et reproductibles.
Un artifact est un fichier généré par un pipeline CI/CD, tel qu’un binaire, une image Docker ou un bundle applicatif. Il représente une version stable du code qui peut être déployée de manière reproductible dans différents environnements.
L’autoscaling ajuste automatiquement le nombre de pods ou les ressources allouées en fonction de la charge du système. Le HPA (Horizontal Pod Autoscaler) ajuste le nombre de pods, tandis que le VPA (Vertical Pod Autoscaler) adapte les ressources CPU/mémoire des pods existants pour optimiser la performance et l’utilisation des ressources.
Le blue-green deployment consiste à maintenir deux environnements identiques, l’un actif et l’autre inactif. Lorsqu’une nouvelle version est prête, le trafic est basculé vers l’environnement secondaire, permettant une mise à jour sans interruption et une reprise rapide en cas de problème.
La phase de build transforme le code source en un livrable exécutable ou déployable. Elle inclut la compilation, la gestion des dépendances, les tests unitaires et l’analyse statique, garantissant que l’artefact produit est stable et prêt pour les étapes suivantes du pipeline CI/CD.
Un canary release déploie progressivement une nouvelle version à un sous-ensemble de trafic pour détecter d’éventuels problèmes avant un déploiement global. Cette stratégie réduit les risques pour les utilisateurs finaux et permet de valider les changements en production.
La CD automatise le déploiement du code vers la pré-production ou la production. Elle garantit que les modifications validées dans le pipeline CI peuvent être mises en production rapidement et de manière fiable, réduisant le temps entre développement et livraison.
La CI consiste à intégrer et tester automatiquement le code à chaque commit. Elle permet de détecter rapidement les erreurs et de maintenir un code fonctionnel à tout moment dans le pipeline.
La CLI (Command Line Interface) permet d’interagir avec un logiciel ou un système via des commandes textuelles. Elle est essentielle pour l’automatisation, la configuration et le contrôle précis des opérations dans un environnement DevOps.
La Container Network Interface (CNI) est un standard permettant aux conteneurs de se connecter à un réseau. Kubernetes utilise des plugins CNI comme Cilium, Calico ou Flannel pour gérer la communication entre les pods et assurer un réseau sécurisé et fiable.
Un ConfigMap est un objet Kubernetes qui stocke des données de configuration non sensibles (fichiers, variables d’environnement, paramètres). Il permet de séparer la configuration du code et de rendre les applications plus modulaires et flexibles.
Un container registry est une plateforme pour stocker, gérer et distribuer des images de conteneurs. Des exemples incluent Docker Hub, GHCR, ECR, GCR et Harbor, utilisés pour versionner et partager des images entre environnements et clusters.
Le Controller Manager est un composant Kubernetes qui supervise différents contrôleurs. Il veille à ce que l’état réel du cluster corresponde à l’état désiré défini par les manifests, en effectuant les ajustements nécessaires sur les ressources.
Un CronJob permet d’exécuter des tâches planifiées automatiquement selon une syntaxe cron. Il est utilisé pour des opérations récurrentes telles que les sauvegardes, les rapports ou les traitements batch.
Une Custom Resource Definition (CRD) permet d’ajouter de nouveaux types de ressources personnalisées dans Kubernetes. Les CRD sont à la base des opérateurs et permettent d’étendre les fonctionnalités du cluster sans modifier son cœur.
Un DaemonSet assure qu’un pod spécifique est exécuté sur chaque nœud du cluster. Il est utilisé pour déployer des agents système, des collecteurs de logs ou des plugins réseau sur tous les nœuds.
Un Deployment gère le cycle de vie des pods en orchestrant les ReplicaSets et en permettant les mises à jour progressives. Il facilite les déploiements, les rollbacks et le maintien de l’état souhaité d’une application.
L’Entrypoint ou CMD définit la commande principale exécutée automatiquement lorsqu’un conteneur démarre. Il permet de contrôler le comportement initial d’une application conteneurisée.
Le failover bascule automatiquement vers un système de secours lorsqu’un composant tombe en panne. Cela assure la continuité de service et réduit l’impact des incidents sur les utilisateurs.
Flannel est un plugin CNI qui fournit un réseau overlay pour les pods Kubernetes. Il est simple à configurer et convient aux clusters de petite taille ou aux environnements de test.
FluxCD est un outil GitOps open source qui synchronise automatiquement l’état d’un cluster Kubernetes avec un dépôt Git. Il applique les changements de manière déclarative et assure une gestion cohérente de l’infrastructure.
GitOps est une approche où l’état de l’infrastructure est défini dans Git et appliqué automatiquement aux clusters. Cette méthode permet un déploiement fiable, traçable et reproductible des applications et des configurations.
Helm est le gestionnaire de packages pour Kubernetes, utilisant des charts regroupant modèles YAML, valeurs par défaut et dépendances. Il simplifie le déploiement, la configuration et la mise à jour d’applications complexes, tout en facilitant la gestion multi-environnements et le versioning des déploiements.
L’HA désigne une architecture conçue pour garantir la disponibilité maximale d’un service et la tolérance aux pannes. Elle repose sur la redondance des composants, la réplication des données et des mécanismes de basculement automatique.
L’infrastructure immuable est une approche où les serveurs ou conteneurs existants ne sont jamais modifiés. Toute mise à jour consiste à déployer une nouvelle version, garantissant la cohérence et la prévisibilité du système.
Un Ingress définit les règles de routage HTTP/HTTPS pour exposer des services Kubernetes à l’extérieur. Il centralise le contrôle du trafic et peut inclure des fonctionnalités de réécriture d’URL, SSL et redirections.
L’Ingress Controller applique les règles d’Ingress dans le cluster. Des solutions comme NGINX, Traefik ou Kong assurent la gestion du trafic entrant et la sécurité des services exposés.
Un Job exécute une tâche unique ou répétée jusqu’à sa complétion. Il est utilisé pour les migrations, traitements batch ou autres tâches ponctuelles nécessitant un contrôle précis.
Kind (Kubernetes IN Docker) permet de créer des clusters Kubernetes locaux dans des conteneurs Docker. Il est particulièrement utile pour le développement, les tests CI/CD et l’expérimentation sans déployer de cluster complet sur le cloud.
La Liveness Probe vérifie périodiquement qu’un conteneur est en bon état de fonctionnement. Si le contrôle échoue, Kubernetes redémarre le pod pour restaurer un état sain.
Un load balancer répartit le trafic réseau entre plusieurs instances d’une application. Il améliore la performance, la disponibilité et la tolérance aux pannes.
Le load balancing consiste à distribuer le trafic ou les demandes utilisateur sur plusieurs serveurs pour optimiser les performances et éviter les surcharges.
Le logging centralise la collecte et le stockage des journaux applicatifs et systèmes. Il permet d’analyser le comportement du système, détecter les erreurs et assurer la traçabilité des événements.
Les metrics sont des mesures quantitatives sur les ressources et performances d’un système (CPU, RAM, latence, erreurs). Elles servent à surveiller, diagnostiquer et optimiser les applications et l’infrastructure.
N8N est un outil open source d’automatisation de workflows permettant de connecter des applications et services. Il offre une interface visuelle pour créer des pipelines et automatiser des processus sans écrire beaucoup de code.
Un namespace isole les ressources au sein d’un cluster Kubernetes. Il facilite l’organisation, la gestion des permissions, l’application de quotas et la séparation des environnements ou projets.
Les Network Policies définissent les règles de communication entre pods dans un cluster Kubernetes. Elles permettent de sécuriser le réseau interne en contrôlant quel pod peut parler à quel service.
Un node est une machine physique ou virtuelle exécutant des pods Kubernetes. Chaque node fournit les ressources nécessaires pour faire tourner les conteneurs et communiquer avec le cluster.
L’observabilité regroupe les pratiques permettant de comprendre l’état interne d’un système à partir des logs, metrics et traces distribuées. Elle est essentielle pour diagnostiquer les problèmes et optimiser les performances.
OCI définit des standards pour les formats d’images et les runtimes de conteneurs, assurant l’interopérabilité entre outils comme Docker, containerd ou Podman.
Un Operator est un composant Kubernetes qui automatise la gestion d’applications complexes à l’aide de CRD et de contrôleurs personnalisés, permettant de gérer le cycle de vie complet d’une application.
Un PV est une ressource de stockage durable dans Kubernetes, indépendante du cycle de vie des pods, utilisée pour conserver les données de manière persistante.
Un PVC est une requête faite par un pod pour utiliser un volume persistant. Il permet de lier dynamiquement ou statiquement un stockage à un pod selon ses besoins.
Un pipeline CI/CD est une suite d’étapes automatisées incluant tests, build, analyse et déploiement, permettant de livrer du code de manière fiable et reproductible.
Un pod est l’unité de base d’exécution dans Kubernetes, pouvant contenir un ou plusieurs conteneurs partageant réseau et stockage. Les pods sont gérés par des contrôleurs tels que Deployment ou StatefulSet.
QoS classe les pods selon leur priorité et leurs demandes/limites de ressources (Guaranteed, Burstable, BestEffort), influençant la planification et la tolérance aux ressources du cluster.
Un quota limite l’usage des ressources (CPU, mémoire, stockage, objets) dans un namespace, garantissant un partage équitable et la stabilité du cluster.
La Readiness Probe indique si un pod est prêt à recevoir du trafic. Si le pod n’est pas prêt, il est exclu des services exposés jusqu’à ce qu’il le devienne.
Un ReplicaSet garantit qu’un nombre défini de pods identiques est toujours en fonctionnement. Il est souvent géré indirectement via des Deployments pour les mises à jour progressives.
Le rolling update met à jour les pods progressivement, un par un, pour limiter les interruptions et maintenir la disponibilité du service pendant la mise à jour.
Un service mesh gère la communication entre services dans un cluster, offrant sécurité, routage, observabilité et résilience, avec des outils comme Istio ou Linkerd.
Sailor.sh est un simulateur en ligne pour pratiquer les examens Kubernetes (CKA, CKAD, CKS), avec des laboratoires et scénarios réalistes pour s’entraîner aux compétences pratiques.
Un SLI (Service Level Indicator) mesure la performance réelle d’un service par rapport à un objectif défini, comme le temps de réponse ou le taux d’erreur.
Le tracing distribué suit les requêtes à travers différents services et composants, permettant de comprendre les interactions et identifier les goulots d’étranglement.
Un webhook est un mécanisme qui permet à un service d’envoyer automatiquement une requête HTTP lorsqu’un événement survient, par exemple pour déclencher un pipeline CI/CD.
Le WebAssembly est un format bytecode performant permettant d’exécuter des applications sandboxées. Il commence à être utilisé dans Kubernetes pour des workloads légers et sécurisés.
XP est une méthodologie Agile centrée sur l’amélioration continue, la qualité du code et la réduction du cycle de feedback grâce à des pratiques comme le TDD ou le pair programming.
YTT est un outil de templating pour YAML qui permet de générer ou modifier dynamiquement des manifests Kubernetes, facilitant la réutilisation et la personnalisation des configurations.
ZSH est un shell Unix puissant et personnalisable, alternatif à Bash, souvent utilisé avec des frameworks comme Oh My Zsh pour améliorer la productivité et la configuration du terminal.