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 : nous pouvons proposer des solutions de compensation de nos prestations en adaptant les moyens pédagogiques, techniques et d’encadrement (les précisions).
Taux de satisfaction 2i2L : 96,34 % des stagiaires sont 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