Introduction : Assembler Kubernetes avec Bash
- Prérequis
- Pourquoi Bash ?
- Ce que nous construisons
- Le point d’entrée : setup.sh
- Démarrage de datacenter.sh
- Exercices Pratiques
Paramètres de Sécurité, Initialisation et Hooks de Cycle de Vie
- Options Globales de Set
- Linter vos Scripts Shell : shellcheck
- Initialisation du Script
- Le Contrôleur Principal
- Gestionnaire d’Erreurs
- Gestionnaire de Sortie
- Assemblage Final
- Exercices Pratiques
Codes de Sortie et Sorties Contrôlées
- La Fonction script_exit
- Conventions de Code de Sortie
- Rappel des Motifs de Sécurité Bash
- Script Mis à Jour
- Exercices Pratiques
Mode Cron et Redirection d’Entrées/Sorties
- Ce que Fait le Mode Cron
- Descripteurs de Fichier
- Redirection pour le Mode Cron
- Mise à Jour du Gestionnaire d’Erreurs
- Mise à Jour du Gestionnaire de Sortie
- Enregistrer cron_init dans main
- Script Mis à Jour
- Exercices Pratiques
Le Patron de Bibliothèque : Organiser une Base de Code Bash
- Le Répertoire lib/
- Chargement des Bibliothèques dans main
- Écrire un Fichier de Bibliothèque
- Conventions de Nommage
- Le Graphe de Dépendances
- Deux Bibliothèques Utilitaires à Connaître
- Exercices Pratiques
Couleurs de Terminal et Journalisation
- La Bibliothèque de Journalisation
- Initialisation des Couleurs
- La Fonction log
- verbose_print — Sortie en Mode Verbose
- Mise à Jour de init
- Mise à Jour de main
- Mise à Jour du Gestionnaire d’Erreurs
- Exercices Pratiques
Aides à la Validation et Vérifications de Binaires
- lib/script.sh
- check_binary — Détection d’Outil Requis
- check_required_binaries — Préconditions Système
- is_kind — Détection de Mode
- check_arguments — Validation de Présence de Variable
- check_directories — Validation de Chemin
- check_files — Validation de Présence de Fichier
- check_repos — Garde de Présence des Dépôts
- build_path — Construction de PATH
- Utilisation des Aides dans la Chaîne init
- Exercices Pratiques
Gestion de la Configuration
- Le Fichier de Configuration
- lib/config.sh
- get_configurations — Configuration Interactive
- Lecture de la Configuration dans main
- Modes Réseau Docker
- Exercices Pratiques
Verrouillage de Script : Empêcher les Exécutions Concurrentes
- Pourquoi un Répertoire, Pas un Fichier
- lock_init
- Gestion des Verrous Obsolètes
- Exercices Pratiques
Analyse Complète des Paramètres
- parse_params
- script_usage — Le Texte d’Aide
- Connexion de parse_params à main
- Exercices Pratiques
Mode Local et Gestion du Cluster Kind
- Pourquoi Kind
- lib/kind.sh
- start_env — Créer un Cluster Kind
- stop_env — Arrêter le Cluster
- delete_env — Détruire le Cluster
- Chargement d’Images dans Kind
- Pas de Changement d’Environnement Docker
- Exercices Pratiques
Opérations Docker
- lib/docker.sh
- safe_docker — Le Wrapper de Base
- safe_docker_build — Construction d’Images
- safe_docker_run — Exécuter des Conteneurs
- Chargement d’Images dans Kind
- Opérations Docker Compose
- docker_cleanup — Supprimer les Conteneurs et Images Morts
- Exercices Pratiques
Kubernetes avec kubectl
- lib/kubectl.sh
- safe_kubectl — Le Wrapper de Base
- kubectl_install_resource_from_file
- kubectl_install_database — Configuration PostgreSQL
- kubectl_restart — Redémarrage Progressif
- Gestion DNS
- Redémarrer Tous les Deployments
- Exercices Pratiques
Helm : Gestion de Paquets pour Kubernetes
- lib/helm.sh
- safe_helm — Le Wrapper de Base
- Charts Helm dans k8s/
- helm_install_service — Installateur de Service Générique
- helm_install_core_service — Services Basés sur des Templates
- Installer les Releases de Configuration
- Fonctions de Mise à Jour — Mises à Niveau sur Place
- Traefik — Le Contrôleur Ingress
- Exercices Pratiques
Construction de Services
- Le Pipeline de Build
- lib/build.sh
- build_service — La Fonction de Build Principale
- Fonctions de Groupe de Services
- build_images_init — Le Répartiteur de Build
- lib/install_deps.sh
- check_registry
- Exercices Pratiques
Provisionnement à Partir de Zéro
- Architecture du Système
- La Séquence Complète de Provisionnement
- Étape par Étape
- Fonctions de Support
- Paramètres du Cluster Kubernetes
- Référence des Manifests Kubernetes
- Exercices Pratiques
- À Quoi Ressemble le Succès
Opérations de Rechargement et de Récupération
- lib/reload_services.sh
- reload_services — Rafraîchissement Léger de Service
- reload_services_init — Le Répartiteur de Rechargement
- lib/reload_kubernetes.sh
- reload_all_kubernetes — Reconstruction Complète du Cluster
- Exercices Pratiques
Démantèlement et Nettoyage
- Arrêter l’Environnement
- Supprimer l’Environnement
- Démontage Complet de Kubernetes
- Nettoyage Docker
- Le Gestionnaire de Sortie : Version Complète
- Assemblage du Script Complet
- La Fonction main() Complète
- La Fonction init Complète
- Le Cycle de Vie Complet
- L’Expérience Développeur que Vous Avez Construite
- Exercices Pratiques
GitOps avec ArgoCD
- lib/argocd.sh
- safe_argocd — Le Wrapper de Base
- helm_install_argocd — Installer le Contrôleur
- argocd_wait_ready — Confirmer le Démarrage
- argocd_login — Authentifier la CLI
- argocd_create_app — Enregistrer une Application
- argocd_sync — Déclencher une Synchronisation
- argocd_wait_healthy — Attendre la Fin de la Synchronisation
- argocd_delete_app — Supprimer une Application
- Intégrer ArgoCD dans datacenter.sh
- Une Note sur OpenShift
- Exercices Pratiques
Métriques et Tableaux de Bord avec Prometheus et Grafana
- lib/monitoring.sh
- helm_install_monitoring — La Pile Complète
- monitoring_wait_ready — Confirmer le Démarrage
- monitoring_port_forward — Accès Local
- monitoring_apply_servicemonitor — Scraper Vos Services
- monitoring_get_grafana_password — Récupération des Identifiants
- Intégrer le Monitoring dans datacenter.sh
- Ce que kube-prometheus-stack Vous Apporte
- Exercices Pratiques
Traçage Distribué avec OpenTelemetry
- lib/otel.sh
- safe_otel — Le Wrapper de Base
- helm_install_otel_operator — Installer l’Opérateur
- otel_wait_ready — Confirmer que l’Opérateur Tourne
- otel_apply_collector — Déployer le Collecteur
- otel_apply_instrumentation — Auto-Instrumentation sans Code
- otel_wait_collector_ready — Confirmer le Collecteur
- Grafana Tempo — Le Backend de Traces
- Intégrer OTel dans datacenter.sh
- Relier Traces, Métriques et Logs
- Exercices Pratiques
Annexe : Référence des Commandes datacenter.sh
- setup.sh
- datacenter.sh
- Codes de Sortie
- Paramètres Chaînables vs Non-Chaînables
- Flux de Travail Courants
- Dépannage