SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
Kubernetes
Pourquoi et comment ?
Qui sommes nous ?
2
@geromeegron@jbclaramonte
Agenda
Pourquoi ?
Orchestration, scheduler, cluster management …
Comment ?
Concepts
Spécificités
Cas Pratique
3
4
Orchestration,
Scheduler,
Cluster management, … ?
5
Cela reste intuitif
Containers sur une machine
Apache Tomcat Postgres
6
Mais quand on passe à plusieurs serveurs on comprend vite qu’il
faut un outil pour pouvoir garder le contrôle
Containers sur plusieurs machines
Apache
Tomcat
Tomcat
Postgres
Redis
Tomcat
Redis
Et si ...
… un container s’arrête … ?
… on veut scaler facilement
… ?
Comment nos applications
connaissent les endpoints des
services appellés ?
Comment se passe la
persistance des données de
certains de mes containers
12
En fait ...
13
Vous avez besoin d’un …
Orchestrateur
(de containers)
14
Orchestration
=
Cluster Management
+
Container Scheduling
15
Cluster Management ?
16
Cluster Management
Cluster
Manager
17
Cluster Management
A
Cluster
Manager
18
Cluster Management
Cluster
Manager
AA
j’ai un nouveau serveur dans
mon cluster
19
Container Scheduling ?
20
Container Scheduling
B
A
C
Scheduler
21
Deploy
22
Container Scheduling
B
A
C
Scheduler
deploy
23
Container Scheduling
B
A
C
Scheduler
deploy
24
Scale
25
Container Scheduling
B
A
C
Scheduler
scale
26
Container Scheduling
B
A
C
Scheduler
scale
27
Health check
28
Container Scheduling
B
A
C
Scheduler
29
Container Scheduling
B
A
C
Scheduler
30
Scheduler Classification
Monolithic
un cluster
manager
+
un scheduler
Google Borg
31
Two Level
un cluster
manager
+
plusieurs
scheduler
Mesos Marathon
Shared State
plusieurs
schedulers ”
autonomes”
Omega, Kubernetes
Historique
Kubernetes
33
2004 : Google Borg
2006 : Google release les cgroups dans linux
2009 ? : Google Omega
2011 : Mesos
2014 : Google “open source” Kubernetes
2015 : Kubernetes V1.0
34
Concepts
Kubernetes
36
Master
Node
Node
Cluster
Kubelet
Kubelet
37
Node
Kubelet
Docker
Pod Pod Pod
38
Pod
● Plus petite unité logique du cluster
● Englobe un ou plusieurs conteneur(s) partageant un même
contexte (adresse IP, volumes)
● Unité pouvant être répliquée
● Lié à un node
● Existence temporaire
Replication controller
● Superviseur des pods à travers le cluster
● Se base sur un template de pod
● Son rôle est de s’assurer qu’un certain nombre de pods sont
actuellement en vie
● Ce n’est pas un load balancer!
39
Service
● Point d’accès à un pod ou à un
ensemble de pods
● N’est pas lié au Replication
Controller
● Load balancer
40
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": "my-service"
},
"spec": {
"selector": {
"app": "MyApp"
},
"ports": [
{
"protocol": "TCP",
"port": 80,
"targetPort": 9376
}
]
}
}
41
Service [name=my-service]
{
selector: MyApp
}
Pod 1
{
label: MyApp
}
Pod 2
{
label: MyApp
}
En résumé
● Node / Master
● Pods
● Replication Controller
● Service
42
Spécificités
Kubernetes
Appel du service intra-cluster
$client = new redis_client([
'scheme' => 'tcp',
'host' => 'my-service',
'port' => 80,
]);
44
Et de l’extérieur?
45
Lors de la configuration d’un service, un champ type est à
configurer:
● cluster IP (par défaut et non accéssible de l’extérieur)
● node port
● load balancer
Node
Node
8888
8888
Pod
Pod
46
Composition du master
● Expose une API REST
● Replication controller
● Scheduler
● etcd
● Node controller
47
48
Node controller
● S’occupe de vérifier le statut des nodes
● N’est pas capable de provisionner les nodes
● Ajoute les nodes qui sont configurés au cluster
● Supporte jusqu’à 100 noeuds (objectifs: 1000 pour 2016)
Configuration d’un node
● Kubelet
● Kube-proxy
● Docker
● Flannel (ou autre surcouche réseau)
49
Health checking
Trois types:
● HTTP Health checks
● Container exec
● TCP Socket
50
Volume
● Cycle de vie lié à celui du pod le contenant, selon le type
● Un pod peut être lié à plusieurs volumes
● Plusieurs types de volumes sont disponibles:
○ emptyDir
○ gcePersistentDisk
○ awsElasticBlockStore
○ nfs
○ gitRepo
○ secret
○ etc ...
51
Comment déployer un cluster?
● En local
○ Vagrant
○ Docker
○ Cluster en local
● Solution hôte
○ Google Container Engine
● Solution Cloud
○ GCE
○ AWS
○ Azure
● Autres
52
Cas pratique
Kubernetes
Comment déployer mon application ?
Nous allons déployer une application constitué de:
● Un master redis
● Deux slaves redis
● Trois frontends accessibles de l’extérieur
54
55
Redis Master
Redis Slave
Frontend
Frontend
Frontend
Load Balancer
Redis Slave
56
Pod
Redis Master
Replication
Controller
57
Pod
Redis Master
Replication
Controller
Service
Redis Master
58
Pod
Redis Master
Replication
Controller
Service
Redis Master
Pod
Redis Slave
Pod
Redis Slave
Replication
Controller
59
Pod
Redis Master
Replication
Controller
Service
Redis Master
Service
Redis Slave
Pod
Redis Slave
Pod
Redis Slave
Replication
Controller
60
Pod
Redis Master
Replication
Controller
Service
Redis Master
Service
Redis Slave
Pod
Redis Slave
Pod
Redis Slave
Replication
Controller
Pod
Frontend
Pod
Frontend
Pod
Frontend
Replication
Controller
61
Pod
Redis Master
Replication
Controller
Service
Redis Master
Service
Redis Slave
Pod
Redis Slave
Pod
Redis Slave
Replication
Controller
Pod
Frontend
Pod
Frontend
Pod
Frontend
Replication
Controller
Service
Frontend en
mode load
balancer
Comment puis-je monitorer mon cluster?
62
Master
Node
Pod
Pod
Node
Heapster
Kubelet
Kubelet
cAdvisor
cAdvisor
Storage
Backend
Conclusion
Kubernetes
Conclusion
● Un projet stabilisé pour la V1
● Amélioration de la documentation, mais peut encore mieux
faire
● Beaucoup de choses à venir
○ provisionning de node
○ migration de pod
● Cherche à être totalement adaptable
64
Questions / Réponses
Kubernetes
Merci
Kubernetes

