Plan du cours
Jour 1 – Conteneurs et Gestion des Images
Introduction aux Plateformes de Conteneurs
- Déploiement d'applications traditionnelles comparé au déploiement basé sur les conteneurs
- Conteneurs et machines virtuelles
- Moteurs d'exécution (runtimes) et moteurs de conteneurs
- Le rôle de Docker, Kubernetes et OpenShift
- Architectures courantes des plateformes de conteneurs
- Flux de travail de développement, de test et de production
Travail avec les Conteneurs
- Exécution et gestion des conteneurs
- Cycle de vie d'un conteneur
- Démarrage, arrêt et suppression des conteneurs
- Exécution de commandes à l'intérieur des conteneurs
- Variables d'environnement
- Mappage des ports
- Journaux (logs) des conteneurs
- Utilisation des ressources et inspection des processus
Création d'Images de Conteneurs
- Structure des images et couches
- Création de Dockerfiles et Containerfiles
- Sélection des images de base
- Ajout des dépendances applicatives
- Configuration des points d'entrée et des commandes
- Mise en cache des images
- Réduction de la taille des images
- Construction d'images reproductibles
Registres de Conteneurs
- Registres publics et privés
- Étiquetage et versionnage des images
- Pousser (push) et tirer (pull) les images
- Authentification des images
- Rétention et nettoyage des images
- Considérations de base sur la sécurité des images
Networking et Stockage des Conteneurs
- Concepts réseau des conteneurs
- Networking en pont (bridge)
- Exposition des ports
- Communication conteneur-à-conteneur
- Bind mounts et volumes
- Données persistantes des conteneurs
- Considérations de sauvegarde
Exercices Pratiques
- Exécuter et inspecter des conteneurs
- Construire une image d'application
- Configurer les ports et variables d'environnement
- Publier une image vers un registre
- Stocker des données persistantes en dehors d'un conteneur
Jour 2 – Architecture Kubernetes et Charges de Travail
Fondamentaux de Kubernetes
- L'utilité de l'orchestration de conteneurs
- Architecture de Kubernetes
- Composants du plan de contrôle (control plane)
- Nœuds travailleurs (worker nodes)
- Serveur API
- Ordonnanceur (Scheduler)
- Contrôleurs
- État du cluster et état souhaité
- Communication avec le cluster en utilisant kubectl
Ressources Kubernetes
- Pods
- ReplicaSets
- Déploiements (Deployments)
- Nomespaces (Namespaces)
- Étiquettes (Labels) et annotations
- Sélecteurs
- Définitions de ressources déclaratives
- Manifestes YAML
Déploiement d'Applications
- Création et gestion des déploiements
- Mise à l'échelle des charges de travail
- Mise à jour des images de conteneurs
- Mises à jour progressives (Rolling updates)
- Retours arrière (Rollbacks)
- Historique des déploiements
- Redémarrage des charges de travail
- Gestion des répliques applicatives
Configuration des Applications
- ConfigMaps
- Secrets
- Variables d'environnement
- Fichiers de configuration
- Séparation du code applicatif et de la configuration
- Gestion des paramètres spécifiques à l'environnement
Gestion des Ressources
- Demandes (requests) CPU et mémoire
- Limites (limits) CPU et mémoire
- Quotas de ressources
- Portées de limites (Limit ranges)
- Implications sur l'ordonnancement
- Diagnostic des échecs liés aux ressources
Exercices Pratiques
- Déployer une application conteneurisée
- Créer et mettre à jour les manifestes Kubernetes
- Mettre à l'échelle une application
- Effectuer une mise à jour progressive et un retour arrière
- Configurer l'application en utilisant ConfigMaps et Secrets
- Appliquer les demandes et limites de ressources
Jour 3 – Réseau, Stockage et Sécurité Kubernetes
Réseau Kubernetes
- Modèle réseau du cluster
- Communication pod-à-pod
- Découverte de services (Service discovery)
- DNS à l'intérieur du cluster
- Services ClusterIP
- Services NodePort
- Services LoadBalancer
- Concepts d'Ingress
- Motifs d'exposition des applications
Politiques Réseau (Network Policies)
- Contrôle du trafic entre les charges de travail
- Règles Ingress et Egress
- Contrôle du trafic basé sur le namespace
- Test de connectivité réseau
- Dépannage de la communication des services
Stockage Persistant
- Stockage éphémère et persistant
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Provisionnement dynamique
- Modes d'accès
- Politiques de reprise (Reclaim policies)
- Stockage pour les applications stateful
Contrôle d'Accès Kubernetes
- Concepts d'authentification et d'autorisation
- Role-Based Access Control (RBAC)
- Rôles et ClusterRoles
- RoleBindings et ClusterRoleBindings
- Comptes de service (Service accounts)
- Accès au privilège minimum (Least-privilege access)
- Inspection des permissions effectives
Sécurité des Charges de Travail
- Contextes de sécurité (Security contexts)
- Exécution des conteneurs sans privilège root
- Capacités Linux
- Systèmes de fichiers en lecture seule
- Gestion des secrets
- Provenance des images
- Risques courants de configuration
Exercices Pratiques
- Exposer une application via les services Kubernetes
- Configurer l'ingress
- Limiter le trafic à l'aide d'une politique réseau
- Provisionner du stockage persistant
- Configurer les permissions RBAC
- Exécuter une charge de travail avec un contexte de sécurité approprié
Jour 4 – Travail avec des Environnements OpenShift
Introduction à OpenShift
- OpenShift en tant que plateforme d'applications basée sur Kubernetes
- Ressources Kubernetes dans un environnement OpenShift
- Architecture du cluster OpenShift
- Projets et namespaces
- Utilisateurs de la plateforme et comptes de service
- Travail avec la console web
- Travail avec l'interface CLI d'OpenShift
Gestion des Projets et de l'Accès
- Création et gestion des projets
- Attribution des permissions utilisateur
- Rôles au niveau du projet
- Accès administratif
- Quotas de ressources
- Portées de limites (Limit ranges)
- Comptes de service
- Vérification des ressources du projet
Déploiement d'Applications
- Déploiement d'images de conteneurs
- Création de charges de travail applicatives
- Gestion des déploiements
- Mise à l'échelle des applications
- Mise à jour des versions d'application
- Retours arrière (Rollbacks)
- Gestion de la configuration applicative
- Travail avec les secrets
Exposition des Applications
- Services dans OpenShift
- Routes
- Concepts TLS
- Accès application interne et externe
- Noms d'hôte et certificats
- Dépannage des problèmes de route et de service
Stockage dans OpenShift
- Persistent Volume Claims
- StorageClasses
- Attacher le stockage aux charges de travail
- Charges de travail stateful
- Permissions d'accès au stockage
- Dépannage du montage des volumes
Ordonnancement et Gestion des Nœuds
- Étiquettes (Labels) et sélecteurs
- Sélecteurs de nœuds
- Taints et tolerations
- Concepts d'affinité et anti-affinité
- Placement des charges de travail
- Mise en quarantaine (Cordoning) et vidage (draining) des nœuds
- Considérations de maintenance des nœuds
Exercices Pratiques
- Accéder à un environnement OpenShift
- Créer et configurer un projet
- Déployer et exposer une application
- Configurer l'accès utilisateur et au compte de service
- Attacher du stockage persistant
- Mettre à l'échelle et mettre à jour une charge de travail en cours d'exécution
Jour 5 – Exploitation, Surveillance et Dépannage
Surveillance de la Plateforme
- Surveillance de la santé du cluster et des applications
- Métriques de ressources
- Santé des nœuds
- Statut des charges de travail
- Capacité et utilisation des ressources
- Identification des contraintes de performance
Journalisation (Logging) et Événements
- Journaux des conteneurs
- Journaux des pods
- Anciens journaux des conteneurs
- Événements Kubernetes
- Messages applicatifs et plateforme
- Filtrage et interprétation des données opérationnelles
Vérifications de Santé (Health Checks)
- Sondes de démarrage (Startup probes)
- Sondes de prêt (Readiness probes)
- Sondes de vivacité (Liveness probes)
- Conception de points de terminaison de santé utiles
- Dépannage des échecs de sondes
- Prévention des redémarrages inutiles d'applications
Dépannage des Charges de Travail
- Pods en attente (Pending)
- Échecs de tirage d'images (Image pull failures)
- Boucles de crash
- Variables d'environnement mal configurées
- Montages échoués
- Ressources insuffisantes
- Erreurs de permission
- Problèmes de connectivité des services et des routes
- Problèmes DNS
- Échecs de démarrage des applications
Sécurité Opérationnelle
- Vérification des permissions
- Utilisation des comptes de service
- Gestion sécurisée des identifiants
- Pratiques de sécurité des images
- Isolation réseau
- Audit d'accès à la plateforme
- Application du principe de privilège minimum
Maintenance et Gestion du Cycle de Vie
- Vérifications de routine de la plateforme
- Maintenance des nœuds
- Considérations de sauvegarde des applications
- Sauvegarde de la configuration
- Planification des mises à jour
- Gestion des changements
- Test des mises à jour
- Planification des retours arrière
- Concepts de reprise après sinistre
Atelier Pratique Final
Les participants complètent un scénario opérationnel de bout en bout :
- Construire et étiqueter une image de conteneur.
- Publier l'image vers un registre.
- Déployer l'application sur Kubernetes ou OpenShift.
- Configurer les paramètres et identifiants de l'application.
- Exposer l'application.
- Attacher du stockage persistant.
- Configurer les permissions d'accès.
- Ajouter des vérifications de santé.
- Mettre à l'échelle et mettre à jour l'application.
- Diagnostiquer et résoudre un défaut introduit volontairement.
Format du Cours
- Cours interactifs et discussions techniques.
- Démonstrations par l'instructeur.
- Exercices pratiques extensifs.
- Ateliers d'administration et de dépannage basés sur des scénarios.
- Travail pratique dans des environnements conteneurs, Kubernetes et OpenShift.
Options de Personnalisation du Cours
- Le cours peut être adapté à l'infrastructure existante des participants, au fournisseur cloud et aux outils de conteneurisation.
- L'équilibre entre les sujets Docker, Kubernetes et OpenShift peut être ajusté selon l'expérience de l'équipe.
- Les exercices pratiques peuvent être adaptés aux applications de l'organisation, aux processus de déploiement et aux exigences opérationnelles.
Avis sur les Marques Déposées
OpenShift est une marque déposée de Red Hat, Inc. Cette formation développée indépendamment n'est pas affiliée à, soutenue par ou autorisée par Red Hat.
Pré requis
Les participants doivent avoir :
- De l'expérience avec la ligne de commande Linux.
- Des connaissances de base en administration système ou DevOps.
- Une compréhension générale des concepts réseau.
- Une familiarité avec les processus de déploiement logiciel.
Une expérience préalable avec Docker, Kubernetes ou OpenShift est utile mais non requise.
Nos clients témoignent (7)
Reda a fourni des explications et a simplifié beaucoup de compréhension
Eric Van Wyk
Formation - Docker, Kubernetes and OpenShift 3 for Administrators
Traduction automatique
Les laboratoires étaient les meilleurs. Très pratiques, ils fournissent une expérience pratique. Personnellement, je pense qu'il s'agit du moyen le plus efficace pour comprendre réellement le cours et appliquer les concepts abordés.
Hishaam Johnstone
Formation - Docker, Kubernetes and OpenShift 3 for Administrators
Traduction automatique
J'ai apprécié la volonté d'aider et d'expliquer davantage lorsque les choses étaient incertaines
Letlotlo Miffi
Formation - Docker, Kubernetes and OpenShift 3 for Administrators
Traduction automatique
Adriano a approfondi le sujet, ce qui correspond au style que je préfère en général : moins de commandes et plus de mécanismes sous-jacents. Les scénarios présentés étaient bien illustrés par des exemples pratiques, ce qui a beaucoup aidé à comprendre les concepts exposés.
Mariusz BANASZCZYK - Sopra Steria
Formation - Docker, Kubernetes and OpenShift for Administrators
Traduction automatique
Connaissances approfondies d'Adriano. Explication des concepts de base
Tomasz Szalankiewicz - LPP SA
Formation - Docker, Kubernetes and OpenShift for Administrators
Traduction automatique
J'ai généralement aimé le présentateur.
Josif Kovacevic - ANZ
Formation - Docker, Kubernetes and OpenShift for Administrators
Traduction automatique
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Formation - Docker, Kubernetes and OpenShift for Administrators
Traduction automatique