SlideShare une entreprise Scribd logo
1  sur  229
Télécharger pour lire hors ligne
#DevoxxFR
Kubernetes University
Cap sur l’orchestration !
Cédric Hauber @cedboss
Gérôme Egron @geromeegron
Jean-Baptiste Claramonte @jbclaramonte
1
#DevoxxFR 2
#DevoxxFR
Présentation des speakers
3
#DevoxxFR
Gérôme
@geromeegron
4
#DevoxxFR
Rejoignez-nous ☺
recrutement@xebia.fr
blog.xebia.fr
5
#DevoxxFR
Jean-Baptiste
@jbclaramonte
6
#DevoxxFR
Cedric
@cedboss
7
#DevoxxFR
Echangeons !
jobs@wescale.fr
blog.wescale.fr
8
Cloud Designer Cloud Builder Cloud Runner
#DevoxxFR
Mais pourquoi Docker ?
9
#DevoxxFR
Il y a eu du
changement
10
#DevoxxFR
Product
Backlog
Tâches du sprint
Planification de
sprint
Revue de
sprint
Sprint
2 à 4
semaines
Produit enrichi
Les équipes sont devenues agiles
11
#DevoxxFR
Backend
DB
Frontend
Les architectures micro-services se sont répandues
12
#DevoxxFR
Backend
DB
Frontend
Gateway
DB
Frontend
Module 1 Module 2 Module 3
Les architectures micro-services se sont répandues
13
#DevoxxFR
Agilité Augmentation du nombre de livraisons
Micro-
service
Augmentation du nombre de modules à
livrer
14
#DevoxxFR
Amélioration des livraisons
15
#DevoxxFR
Scalabilité
16
#DevoxxFR
Et Docker est arrivé
17
#DevoxxFR
VM vs conteneurs
Guest
OS
Bins
/Libs
App
#1
Hyperviseur
Host OS
Server
Guest
OS
Bins
/Libs
App
#1
Guest
OS
Bins
/Libs
App
#1
Bins
/Libs
App
#1
Host OS
Server
Bins
/Libs
App
#1
Bins
/Libs
App
#1
Docker engine
VM Container
18
#DevoxxFR
Raison de son succès
19
#DevoxxFR
Livraison
● Lorsque je livre mon application, je la livre avec
son contexte d’exécution
● Je peux placer mon conteneur sur n’importe
quelle machine où Docker est installé
20
#DevoxxFR
Démo
21
#DevoxxFR
Les premiers
problèmes
22
#DevoxxFR
Application découpée en plusieurs
conteneurs
Application Rethink db
23
#DevoxxFR
En local
● Partage du réseau hôte
● Utilisation de l’option Link de Docker
● Utilisation de l’API X-Networking
24
#DevoxxFR
Démo
25
#DevoxxFR
Sur un cluster ?
Nouvelles problématiques :
- Comment savoir où se trouvent les conteneurs
- Que faire si un noeud tombe
- Comment correctement allouer les ressources
26
#DevoxxFR
Comment les
résoudre ?
27
Orchestrateur
28
#DevoxxFR
- Fleet
- Swarm
- Cattle (Rancher)
- Mesos
- Kubernetes
Lequel choisir ?
29
#DevoxxFR
Fleet
+
- Partie intégrante de CoreOS
- Repose sur Etcd
- Permet de maintenir des services systemd dans le cluster
-
- Orchestrateur bas niveau → Fonctions limitées
30
#DevoxxFR
Swarm
+
- Créé par Docker pour Docker
- Repose sur Consul
- Très simple d’utilisation
-
- Forte adhérence à l’API Docker
- Pas de Health-Check, pas de LoadBalancing...
31
#DevoxxFR
Rancher
+
- Image minimaliste
- OS orienté tout-conteneur
- Interface de management
- Kubernetes / Swarm / Cattle out of the box
-
- Installation parfois compliquée
- Supporte uniquement Docker
32
#DevoxxFR
Kubernetes
+
- Profite du savoir-faire de Google en matière de Conteneurs
- Repose sur Etcd
- Compatible avec Docker & Rocket
- Une communauté très établie
- Regorge de fonctionnalités
-
- Mise en place parfois ardue
33
#DevoxxFR
Mesos - Marathon
+
- Déploiement rapide sur AWS / GCP / Azure
- A fait ses preuves
- Supporte plusieurs frameworks
-
- Une couche supplémentaire qui n’est pas nécessaire
dans 90% des cas
34
“When you are not using Kubernetes to orchestrate Docker containers”
Chris Baun35
#DevoxxFR
Pourquoi Kubernetes
● La solution la plus aboutie
● Preuve d’une expérience de plus de 10 ans
● Grosse communauté
● Opinionated
● Cloud-Provider Aware :)
● Production-Ready !
● C’est super cool !
36
#DevoxxFR
Démo
37
#DevoxxFR
Cluster Kubernetes
38
#DevoxxFR 39
#DevoxxFR
node
(physical or virtual
machine)
cluster
node
(physical or virtual
machine)
node
(physical or virtual
machine)
node
(physical or virtual
machine)
node
(physical or virtual
machine)
node
(physical or virtual
machine)
40
#DevoxxFR
node
(physical or virtual
machine)
cluster
Master
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
41
#DevoxxFR
Demo
42
#DevoxxFR
Kubernetes Binaries
43
#DevoxxFR
node (Master)
API-Server
Scheduler
Controller-Manager
Etcd
Kubernetes Binaries
44
#DevoxxFR
Etcd
● Développé par CoreOs
● BDD Clé/Valeur distribuée
● Stocke l’état du cluster Kubernetes
45
#DevoxxFR
API-Server
● Point d’interface avec le cluster
○ CLI: kubectl
○ REST API
● Stateless
○ Utilise etcd comme stockage
46
#DevoxxFR
API-Server
API-Server
SchedulerController-Manager
kubectl / http client
node (Master) node (Worker)
47
#DevoxxFR
Scheduler
● Vision globale des ressources du
cluster
● Distribue les conteneurs
d’applications dans le cluster
48
#DevoxxFR
Scheduler
API-Server
SchedulerController-Manager
node (Master) node (Worker)
Pod
49
#DevoxxFR
Controller-Manager
● C’est la boucle de contrôle pour
toutes les ressources Kubernetes
● Assure l’état du cluster
50
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Kubernetes Binaries
51
#DevoxxFR
Kubelet
● Agent principal sur chaque Node
● Reçoit les demandes de création
de Pod
● Monte les Volumes des Pods
● Lance les conteneurs
● Rapporte l’état des
pods/conteneurs à l’API-Server
52
#DevoxxFR
Kubelet
API-Server
Kubelet
Kube-Proxy
node (Master) node (Worker)
Pod
53
#DevoxxFR
Kube-Proxy
● Observe l’ajout/suppression de
Services et Endpoints
● Met à jour iptables
54
#DevoxxFR
API-Server
Kubelet
Kube-Proxy
node (Master) node (Worker)
watch
Kube-Proxy
55
#DevoxxFR
Démo
56
#DevoxxFR
Pod
57
#DevoxxFR
Pod
● Plus petite unité logique
● Encapsule un ou plusieurs conteneurs
○ Partage de contexte
● Unité pouvant être répliquée
● Lié à un node
● Existence temporaire
58
#DevoxxFR
IP
node Worker
kubernetes binaries
Virtual IP
Pod
Virtual IP
Pod
59
#DevoxxFR
Labels
60
#DevoxxFR
Labels
(everywhere)
61
#DevoxxFR
Labels
• Pairs clé/valeur
• Attachable à tous les éléments de kubernetes
• Donner du sens aux objets de kubernetes
62
#DevoxxFR
node node node
node node node
disk: ssddisk: ssd
disk: ssd
gpu: true
disk: ssd
gpu: true
disk: ssd
63
#DevoxxFR
node Worker
Pod
Pod
role: database
role: webfront
fwk: angular2
pods can have labels
64
#DevoxxFR
kubectl get pods -l release=stable, tier=frontend
kubectl get pods -l release in stable, tier in (frontend)’
kubectl get pods -l release in (stable, canary)’
kubectl get pods -l ‘release notin (stable)
Requêtage évolué
65
#DevoxxFR
Replication controller
66
#DevoxxFR
node
Worker
Pod
role: database
selector
Replication
controller
template
replicas: 2
Pod
role: database
67
#DevoxxFR
node
Worker
Pod
role: database
selector
Replication
controller
template
replicas: 2
Pod
role: database
68
#DevoxxFR
node
Worker
Pod
role: database
selector
Replication
controller
template
replicas: 2
69
#DevoxxFR
node
Worker
Pod
role: database
selector
Replication
controller
template
replicas: 2
Pod
role: database
70
#DevoxxFR
node
Worker
Pod
role: database
selector
Replication
controller
template
replicas: 2
Pod
role: database
71
#DevoxxFR
Replica Sets
72
#DevoxxFR
node Worker
Pod
Pod
Create
&
healthcheck
Replica
Set
73
#DevoxxFR
Service
74
#DevoxxFR
node Worker
Pod
Load balancing Service
role: database
Pod
role: database
75
node Worker node Worker
Pod
role: application
#DevoxxFR
Démo
76
#DevoxxFR 77
node Worker
Pod
Service
rethinkdbdb: rethinkdb
role: replica
node Worker
Service
todo-app
Pod
app: todo
#DevoxxFR
La communication
inter-noeud
78
#DevoxxFR
Plusieurs solutions
79
- Google Compute Advanced Routing
- Flannel
- OpenVSwitch
- Weave
- Calico
- Romana
#DevoxxFR
node
(physical or virtual
machine)
Master
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
80
#DevoxxFR
node
(physical or virtual
machine)
Flannel
Master
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
node
(physical or virtual
machine)
Worker
81
#DevoxxFR
Pod
82
#DevoxxFR
Virtual IP
Pod
Container
Container
Container
83
#DevoxxFR
Virtual IP
Pod
Container
Container
Container
84
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
85
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
86
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
MAC
Node IP
Container / Pod IP
Packet
Packet Flannel
87
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
MAC
Node IP
Container / Pod IP
Packet
Packet Flannel
88
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
MAC
Node IP
Container / Pod IP
Packet
Packet Flannel
89
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
90
#DevoxxFR
Pod
rethinkdb1
Pod
app2
Pod
rethinkdb2
Pod
app1
10.2.1.2
10.2.1.5
10.2.2.3
10.2.2.2
Docker
10.2.1.1/24
Flannel
10.2.1.0/16
Docker
10.2.2.1/24
Flannel
10.2.2.0/16
Ethernet
192.168.0.100
Ethernet
192.168.0.100
91
#DevoxxFR
Démo
92
#DevoxxFR
Service
93
#DevoxxFR
Service
Problème :
un Pod est éphémère
son adresse IP également
Solution :
le service joue le rôle d’ambassadeur
en fournissant une adresse ip durable
Il joue également le rôle de load balancer
94
#DevoxxFR
Différents types de
Service
• ClusterIP
• NodePort
• LoadBalancer
95
#DevoxxFR
ClusterIP
• Par défaut
• IP Uniquement accessible depuis le cluster
• Virtual IP
96
#DevoxxFR
node Worker
Virt IP
Pod
my-app
node Worker
IPIP
97
#DevoxxFR
node Worker
Virt IP
Pod
my-app
node Worker
IPIP Pod
another-app
98
#DevoxxFR
node Worker
Virt IP
Pod
my-app
node Worker
IPIP Pod
another-app
99
#DevoxxFR
node Worker
Virt IP
Pod
my-app
Virt IPService my-app
node Worker
IPIP
100
#DevoxxFR
node Worker
Virt IP
Pod
my-app
Virt IPService my-app
node Worker
IPIP Pod
another-app
101
#DevoxxFR
node Worker
Virt IP
Pod
my-app
Virt IPService my-app
node Worker
IPIP Pod
another-app
102
#DevoxxFR
HOME=/root
HOSTNAME=another-app-a6nvu-ws5i4
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT=tcp://10.0.0.1:443
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_HOST=10.0.0.1
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP_ADDR=10.0.0.1
KUBERNETES_PORT_443_TCP=tcp://10.0.0.1:443
MY_APP_PORT_80_TCP=tcp://10.0.0.242:80
MY_APP_SERVICE_PORT=80
MY_APP_SERVICE_HOST=10.0.0.242
MY_APP_PORT_80_TCP_PORT=80
MY_APP_PORT=tcp://10.0.0.242:80
MY_APP_PORT_80_TCP_PROTO=tcp
MY_APP_PORT_80_TCP_ADDR=10.0.0.242
NGINX_VERSION=1.9.14-1~jessie
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
Dans le pod another-app
103
#DevoxxFR
Accès via DNS
• Utilise le addon Kubernetes “SkyDNS”
<service-name>.<namespace>.svc.cluster.local
Ou tout simplement
<service-name>
104
#DevoxxFR
Démo
105
#DevoxxFR
NodePort
• Kubernetes alloue un port :
• [30 000 - 32 767]
• Tous les Nodes du cluster vont exposer ce port
• Kubernetes expose alors le service :
• <Node IP>:<NodePort>
106
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node WorkerLabel selector
107
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node Worker
IP:<NodePort>IP:<NodePort>
Label selector
108
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node Worker
IP:<NodePort>IP:<NodePort>
Label selector
109
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node Worker
IP:<NodePort>IP:<NodePort>
Label selector
110
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node Worker
IP:<NodePort>IP:<NodePort>
Label selector
111
#DevoxxFR
node Worker
Pod
my-app
Service my-app
node Worker
IP:<NodePort>IP:<NodePort>
Label selector
112
#DevoxxFR
Différences ClusterIP / NodePort
# type=NodePort
Name: my-app-node-port
Namespace: default
Labels: run=my-app
Selector: run=my-app
Type: NodePort
IP: 10.0.0.246
Port: <unset> 80/TCP
NodePort: <unset> 30084/TCP
Endpoints: 172.17.0.2:80
Session Affinity: None
# type=ClusterIP
Name: my-app
Namespace: default
Labels: run=my-app
Selector: run=my-app
Type: ClusterIP
IP: 10.0.0.242
Port: <unset> 80/TCP
Endpoints: 172.17.0.2:80
Session Affinity: None
113
#DevoxxFR
Service load balancer
• Fonctionne uniquement pour certains Cloud Providers
• GCP
• AWS
• RackSpace
• OpenStack
114
#DevoxxFR
nodeWorker
Pod
my-app
Cluster kubernetes
Cloud provider
nodeWorker
Pod
my-app
nodeWorker
Pod
my-app
Load balancer
115
#DevoxxFR
Démo
116
#DevoxxFR
Deployments
- Permet de déployer facilement des applications
- Supporte plusieurs types de mises à jour :
- Rolling Update
- Replace
- A/B Deployment
- Il n’a pas vocation à remplacer le ReplicationController
117
#DevoxxFR
Rolling Update
● Une application sera mise à jour de multiples fois au
cours de son existence
● Cette procédure de mise à jour doit donc être simple et
automatisée
● C’est d’autant plus vrai dans un cluster
● Kubernetes a pensé à vous
118
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1
119
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1 Pod v.2
120
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.2
121
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1 Pod v.2
node Worker
Pod v.2
122
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.2
node Worker
Pod v.2
123
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Pod v.2
Replica
Set
node Worker
Pod v.2
node Worker
Pod v.2
124
#DevoxxFR
node Worker
Replica
Set
Pod v.2
Replica
Set
node Worker
Pod v.2
node Worker
Pod v.2
125
#DevoxxFR
node Worker
Pod v.2
Replica
Set
node Worker
Pod v.2
node Worker
Pod v.2
126
#DevoxxFR
Démo
127
#DevoxxFR
A/B Deployment
● Nous déployons une nouvelle version de l’application
● Une fois testée, nous redirigons le trafic sur celle-ci
128
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
129
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1 Pod v.2
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v2
130
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1 Pod v.2Pod v.2
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v2
app: todo
version: v2
131
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1 Pod v.2Pod v.2Pod v.2
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
132
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1 Pod v.2Pod v.2Pod v.2
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
133
#DevoxxFR
node Worker
Replica
Set
node Worker node Worker
Pod v.2Pod v.2Pod v.2
Service
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
134
#DevoxxFR
Démo
135
#DevoxxFR
Replace
● L’ancienne version de l’application est supprimée
● La nouvelle version nest déployée
136
#DevoxxFR
node Worker
Pod v.1
Replica
Set
Replica
Set
node Worker
Pod v.1
node Worker
Pod v.1
Service
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
app: todo
version: v1
137
#DevoxxFR
node Worker
Replica
Set
node Worker node Worker
Pod v.2
Service
app: todo
version: v2
app: todo
version: v2
138
#DevoxxFR
node Worker
Replica
Set
node Worker node Worker
Pod v.2Pod v.2
Service
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
139
#DevoxxFR
node Worker
Replica
Set
node Worker node Worker
Pod v.2Pod v.2Pod v.2
Service
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
app: todo
version: v2
140
#DevoxxFR
Démo
141
#DevoxxFR
Health checking
142
#DevoxxFR
Cycle de vie
Pending
143
#DevoxxFR
Cycle de vie
Pending Running
144
#DevoxxFR
Cycle de vie
Pending Running
Failed
Succeeded
145
#DevoxxFR
Cycle de vie
Pending Running
Failed
Succeeded
Unknown
146
#DevoxxFR
Connaître l’état d’un conteneur
Rôle de l’agent Kubelet qui est présent sur chacun des nodes.
Est-ce que mon conteneur est prêt ?
→ Readiness probe
Est-ce que mon conteneur est vivant ?
→ Liveness probe
147
#DevoxxFR
Handlers disponibles
- HTTP Health checks
- Container exec
- TCP Socket
148
#DevoxxFR
Résultats possibles
- Success
- Failure
- Unknown
149
#DevoxxFR
Et la réaction ?
Readiness échoue → le pod garde son état mais n’est plus accessible
Liveness échoue → dépend de la politique de redémarrage
150
#DevoxxFR
Politique de redémarrage
- Always
- On failure
- Never
151
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
152
running
Conteneur
Restart policy : never
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
153
running
Conteneur
Restart policy : never
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
154
failed
Conteneur
Restart policy : never
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
155
running
Conteneur
Restart policy : Always ou onFailure
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
156
running
Conteneur
Restart policy : Always ou onFailure
#DevoxxFR
node (Worker)
Kube-ProxyKubelet
Docker
Pod
157
running
Conteneur
Restart policy : Always ou onFailure
#DevoxxFR
Volumes
158
#DevoxxFR
Le problème
Les Pods sont éphémères
Quand ils disparaissent leurs données disparaissent également
159
#DevoxxFR
La Solution
Les Volumes
Un Volume permet de créer un point de montage dans le
conteneur d’un pod
160
#DevoxxFR
Plusieurs types de Volumes
● emptyDir
● hostPath
● gitRepo
● Secret
● nfs
● iscsi
● flocker
● glusterfs
● Rbd (Ceph)
● gcePersistentDisk
● awsElasticBlockStore
● azureFileVolume
● persistentVolumeClaim
Sur le Node
Non persistent
161
#DevoxxFR
Plusieurs types de Volumes
● emptyDir
● hostPath
● gitRepo
● Secret
● nfs
● iscsi
● flocker
● glusterfs
● Rbd (Ceph)
● gcePersistentDisk
● awsElasticBlockStore
● azureFileVolume
● persistentVolumeClaim
Sur le Node
Non persistant
Partage Réseau
Persistant
162
#DevoxxFR
Plusieurs types de Volumes
● emptyDir
● hostPath
● gitRepo
● Secret
● nfs
● iscsi
● flocker
● glusterfs
● Rbd (Ceph)
● gcePersistentDisk
● awsElasticBlockStore
● azureFileVolume
● persistentVolumeClaim
Sur le Node
Non persistant
Partage Réseau
Persistant
Accès stockage Cloud Provider
Persistant
163
#DevoxxFR
Plusieurs types de Volumes
● emptyDir
● hostPath
● gitRepo
● Secret
● nfs
● iscsi
● flocker
● glusterfs
● Rbd (Ceph)
● gcePersistentDisk
● awsElasticBlockStore
● azureFileVolume
● persistentVolumeClaim
Sur le Node
Non persistant
Partage Réseau
Persistant
Accès stockage Cloud Provider
Persistant
Représente une demande
d’espace de stockage
164
#DevoxxFR
emptyDir
Répertoire créé sur le host et alloué au conteneur
Survit au crash du conteneur
Peut être associé à de la RAM
Supprimé lors de l’arrêt/déplacement du Pod
A utiliser typiquement comme espace de travail temporaire
165
#DevoxxFR
emptyDir
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
La déclaration
du volume
166
#DevoxxFR
emptyDir
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
La déclaration
du volume
Montage du
volume dans le
conteneur
167
#DevoxxFR
hostPath
Accès à un répertoire spécifique du Node
Suppose que tous les Nodes ont la même arborescence
En général utilisation déconseillée sauf si vous savez ce que
vous faites
168
#DevoxxFR
Secret
- Permettent de stocker des informations sensibles:
- Mot de passe
- Clés SSH
- Information d’authentification
- …
- Stockés en clair dans Etcd
- Ne sont pas cryptés
- Ne sont pas stockés sur les noeuds
169
#DevoxxFR
Secret
$ echo "1f2d1e2e67df" | base64
MWYyZDFlMmU2N2RmCg==
$ echo "admin" | base64
YWRtaW4K
170
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: MWYyZDFlMmU2N2RmCg==
username: YWRtaW4K
#DevoxxFR
Secret
171
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: MWYyZDFlMmU2N2RmCg==
username: YWRtaW4K
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
name: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
volumeMounts:
- name: mysql-secret
mountPath: /etc/mysql
reaOnly: true
volumes:
- name: mysql-secret
secret:
secretName: mysecret
Récupération comme
un Volume
#DevoxxFR
Secret
172
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: MWYyZDFlMmU2N2RmCg==
username: YWRtaW4K
apiVersion: v1
kind: Pod
metadata:
name: mysql
labels:
name: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
Récupération dans des
variables d’environnement
#DevoxxFR
nfs
Permet de monter un partage NFS
Pour pré-charger des données utilisées par le Pod
Pour persister les données au delà de la vie du Pod
173
#DevoxxFR
nfs
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: nfs-redis-storage
mountPath: /data/redis
volumes:
- name: nfs-redis-storage
nfs: 192.168.10.3
path: /export/redis
La déclaration
du volume nfs
174
#DevoxxFR
nfs
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: nfs-redis-storage
mountPath: /data/redis
volumes:
- name: nfs-redis-storage
nfs: 192.168.10.3
path: /exports/redis
La déclaration
du volume
Montage du
volume dans le
conteneur
175
#DevoxxFR
Plusieurs types de Volumes
● emptyDir
● hostPath
● gitRepo
● Secret
● nfs
● iscsi
● flocker
● glusterfs
● Rbd (Ceph)
● gcePersistentDisk
● awsElasticBlockStore
● azureFileVolume
● persistentVolumeClaim
Celui-ci est particulier !
176
#DevoxxFR
persistentVolumeClaim
Permet une abstraction du type de volume utilisé
Sépare l’offre et la demande d’utilisation d’espace
de stockage
177
#DevoxxFR
1. L’admin créee un PV
nfs-pv
NFSStockage Réseau:
Persistent Volume:
Provisionning
178
#DevoxxFR
nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
Provisioning
par l’admin
du cluster de
1 Go
179
#DevoxxFR
nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
Le PV autorise ici la lecture
et l’écriture par un seul
container
180
#DevoxxFR
nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
Possible aussi:
● ReadOnlyMany
● ReadWriteMany
181
#DevoxxFR
my-redis-persistence-volume-claim2. Le Dev
“claims” des PV
nfs-pv
NFSStockage Réseau:
Persistent Volume:
Binding
182
#DevoxxFR
apiVersion: v1
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: my-redis-persistence-volume-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
my-redis-persistence-volume-claim.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
Binding
par un
développeur
ReadWriteOnce
ReadOnlyMany
ReadWriteMany
183
#DevoxxFR
my-redis-persistence-volume-claim
3. Le Dev utilise le claim
dans un pod
nfs-pv
NFSStockage Réseau:
Persistent Volume:
Pod
db
node (Worker) Using
184
#DevoxxFR
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: my-redis-persistence-volume
mountPath: "/data/redis
volumes:
- name: my-redis-persistence-volume
persistentVolumeClaim:
claimName: my-redis-persistence-volume-claim
apiVersion: v1
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name:
my-redis-persistence-volume-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
my-redis-pod.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
185
#DevoxxFR
apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: my-redis-persistence-volume
mountPath: "/data/redis
volumes:
- name: my-redis-persistence-volume
persistentVolumeClaim:
claimName: my-redis-persistence-volume-claim
apiVersion: v1
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name:
my-redis-persistence-volume-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
my-redis-pod.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: 10.20.23.43
path: "/some/path"
Montage
186
#DevoxxFR
my-redis-persistence-volume-claim
4. Le Dev supprime le Pod
et le PVC
nfs-pv
NFSStockage Réseau:
Persistent Volume:
Releasing
Pod
db
node (Worker)
187
#DevoxxFR
Le Persistent Volume passe
à l’état “released”
nfs-pv
NFSStockage Réseau:
Persistent Volume:
node (Worker) Releasing
188
#DevoxxFR
La “reclaim policy” utilisée lors de la création du PV
indique la strategie de remise dans le pool:
Retain : opération manuelle
Recycle : nettoyage auto (rm -rf /thevolume/*)
nfs-pv
NFSStockage Réseau:
Persistent Volume:
node (Worker) Reclaiming
189
#DevoxxFR
PV concernés
● GCEPersistentDisk
● AWSElasticBlockStore
● NFS
● iSCSI
● RBD (Ceph Block Device)
● Glusterfs
● HostPath
190
#DevoxxFR
Namespace
191
#DevoxxFR
A quoi ça sert ?
Différents environnements
Cloisonnement
192
#DevoxxFR
nodePod nodePod node PodPodPod
Node 1 Node 2 Node 3
Namespace A
Namespace B
193
#DevoxxFR
nodePod nodePod node PodPodPod
Node 1 Node 2 Node 3
Namespace A
Namespace B
194
#DevoxxFR
nodePod nodePod node PodPodPod
Node 1 Node 2 Node 3
Namespace A
Namespace B
195
#DevoxxFR
nodePod nodePod node PodPodPod
Node 1 Node 2 Node 3
Namespace A
Namespace B
196
#DevoxxFR
Démo
197
#DevoxxFR
D’autres possibilités de Kubernetes
198
#DevoxxFR
Limiter l’utilisation des ressources
par un Pod
199
#DevoxxFR
Limitations
Limitation du CPU
Limitation de la mémoire
Configuration par conteneur
200
#DevoxxFR
resources
apiVersion: v1
kind: Pod
metadata:
labels:
run: my-nginx
name: my-nginx
namespace: default
spec:
containers:
- image: nginx
name: my-nginx
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
protocol: TCP
201
#DevoxxFR
Horizontal scaling
202
#DevoxxFR
Horizontal scaling
Ajuste automatiquement le nombre de réplicas pour
satisfaire la demande
Utilise l’utilisation de CPU comme mesure pour déterminer
le nombre de réplicas nécessaires
203
#DevoxxFR
Pod
Replica
Set
Pod
Pod
204
Horizontal
Pod
Autoscaler
Scale
#DevoxxFR
Stratégie de
placement des pods
205
#DevoxxFR
• Par défaut : “n’importe où dans le cluster”
• Il est possible d’orienter le scheduler avec
l’attribut
• nodeSelector + l’utilisation des labels
206
#DevoxxFR
apiVersion: v1
kind: Pod
metadata:
labels:
run: my-nginx
name: my-nginx
namespace: default
spec:
containers:
- image: nginx
name: my-nginx
ports:
- containerPort: 80
protocol: TCP
nodeSelector:
disktype: ssd
nodeSelector
207
#DevoxxFR
Daemon Sets
208
#DevoxxFR
Daemon Sets
- S’assure que tous les nodes exécute un Pod définit en
tant que template
- Très utile pour des services de supervision
209
#DevoxxFR
Jobs
210
#DevoxxFR
Jobs
- Lance un ou plusieurs Pods et renvoie le résultat
(success, fail) d’exécution de ceux-ci
- Il nettoie ensuite les Pods et garde en mémoire une
trace des exécutions
211
#DevoxxFR
Je veux tester !
Kubernetes.io
kmachine
Google Container Engine
Open Shift v3
212
#DevoxxFR
Haute disponibilité
213
#DevoxxFR
3 règles
214
- Un cluster Etcd
- Volume durable
- Un master par zone
#DevoxxFR 215
node
Master
Zone A
node
Worker
node
Master
Zone B
node
Worker
node
Master
Zone C
node
Worker
podmaster podmaster podmaster
#DevoxxFR
Kubernetes dans la vraie vie ?
216
#DevoxxFR
Bi-Sam
- Solution BI à destination des fonds d’investissements
- Hébergée chez RackSpace (Openstack)
- Base de données Oracle → Cloud hybride
- Besoin
- Haute disponibilité
- Cloisonnement entre les clients
- Scaling rapide
217
#DevoxxFR
Episode I
Docker, en avant toute !
218
#DevoxxFR
Episode II
CoreOS, Fleet, Etcd → Mes
conteneurs tu protègeras
219
#DevoxxFR
Episode III
Par l’orchestration du vainqueras
220
#DevoxxFR
Episode IV
À mon environnement tu t’adapteras
221
#DevoxxFR
Episode V
Des statistiques et des logs tu
m’enseigneras
222
#DevoxxFR
Episode VI
À la production tu survivras
223
#DevoxxFR
Démos raspberry
224
#DevoxxFR 225
#DevoxxFR
#DevoxxFR 227
Disclaimer
#DevoxxFR
Questions ?
228
#DevoxxFR
Merci
229

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
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Janakiram MSV
 
Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaEdureka!
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18CodeOps Technologies LLP
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
How Kubernetes scheduler works
How Kubernetes scheduler worksHow Kubernetes scheduler works
How Kubernetes scheduler worksHimani Agrawal
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 
[FR] Présentatation d'Ansible
[FR] Présentatation d'Ansible [FR] Présentatation d'Ansible
[FR] Présentatation d'Ansible Armand Guio
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoOpsta
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance CachingNGINX, Inc.
 
Using Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesUsing Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesHimani Agrawal
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on KubernetesOpsta
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionEric Gustafson
 

Tendances (20)

Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Challenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise DeploymentChallenges of Kubernetes On-premise Deployment
Challenges of Kubernetes On-premise Deployment
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets
 
Shell Scripting Tutorial | Edureka
Shell Scripting Tutorial | EdurekaShell Scripting Tutorial | Edureka
Shell Scripting Tutorial | Edureka
 
Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18Kubernetes Networking - Sreenivas Makam - Google - CC18
Kubernetes Networking - Sreenivas Makam - Google - CC18
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
How Kubernetes scheduler works
How Kubernetes scheduler worksHow Kubernetes scheduler works
How Kubernetes scheduler works
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
[FR] Présentatation d'Ansible
[FR] Présentatation d'Ansible [FR] Présentatation d'Ansible
[FR] Présentatation d'Ansible
 
Kubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with DemoKubernetes Secrets Management on Production with Demo
Kubernetes Secrets Management on Production with Demo
 
NGINX High-performance Caching
NGINX High-performance CachingNGINX High-performance Caching
NGINX High-performance Caching
 
Using Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal KubernetesUsing Libvirt with Cluster API to manage baremetal Kubernetes
Using Libvirt with Cluster API to manage baremetal Kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Deploy Application on Kubernetes
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 

En vedette

Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveKen Thompson
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes APIStefan Schimanski
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersArun Gupta
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionStefan Schimanski
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with KubernetesCarlos Sanchez
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architectureJanakiram MSV
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...Brian Grant
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Brian Brazil
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupStefan Schimanski
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetesrajdeep
 
Kubernetes dealing with storage and persistence
Kubernetes  dealing with storage and persistenceKubernetes  dealing with storage and persistence
Kubernetes dealing with storage and persistenceJanakiram MSV
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesArun Gupta
 
Extend and build on Kubernetes
Extend and build on KubernetesExtend and build on Kubernetes
Extend and build on KubernetesStefan Schimanski
 

En vedette (15)

Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes API
 
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developersDocker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architecture
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
Monitoring Kubernetes with Prometheus (Kubernetes Ireland, 2016)
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes dealing with storage and persistence
Kubernetes  dealing with storage and persistenceKubernetes  dealing with storage and persistence
Kubernetes dealing with storage and persistence
 
Package your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and KubernetesPackage your Java EE Application using Docker and Kubernetes
Package your Java EE Application using Docker and Kubernetes
 
Extend and build on Kubernetes
Extend and build on KubernetesExtend and build on Kubernetes
Extend and build on Kubernetes
 

Similaire à Kubernetes University, Cap sur l’orchestration Docker

Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Publicis Sapient Engineering
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...Publicis Sapient Engineering
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...AZUG FR
 
Gab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureGab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureVincent Thavonekham-Pro
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueAZUG FR
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxAnisSalhi3
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Adrien Blind
 
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Microsoft
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Publicis Sapient Engineering
 
Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Julia Mateo
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0Michel HUBERT
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...AbdellahELMAMOUN
 

Similaire à Kubernetes University, Cap sur l’orchestration Docker (20)

Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services  Par Al...
XebiCon'16 : Choisissez votre style avec Docker & Amazon Web Services Par Al...
 
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016
 
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
GAB 2017 PARIS - Docker sur Azure Container Services et DCOS par Michaël FERY...
 
Gab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur AzureGab2015 Jean-Marie Crommen Docker sur Azure
Gab2015 Jean-Marie Crommen Docker sur Azure
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et DerueGab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptxJFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
JFTL-2018-Comment-mettre-en-place-des-plateformes-de-test-gr__ce-__-Docker.pptx
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...Docker, une alternative aux machines virtuelles pour déployer ses services .N...
Docker, une alternative aux machines virtuelles pour déployer ses services .N...
 
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Architecture microservices hautement disponible au...
 
Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016Workshop mesos docker devoxx fr 2016
Workshop mesos docker devoxx fr 2016
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
5390997 Support formation : Construire et administrer vos conteneurs avec Doc...
 

Plus de Jean-Baptiste Claramonte

Plus de Jean-Baptiste Claramonte (6)

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
 
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)
 
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 University, Cap sur l’orchestration Docker