Contenu connexe

Tendances

Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionEric Gustafson
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료Opennaru, inc.
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesThe {code} Team
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesMichal Cwienczek
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesRishabh Indoria
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Advanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioAdvanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioCloudOps2005
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsStephane Woillez
 

Tendances (20)

Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Everything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in KubernetesEverything You Need To Know About Persistent Storage in Kubernetes
Everything You Need To Know About Persistent Storage in Kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Advanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and IstioAdvanced Deployment Strategies with Kubernetes and Istio
Advanced Deployment Strategies with Kubernetes and Istio
 
Intro to docker
Intro to dockerIntro to docker
Intro to docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
Sw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applicationsSw 100 fr docker conteneurisation des applications
Sw 100 fr docker conteneurisation des applications
 

Similaire à kubernetes, pourquoi et comment

Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019Jean-Baptiste Claramonte
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...Publicis Sapient Engineering
 
Optimisation LAMP
Optimisation LAMPOptimisation LAMP
Optimisation LAMPcyruss666
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Duyhai Doan
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Sébastien Prunier
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésRomain Hardouin
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisseXavierPestel
 
RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introductionsabrine_hamdi
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm
 
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...NinaSAMMUT
 

Similaire à kubernetes, pourquoi et comment (20)

Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019Construire un data lake managé - GDG Paris - Juin 2019
Construire un data lake managé - GDG Paris - Juin 2019
 
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
XebiCon'17 : Monitoring et métrologie pour les conteneurs - Jean-Pascal Thie...
 
Optimisation LAMP
Optimisation LAMPOptimisation LAMP
Optimisation LAMP
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
Pourquoi Terraform n'est pas le bon outil pour les déploiements automatisés d...
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
Poitou Charentes JUG - Traçabilité dans une architecture distribuée avec Node...
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisse
 
Meetup PM2 @delicious-insights
Meetup PM2 @delicious-insightsMeetup PM2 @delicious-insights
Meetup PM2 @delicious-insights
 
RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...
 
I le langage java d'una manière avancée introduction
I  le langage java d'una manière avancée introductionI  le langage java d'una manière avancée introduction
I le langage java d'una manière avancée introduction
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et Configuration
 
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...
UE 2 PROJET - GROUPE MENANT--FERRY Th‚o, DO Alexandre, NADJAR Matt et Massi...
 

Plus de Jean-Baptiste Claramonte

Plus de Jean-Baptiste Claramonte (6)

Hands on drone challenge - xebicon'18
Hands on  drone challenge - xebicon'18Hands on  drone challenge - xebicon'18
Hands on drone challenge - xebicon'18
 
Introduction à Unikernel (Breizhcamp 2017)
Introduction à Unikernel (Breizhcamp 2017)Introduction à Unikernel (Breizhcamp 2017)
Introduction à Unikernel (Breizhcamp 2017)
 
Kubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration DockerKubernetes University, Cap sur l’orchestration Docker
Kubernetes University, Cap sur l’orchestration Docker
 
Unikernel Xebicon 2016
Unikernel Xebicon 2016Unikernel Xebicon 2016
Unikernel Xebicon 2016
 
Ecosysteme mesos university - devoxx france - 8 avril2015
Ecosysteme   mesos university - devoxx france - 8 avril2015Ecosysteme   mesos university - devoxx france - 8 avril2015
Ecosysteme mesos university - devoxx france - 8 avril2015
 
Google Compute Engine
Google Compute EngineGoogle Compute Engine
Google Compute Engine
 

kubernetes, pourquoi et comment