Formation Kubernetes

Orchestrer ses containers avec Kubernetes

Durée 3 jours
Prix(HT) : 1690 €
KUBERNETES

Prochaines sessions

29 janvier 2018
Christophe FURMANIAK
Paris
29 janvier 2018
Thibaut Havel
Rennes
5 février 2018
Paris

Description

Déployer ses applications sous la forme de containers/conteneurs est de plus en plus courant, notamment dans les architectures techniques prônant l’organisation d’une application comme un ensemble de services collaborant entre eux. Afin de mieux répondre aux problématiques de répartition de charge et de tolérance à la panne des applications déployées sous forme de containers, l’utilisation d’un outil d’orchestration est fortement conseillée afin d’éviter de réinventer la roue.

Kubernetes est l’un des produits les plus cités et utilisés dans ce domaine, sa réputation et sa maturité s’appuient sur l’expérience et le savoir faire de Google en matière de containers. Cette formation a pour but de découvrir comment l’utiliser tout en comprenant quelles sont les contraintes associées à son utilisation, notamment sur la façon de développer les applications qui y seront déployées.

Objectifs

  • déployer des applications simples (stateless et stateful)
  • déployer une application composée de plusieurs services
  • exposer une application vers l'extérieur de l’infrastructure Kubernetes
  • apprendre à gérer les données manipulées par l’application dans l’infrastructure Kubernetes
  • mettre à jour une application déjà déployée dans Kubernetes
  • parcourir les bonnes pratiques associées au développement d’une application déployée dans Kubernetes

Pré-requis : 

  • Connaissances des technologies de conteneurisation, notamment Docker

Public : 

  • Développeurs
  • Lead Tech
  • Architectes
  • Opérateurs

Pédagogie : 

50% théorie 50% pratique

Programme

Contexte

  • Rappels sur les containers
  • Containers sans orchestration
  • Fonctionnalités d'orchestration
  • Orchestrateurs du marché
  • Kubernetes
  • Distributions Kubernetes

Premiers pas avec Kubernetes

  • Installation de Kubernetes en local avec mini kube
  • Dashboard, CLI et API
  • Démarrer un container
  • Exposer l'application démarrée

Les pods

  • Modèle/Concept du pod
  • Descripteur yaml et json
  • Organisation des pods avec les labels, les sélecteurs et les namespaces
  • Cycle de vie des pods

ReplicaSets

  • HealthChecks
  • ReplicationControllers vs ReplicatSets
  • DaemonSets
  • Jobs

Services

  • A quoi répond le concept des services
  • Exposer en interne du cluster
  • Exposer vers l'extérieur : Ingress vs LoadBalancer
  • Le concept du "readiness"
  • Les services headless

Volumes

  • Partage simple de données entre 2 containers d'un même pod
  • Accéder au fs d'un noeud du cluster
  • Persistent Volumes et Persistent Volumes Claims

Configuration et secrets

  • Paramètres de la ligne de commande des containers
  • Variables d'environnements
  • ConfigMaps
  • Secrets

Stratégies de déploiement

  • Mise à disposition d'une nouvelle version d'un pod
  • Rolling Update

Stateful sets

  • Déployer une application clusterisée

Architecture et composants

  • Etcd
  • api server
  • scheduler
  • kubelet
  • controller
  • kube-proxy

Fonctionnalités nécessaires en entreprise

  • RBAC
  • gestion des ressources
  • auto-scaling
  • Fédération

Développement d'applications compatibles

  • Contraintes lors du développement
  • Accéder aux metadata du cluster
  • Comment tester ses applications