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