Formation LINUX Kubernetes
Objectifs
Appréhender les containers, l’architecture microservices et les applications cloud natives.
Installer Kubernetes et configurer un cluster de production.
Utiliser des Pods, Services, Deployments, DaemonSets, Secrets, ConfigMaps, et Namespaces.
Déployer des applications via des Pods, Services et Ingress.
Utiliser différents types de volumes et mettre en place un cluster Ceph avec Rook.
Gérer l’authentification, l’autorisation et définir des utilisateurs et groupes.
Utiliser des outils de monitoring comme Prometheus et gérer les logs avec une stack Elastic.
Créer et utiliser des charts Helm pour déployer des applications.
Pré-requis
Participants
Programme de formation
DES CONCEPTS UTILES
-
Containers
-
Architecture microservices
-
Application cloud native
-
DevOps
-
La plateforme Docker
KUBERNETES
-
Les concepts de base
-
Architecture
-
Installation
-
Les choix pour un cluster de production
-
Playground en ligne
-
La gestion des nodes
-
Configuration
-
Travaux pratiques
- Premières commandes sur une installation locale
- Utilisation d'un playground en ligne
EXEMPLES D'UTILISATION
-
Démos de déploiement d'applications
LES RESSOURCES : POD
-
Utilisation
-
Exemple
-
Cycle de vie
-
Les travaux pratiques
- Lancement d'un Pod simple
- Lancement d'un Pod avec plusieurs containers
LES RESSOURCES : SERVICE
-
Utilisation
-
Les différents types
-
Cycle de vie
-
Travaux pratiques
- Création d'un service de type ClusterIP
- Création d'un service de type NodePort
- Création d'un service de type LoadBalancer
LES RESSOURCES : DEPLOYMENT
-
Utilisation
-
Exemple de spécification
-
ReplicaSet
-
Stratégies de mise à jour
-
Rolling update et rollback
-
Travaux pratiques
- Création d'un Deployment
- Mise à jour
EXEMPLE
-
Démo pour l'illustration des différents concepts précédents
LES RESSOURCES : DAEMONSET
-
Utilisation
-
Exemple pour la collecte de logs
-
Travaux pratiques
- Création d'un DaemonSet
LES RESSOURCES : SECRETS
-
Utilisation
-
Les différents types (generic, docker registry, TLS)
-
Travaux pratiques
- Utilisation d'un Secret pour la connexion à une base de données externe
LES RESSOURCES : CONFIGMAP
-
Utilisation
-
Les différentes possiblités de création
-
Utilisation dans un Pod
-
Travaux pratiques
- Utilisation d'une ConfigMap pour la configuration d'un serveur Nginx
LES RESSOURCES : NAMESPACE
-
Présentation
-
Création
-
Utilisation avec un Context
-
Quotas
-
Travaux pratiques
- Création et utilisation de Namespace
LES RESSOURCES : INGRESS
-
Présentation
-
Routage par nom de domaine ou via requête HTTP
-
Travaux pratiques
- Exposition d'une application via un Ingress
APPLICATION STATEFUL
-
La notion de volume
-
Différents types (emptyDir, hostPath, Persistent Volume, Persistent Volume Claim)
-
StatefulSet
-
Présentation de Rook
-
Travaux pratiques
- Utilisation de différents types de Volume pour la persistance des données d'une application
- Mise en place et utilisation d'un cluster Ceph avec Rook
UTILISATEURS ET DROITS D'ACCÈS
-
Requêtes au serveur d'API
-
Authentification
-
Autorisation
-
Travaux pratiques
- Définition d'un utilisateur et d'un groupe via une certification x509
- Mise en place des droits d'accès
HELM
-
Présentation
-
Mise en place
-
Les charts disponibles
-
Création d'un chart Helm
-
Travaux pratiques
- Déploiement de plusieurs applications via des chart
GESTION DES LOGS
-
Recommandations
-
Différentes façons de gérer les logs
-
Travaux pratiques
- Envoi de logs dans une stack Elastic
MONITORING
-
Les principes
-
Présentation et mise en place d'une stack basée sur Prometheus
CI/CD
-
Présentation
-
Exemple de workflow avec GitLac