Kubernetes

Formation Kubernetes : maîtriser les outils de déploiements d’applications autonomes et multi-tiers Maîtriser les outils DevOps de déploiements d’applications

Cette formation offre une introduction à Kubernetes et à la façon de déployer une application autonome et multi-tiers. Vous en apprendrez plus sur ConfigMaps et Secrets, et comment utiliser Ingress.

À la fin de la formation, les SysOps et DevOps, les développeurs, auront une solide compréhension de l’architecture et des blocs de construction dans Kubernetes, et pourront rapidement l’utiliser en production.

Le formateur reprend ici le canevas de la formation k8s-101 (niveau intermédiaire).

Résumé

Logiciel : Kubernetes
Durée : 21 heures ou 28 heures selon demande
Objectifs :
- apprendre les concepts de base de gestion de conteneurs avec Kubernetes
- comprendre son architecture et les problèmes qu’il résout
- assimiler les modèles de déploiement et de mise à l’échelle qu’il utilise
- acquérir la pratique nécessaire pour aider vos équipes de développement, et/ou opération, à transformer votre infrastructure vers Kubernetes et les modèles cloud natifs
- simplifier l’orchestration des containers logiciels et développer votre utilisation de Kubernetes sans ajouter de complexité à l’infrastructure.
Public : administrateurs Systemes, SysOps, CloudOps, DevOps voire Développeurs
Prérequis : avoir une bonne connaissance d’une distribution GNU+Linux et connaître les principes de la conteneurisation.
Méthodes mobilisées : une très large part est accordée à la pratique. Des apports théoriques viennent consolider la pratique. Des exercices sont proposés aux stagiaires, qui peuvent les adapter en fonction de leurs objectifs. Les échanges entre les participants enrichissent les enseignements et leur mise en pratique.
Modalités et délais d’accès : sur inscription préalable au minimum 1 semaine avant le début de la formation selon les disponibilités du formateur.
Modalités d’évaluations : une évaluation du niveau des stagiaires est réalisée avant l’entrée en formation par téléphone ou au moyen d’un questionnaire. Évaluation des acquis et de la satisfaction en fin de formation.
Accessibilité aux personnes en situation de handicap ou présentant des difficultés d’apprentissage : toutes nos formations sont accessibles aux personnes en situation de handicap, qu’il soit moteur, visuel, auditif ou cognitif ; quelles qu’en soient les particularités.
Nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement. Nos locaux sont en rez-de-chaussée avec des places de parkings extérieures juste devant l’entrée du bâtiment. Aussi, merci de nous informer de vos besoins d’adaptation ; les échanges peuvent se faire et rester en toute confidentialité.
Taux de satisfaction 2i2l : 100 % des stagiaires sont "très satisfaits" ou "satisfaits" à l’issue de leur formation.
Tarif : pour une demande de formation interne, nous consulter.

Présentation

Kubernetes (communément appelé « K8s2 ») est un système open source qui vise à fournir une « plate-forme permettant d’automatiser le déploiement, la montée en charge et la mise en œuvre de conteneurs d’application sur des grappes de serveurs ». Il fonctionne avec toute une série de technologies de conteneurisation, et est souvent utilisé avec Docker. Il a été conçu à l’origine par Google, puis offert à la Cloud Native Computing Foundation. [1]

- le site officiel
- la documentation
- la forge
- la licence
- l’article Kubernetes sur Wikipedia

Programme

L’historique de l’architecture logicielle
- comprendre une application monolithique
- comprendre une application en micro-services
- connaître les containers
- connaître les orchestrateurs de containers
- identifier quelques orchestrateurs de containers du marché
- déployer un orchestrateur de containers

L’application Kubernetes
- connaître les fonctionnalités de Kubernetes
- lister les fonctionnalités orientées application
- découvrir l’architecture d’un cluster Kubernetes
- configurer API Server
- exécuter Scheduler
- contrôler Kube-Controller Manager
- déployer ETCD (base de données Key-Value)
- diriger Worker node (minion)
- initialiser et mettre à niveau Kubelet
- initialiser Kube-proxy
- gérer un réseau dans un pod
- gérer les communications externes

L’installation d’un cluster Kubernetes
- connaître les différentes configurations de cluster
- apprendre à utiliser les outils d’installation de kubernetes (Ateliers)
- exécuter un cluster mono-noeud avec Minikube
- passer en revue les Block de contruction du cluster
- maîtriser Kubectl proxy
- administrer les Nodes (nœuds)
- isoler vos applications avec les Namespaces et les contextes

Les objets Kubernetes
- déployer les Pods
- identifier les pods avec les labels et les selectors
- spécifier ReplicationController
- garantir nos charges de travail avec ReplicaSet
- décrire et contrôler déploiements
- identifier les stratégies de déploiements d’applications
- comprendre les DaemonSets
- gérer nos application avec état avec StatefulSet
- configurer des volumes

Les services
- identifier les types de services
- configurer Kube-proxy
- mettre en place les Traffic Policies (Atelier)
- Comprendre les Services Discoveries

Le déploiement d’applications (Ateliers)
- déployer de façon graphique à l’aide du Dashboard
- déployer une application depuis ses sources (sous k3s)
- déployer une application avec l’outil Helm
- déployer une application avec kustomize
- déployer une application avec un outil de Configuration Management (Ansible)
- déployer d’une application avec un outil de CICD (ArgoCD)

La sécurisation du cluster Kubernetes
- utiliser les autorités de certification
- certifier l’authentification d’accès à l’API
- comprendre le controle d’accès avec RBAC
- mettre en place les Security Contexts & Pod Security Admission

Le monitoring et la traçabilité
- interroger les métriques avec Prometheus
- tracer vos microservices avec Jaeger

Les bonnes pratiques en production
- configurer Liveness & Readiness
- définir des Quota & Limits pour les ressources
- mettre à l’échelle vos charges de travail avec Autoscalling
- executer vos tâches de façon périodique avec les Jobs & Cronjobs