SlideShare une entreprise Scribd logo
OpenShift en production
7pièges à éviter
Eloïse Faure
Senior Consultant
@faure_eloise
Akram Ben Aissi
Cloud Architect
@akrambenaissi
PARIS CONTAINER DAY 20172
OpenShifteur depuis le début
Aide les clients à mettre en place OpenShift
Conseil sur les choix d'architecture
blog.akrambenaissi.com
Akram Ben Aissi
Architecte Cloud @ Red Hat
PARIS CONTAINER DAY 20173
OpenShifteuse
Spécialisée dans la mise en place de cluster
à coup de marteau !
Férue d’Intégration Continue
Développeuse Java repentie
Eloïse Faure
Consultante Senior @ Red Hat
PARIS CONTAINER DAY 20174
Anticiper les problématiques d'architecture
Disposer de ressources suffisantes
Réfléchir à l'exploitation
Monitorer
Pourquoi ce talk ?
Vous éviter d’essuyer les plâtres
Sous-estimer l'architecture
RED HAT CONSULTING
Solution de PaaS
S'appuie sur Docker et Kubernetes et ajoute....
● Une couche de routage
● Un outillage d'intégration continue pour containers
● Un ensemble de template de projets Open Source
6
C’est quoi OpenShift ?
PARIS CONTAINER DAY 20177
En théorie
PARIS CONTAINER DAY 20178
En super-théorie
PARIS CONTAINER DAY 20179
En pratique
Quelques gotchas:
● Scalabilité de la plate-forme
● VIP
● DMZ (flux SDN bloqués)
● Multi-routeur (par zone)
● Multi-datacenter (minimum 3)
PARIS CONTAINER DAY 2017
1
0
Scalabilité etcd
La règle de 3
Minimum pour la HA : 3
Nombre impair
Sur 2 Data Center :
● 1 DC avec 2 etcd actif
● 1 DC avec 1 etcd actif et 1 passif
● 1 procédure de DRP
PARIS CONTAINER DAY 2017
1
1
Quelques anecdotes
Problèmes récurrents avec les VIP
● ils ne veulent en faire qu'à leur tête
● Ils bloquent parfois le trafic derrière eux
Deux exemples réels: Stonegate et Azure LB
Contournements:
● /etc/hosts
● Policy Based Routing
PARIS CONTAINER DAY 2017
1
2
Quelques anecdotes
Multi cluster
Cluster OpenShift
PARIS CONTAINER DAY 2017
1
3
Quelques anecdotes
Cluster Intranet
Cluster Internet
Cluster Extranet
Multi cluster
PARIS CONTAINER DAY 2017
1
4
Quelques anecdotes
Cluster Extranet
Finance
Cluster Intranet
Finance
Cluster Internet
Cluster Extranet
RH
Cluster Extranet
Support
Cluster Intranet
Support
Cluster Intranet
RH
Multi cluster
PARIS CONTAINER DAY 2017
1
5
Quelques anecdotes
Cluster Extranet
Finance - C2
Cluster Intranet
Finance
Cluster Internet
Cluster Extranet
RH - C2
Cluster Extranet
Support - C2
Cluster Intranet
Support
Cluster Intranet
RH
Cluster Extranet
RH - C1
Cluster Extranet
Support - C 1
Cluster Extranet
Finance - C1
Multi cluster
Ne pas prévoir le bon stockage
PARIS CONTAINER DAY 2017
1
7
Drivers de stockage pour Docker
Stockage supporté pour OpenShift : device
mapper+thinpool
Device mapper + loopback (défaut sur docker) et
AUFS peu performants et non supportés
Overlay FS dans le futur
● Meilleures performances: Cache Page
Sharing
● Pas encore de support SELinux
PARIS CONTAINER DAY 2017
1
8
Stockage docker
Séparer les partitions
● /var/lib/docker
● /var/lib/origin
Délaisser l'exploitation et le run
PARIS CONTAINER DAY 2017
2
0
Les fluuuuux !
Anticiper les demandes
Automatiser la validation
PARIS CONTAINER DAY 2017
2
1
Savoir tout reconstruire
Savoir rebuilder et le faire
Un playbook chapeau :
● Pré-installation
● Post-installation
PARIS CONTAINER DAY 2017
2
2
Faut pas casser la prod !
Sand box iso prod
Pour :
● L’installation
● Les upgrades
● Monter en compétences
● Les changements de configuration
Une sandbox !
PARIS CONTAINER DAY 2017
2
3
Backup… et restauration
Perte du / des datacenter
Retour à un état précédent
Perte du stockage des données applicatives
Restauration sur un autre cluster pour analyse
Les raisons
PARIS CONTAINER DAY 2017
2
4
Certificats applicatifs
Peut retarder une MEP !
DNS wildcard = certificates wildcard
Un seul niveau aux certificats wildcard
PARIS CONTAINER DAY 2017
2
5
Certificats plateforme
Certificats auto-signés par défaut
Délégation de CA
Sinon, listes exhaustives des certificats…
● Master, etcd, Nodes, Router, Registry
PARIS CONTAINER DAY 2017
2
6
Garbage collection
Nettoyage des container mort
Nettoyages des images sur les nodes
Nettoyages des images de la registry
Nettoyage des volumes orphelins
Pour éviter de noyer docker
Oublier le monitoring
PARIS CONTAINER DAY 2017
2
8
Prometheus + grafana
● Stack originale: Hawkular+Cassandra
● Efforts importants dans Prometheus
● Ajout de fonctions natives d'alerting
● Node exporter : IO, réseau
● Dashboard grafana expose les informations de l’api kubernetes et des node exporter
● https://github.com/akram/openshift-prometheus-grafana
PARIS CONTAINER DAY 2017
2
9
HAProxy
Solution de Reverse Proxy utilisée dans OpenShift
OpenShift router instancié avec un
sidecar-container prometheus
haproxy-exporter
Croire à l’Open Ressource
PARIS CONTAINER DAY 2017
3
1
Sizer la plateforme
Au déla du minimum
Dev, build, CI
Monitoring, metrics, registry, etc
Stockage docker
● Local sur chaques nodes
● Pour la registry
PARIS CONTAINER DAY 2017
3
2
SWAP
Identifié par REX grâce au monitoring
MemoryPressure est pris en compte lors du scheduling
● Swap => non identification de la MemoryPressure
● Pods schédulés sur des nodes sous pression
PARIS CONTAINER DAY 2017
3
3
Quota / limites
Protéger les applications critiques
Laisser de la liberté
Les quotas :
● Se protéger des développeurs fous
Les limites :
● Se protéger des containers fous
PARIS CONTAINER DAY 2017
3
4
Focus JAVA
Heap : -Xmx < pod limit * 0.5
GC : Peut écrouler le quota de CPU shares
● GC + CFS = STW
● Si la latence est importante: refaire des tests de charge
● Réduire le nombre de thread du GC (-XX:ParallelGCThreads)
● Limiter la densité d'application par node
Négliger le réseau
PARIS CONTAINER DAY 2017
3
6
SDN
Comment ce serait dans le monde physique ?
SDN: Software Defined Network
Câbler tous les containers prendrait trop de temps
Gérer la sécurité
La ségrégation des réseaux
Instancier un switch différent par projet ou zone
PARIS CONTAINER DAY 2017
3
7
SDN sur SDN
On en trouve à tous les étages (IaaS, Virtu)
Attention à l'encapsulation
MTU ethernet par défaut 1500, en-tête de 50
Jumbo frames ?
PARIS CONTAINER DAY 2017
3
8
OpenvSwitch multi-tenant
Fonction SDN de OpenShift: Plugins évolutifs
● Flat network
● Multi tenant
● Egress policy
Activer le bon: Généralement ovs-multitenant
PARIS CONTAINER DAY 2017
3
9
Routeur et protocoles
HTTP / HTTPS (ou autre supportant SNI)
Sinon, port-forward…
Service node port
Ingress IP
Et pourquoi pas une app pour exposer la BDD ?
... autres que HTTP et HTTPS ?
Sécurité
PARIS CONTAINER DAY 2017
4
1
SELinux et SCC
SELinux : Mécanisme de label sur ressources permettant du contrôle d'accès
● Policy permettant de définir ces contrôles
● Activé sur RHEL par défaut
● Désactivé par les admins par défaut (what?) [1]
Dirty Cow: Une des premières failles permettant escalation de privilège
SCC: Security Context Constraints
● Par défault: restricted
[1] https://people.redhat.com/duffy/selinux/selinux-coloring-book_A4-Stapled.pdf
PARIS CONTAINER DAY 2017
4
2
Docker dans docker : on s’en passe !
Besoin classique : build, pull et push d’image à partir d’OpenShift
Pas de docker dans docker
● https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-f
or-ci/
On ne mappe pas la socket !
Utiliser un build OpenShift “Docker strategy”
Take away
PARIS CONTAINER DAY 2017
4
4
A retenir
Anticipez !
Les flux, les certificats, le sizing
Simplifiez !
L’architecture
Contrôlez !
Quota, limites, sécurité
Monitorez !
Prometheus, grafana, HA Proxy
Links
● SELinux Color Book
● JVM Stop World Pause with CFS
● Linux Control Groups Uncontrolled
● Java Memory Accounting in Containers
● OpenShift Router
● AUFS Storage Driver
● Docker Image Layering
● How The OverlayFS Driver Works
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHatNews
Parking Slides
PARIS CONTAINER DAY 2017
5
1
Backup… et restauration
Sauvegarde ETCD
Sauvegarde des données :
● Registry
● Données applicatives
● Intégration continue
● Logging
Synchronisation des sauvegardes
Les moyens
PARIS CONTAINER DAY 2017
5
2
Multi datacenter / Ubernetes
Multi-datacenter : Multi-problèmes
● Contraintes sur la latence inter-etcd < 5ms
● Quorum résilient nécessite 3 sites
Autres solutions:
● 2 sites avec un master passif et PRA
● Fédération de cluster OpenShift avec Ubernetes
○ Élève les fonctions de kubernetes au niveau des clusters
■ Scheduling multi-cluster
■ Gestion des droits utilisateurs
○ Tech Preview en 3.6
PARIS CONTAINER DAY 2017
5
3
Stockage applicatif
Pourquoi des volumes ?
● Persistance des données importantes
● Ecriture des données non importantes en dehors de l'image
(emptyDir)
Choisir sa solution de stockage
Interêt du Read Write Many
PARIS CONTAINER DAY 2017
5
4
Evolutions du SDN
Améliorer les performances et la sécurité
● Intégration IaaS/Virtualisation avec éditeurs
tiers (Nuage, Cisco, VMWare)
● Network policy: Définir des règles de trafic
entrant et sortant au niveau containeur

Contenu connexe

Tendances

CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
Membré Guillaume
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Publicis Sapient Engineering
 
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
Kubernetes Meetup Paris #5 - Metriques applicatives k8sKubernetes Meetup Paris #5 - Metriques applicatives k8s
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
Arnaud MAZIN
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Publicis Sapient Engineering
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
Christophe Furmaniak
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
Olivier Eeckhoutte
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Silicon Comté
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
Colin LEVERGER
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Cédric Leblond
 
12-Factor
12-Factor12-Factor
12-Factor
Luc Juggery
 
Intro docker
Intro dockerIntro docker
Intro docker
Fedir RYKHTIK
 
Devoxx France - Où sont passés mes serveurs ?
Devoxx France - Où sont passés mes serveurs ?Devoxx France - Où sont passés mes serveurs ?
Devoxx France - Où sont passés mes serveurs ?
Publicis Sapient Engineering
 
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
Jean-Baptiste Claramonte
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
Nicolas Hennion
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
rfelden
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
Thibaut Marmin
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
Zenika
 
Kit de Developpement Synolia
Kit de Developpement SynoliaKit de Developpement Synolia
Kit de Developpement Synolia
Rachid Zarouali
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Publicis Sapient Engineering
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
ALTER WAY
 

Tendances (20)

CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
 
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
 
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
Kubernetes Meetup Paris #5 - Metriques applicatives k8sKubernetes Meetup Paris #5 - Metriques applicatives k8s
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
 
Gdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetesGdg lille-intro-to-kubernetes
Gdg lille-intro-to-kubernetes
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
 
12-Factor
12-Factor12-Factor
12-Factor
 
Intro docker
Intro dockerIntro docker
Intro docker
 
Devoxx France - Où sont passés mes serveurs ?
Devoxx France - Où sont passés mes serveurs ?Devoxx France - Où sont passés mes serveurs ?
Devoxx France - Où sont passés mes serveurs ?
 
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
 
Introduction à docker.io
Introduction à docker.ioIntroduction à docker.io
Introduction à docker.io
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Docker du mythe à la réalité
Docker du mythe à la réalitéDocker du mythe à la réalité
Docker du mythe à la réalité
 
Kit de Developpement Synolia
Kit de Developpement SynoliaKit de Developpement Synolia
Kit de Developpement Synolia
 
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 

Similaire à OpenShift en production - Akram Ben Assi & Eloïse Faure

Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
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
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
Johan Moreau
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
Perfect Memory
 
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
 
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 nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
adri1s
 
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
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
Arthur Lutz
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Pierre Ternon
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
Publicis Sapient Engineering
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Arthur Lutz
 
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
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
Julien Wittouck
 
8 Rex : Mise en place de DevOps sur Azure
8   Rex : Mise en place de DevOps sur Azure8   Rex : Mise en place de DevOps sur Azure
8 Rex : Mise en place de DevOps sur Azure
aOS Community
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
SUSE
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
Wescale
 
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesmeetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
Frederic Leger
 
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
 

Similaire à OpenShift en production - Akram Ben Assi & Eloïse Faure (20)

Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
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
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
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 nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
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...
 
Pyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shiftPyconfr2018 deploy des application python dans un cluster open shift
Pyconfr2018 deploy des application python dans un cluster open shift
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
 
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
Capitole du Libre 2018 - Déployer des applications python dans un cluster Ope...
 
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...
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
8 Rex : Mise en place de DevOps sur Azure
8   Rex : Mise en place de DevOps sur Azure8   Rex : Mise en place de DevOps sur Azure
8 Rex : Mise en place de DevOps sur Azure
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Kubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestrationKubernetes University - Cap sur l'orchestration
Kubernetes University - Cap sur l'orchestration
 
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesmeetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetes
 
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...
 

Plus de Paris Container Day

Living the Nomadic life - Nic Jackson
Living the Nomadic life - Nic JacksonLiving the Nomadic life - Nic Jackson
Living the Nomadic life - Nic Jackson
Paris Container Day
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori Pekelman
Paris Container Day
 
Advanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien SimonAdvanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien Simon
Paris Container Day
 
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago ScolarProduction FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
Paris Container Day
 
Security in a containerized world - Jessie Frazelle
Security in a containerized world - Jessie FrazelleSecurity in a containerized world - Jessie Frazelle
Security in a containerized world - Jessie Frazelle
Paris Container Day
 
End to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max IndenEnd to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max Inden
Paris Container Day
 
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
Nomad, l'orchestration made in Hashicorp - Bastien CadiotNomad, l'orchestration made in Hashicorp - Bastien Cadiot
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
Paris Container Day
 
Using containers for continuous integration and continuous delivery - Carlos ...
Using containers for continuous integration and continuous delivery - Carlos ...Using containers for continuous integration and continuous delivery - Carlos ...
Using containers for continuous integration and continuous delivery - Carlos ...
Paris Container Day
 
Paris container day june17
Paris container day   june17Paris container day   june17
Paris container day june17
Paris Container Day
 

Plus de Paris Container Day (9)

Living the Nomadic life - Nic Jackson
Living the Nomadic life - Nic JacksonLiving the Nomadic life - Nic Jackson
Living the Nomadic life - Nic Jackson
 
There is no container - Ori Pekelman
There is no container - Ori PekelmanThere is no container - Ori Pekelman
There is no container - Ori Pekelman
 
Advanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien SimonAdvanced Task Scheduling with Amazon ECS - Julien Simon
Advanced Task Scheduling with Amazon ECS - Julien Simon
 
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago ScolarProduction FS: Adapt or die - Claudia Beresford & Tiago Scolar
Production FS: Adapt or die - Claudia Beresford & Tiago Scolar
 
Security in a containerized world - Jessie Frazelle
Security in a containerized world - Jessie FrazelleSecurity in a containerized world - Jessie Frazelle
Security in a containerized world - Jessie Frazelle
 
End to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max IndenEnd to-end monitoring with the prometheus operator - Max Inden
End to-end monitoring with the prometheus operator - Max Inden
 
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
Nomad, l'orchestration made in Hashicorp - Bastien CadiotNomad, l'orchestration made in Hashicorp - Bastien Cadiot
Nomad, l'orchestration made in Hashicorp - Bastien Cadiot
 
Using containers for continuous integration and continuous delivery - Carlos ...
Using containers for continuous integration and continuous delivery - Carlos ...Using containers for continuous integration and continuous delivery - Carlos ...
Using containers for continuous integration and continuous delivery - Carlos ...
 
Paris container day june17
Paris container day   june17Paris container day   june17
Paris container day june17
 

OpenShift en production - Akram Ben Assi & Eloïse Faure

  • 1. OpenShift en production 7pièges à éviter Eloïse Faure Senior Consultant @faure_eloise Akram Ben Aissi Cloud Architect @akrambenaissi
  • 2. PARIS CONTAINER DAY 20172 OpenShifteur depuis le début Aide les clients à mettre en place OpenShift Conseil sur les choix d'architecture blog.akrambenaissi.com Akram Ben Aissi Architecte Cloud @ Red Hat
  • 3. PARIS CONTAINER DAY 20173 OpenShifteuse Spécialisée dans la mise en place de cluster à coup de marteau ! Férue d’Intégration Continue Développeuse Java repentie Eloïse Faure Consultante Senior @ Red Hat
  • 4. PARIS CONTAINER DAY 20174 Anticiper les problématiques d'architecture Disposer de ressources suffisantes Réfléchir à l'exploitation Monitorer Pourquoi ce talk ? Vous éviter d’essuyer les plâtres
  • 6. RED HAT CONSULTING Solution de PaaS S'appuie sur Docker et Kubernetes et ajoute.... ● Une couche de routage ● Un outillage d'intégration continue pour containers ● Un ensemble de template de projets Open Source 6 C’est quoi OpenShift ?
  • 7. PARIS CONTAINER DAY 20177 En théorie
  • 8. PARIS CONTAINER DAY 20178 En super-théorie
  • 9. PARIS CONTAINER DAY 20179 En pratique Quelques gotchas: ● Scalabilité de la plate-forme ● VIP ● DMZ (flux SDN bloqués) ● Multi-routeur (par zone) ● Multi-datacenter (minimum 3)
  • 10. PARIS CONTAINER DAY 2017 1 0 Scalabilité etcd La règle de 3 Minimum pour la HA : 3 Nombre impair Sur 2 Data Center : ● 1 DC avec 2 etcd actif ● 1 DC avec 1 etcd actif et 1 passif ● 1 procédure de DRP
  • 11. PARIS CONTAINER DAY 2017 1 1 Quelques anecdotes Problèmes récurrents avec les VIP ● ils ne veulent en faire qu'à leur tête ● Ils bloquent parfois le trafic derrière eux Deux exemples réels: Stonegate et Azure LB Contournements: ● /etc/hosts ● Policy Based Routing
  • 12. PARIS CONTAINER DAY 2017 1 2 Quelques anecdotes Multi cluster Cluster OpenShift
  • 13. PARIS CONTAINER DAY 2017 1 3 Quelques anecdotes Cluster Intranet Cluster Internet Cluster Extranet Multi cluster
  • 14. PARIS CONTAINER DAY 2017 1 4 Quelques anecdotes Cluster Extranet Finance Cluster Intranet Finance Cluster Internet Cluster Extranet RH Cluster Extranet Support Cluster Intranet Support Cluster Intranet RH Multi cluster
  • 15. PARIS CONTAINER DAY 2017 1 5 Quelques anecdotes Cluster Extranet Finance - C2 Cluster Intranet Finance Cluster Internet Cluster Extranet RH - C2 Cluster Extranet Support - C2 Cluster Intranet Support Cluster Intranet RH Cluster Extranet RH - C1 Cluster Extranet Support - C 1 Cluster Extranet Finance - C1 Multi cluster
  • 16. Ne pas prévoir le bon stockage
  • 17. PARIS CONTAINER DAY 2017 1 7 Drivers de stockage pour Docker Stockage supporté pour OpenShift : device mapper+thinpool Device mapper + loopback (défaut sur docker) et AUFS peu performants et non supportés Overlay FS dans le futur ● Meilleures performances: Cache Page Sharing ● Pas encore de support SELinux
  • 18. PARIS CONTAINER DAY 2017 1 8 Stockage docker Séparer les partitions ● /var/lib/docker ● /var/lib/origin
  • 20. PARIS CONTAINER DAY 2017 2 0 Les fluuuuux ! Anticiper les demandes Automatiser la validation
  • 21. PARIS CONTAINER DAY 2017 2 1 Savoir tout reconstruire Savoir rebuilder et le faire Un playbook chapeau : ● Pré-installation ● Post-installation
  • 22. PARIS CONTAINER DAY 2017 2 2 Faut pas casser la prod ! Sand box iso prod Pour : ● L’installation ● Les upgrades ● Monter en compétences ● Les changements de configuration Une sandbox !
  • 23. PARIS CONTAINER DAY 2017 2 3 Backup… et restauration Perte du / des datacenter Retour à un état précédent Perte du stockage des données applicatives Restauration sur un autre cluster pour analyse Les raisons
  • 24. PARIS CONTAINER DAY 2017 2 4 Certificats applicatifs Peut retarder une MEP ! DNS wildcard = certificates wildcard Un seul niveau aux certificats wildcard
  • 25. PARIS CONTAINER DAY 2017 2 5 Certificats plateforme Certificats auto-signés par défaut Délégation de CA Sinon, listes exhaustives des certificats… ● Master, etcd, Nodes, Router, Registry
  • 26. PARIS CONTAINER DAY 2017 2 6 Garbage collection Nettoyage des container mort Nettoyages des images sur les nodes Nettoyages des images de la registry Nettoyage des volumes orphelins Pour éviter de noyer docker
  • 28. PARIS CONTAINER DAY 2017 2 8 Prometheus + grafana ● Stack originale: Hawkular+Cassandra ● Efforts importants dans Prometheus ● Ajout de fonctions natives d'alerting ● Node exporter : IO, réseau ● Dashboard grafana expose les informations de l’api kubernetes et des node exporter ● https://github.com/akram/openshift-prometheus-grafana
  • 29. PARIS CONTAINER DAY 2017 2 9 HAProxy Solution de Reverse Proxy utilisée dans OpenShift OpenShift router instancié avec un sidecar-container prometheus haproxy-exporter
  • 30. Croire à l’Open Ressource
  • 31. PARIS CONTAINER DAY 2017 3 1 Sizer la plateforme Au déla du minimum Dev, build, CI Monitoring, metrics, registry, etc Stockage docker ● Local sur chaques nodes ● Pour la registry
  • 32. PARIS CONTAINER DAY 2017 3 2 SWAP Identifié par REX grâce au monitoring MemoryPressure est pris en compte lors du scheduling ● Swap => non identification de la MemoryPressure ● Pods schédulés sur des nodes sous pression
  • 33. PARIS CONTAINER DAY 2017 3 3 Quota / limites Protéger les applications critiques Laisser de la liberté Les quotas : ● Se protéger des développeurs fous Les limites : ● Se protéger des containers fous
  • 34. PARIS CONTAINER DAY 2017 3 4 Focus JAVA Heap : -Xmx < pod limit * 0.5 GC : Peut écrouler le quota de CPU shares ● GC + CFS = STW ● Si la latence est importante: refaire des tests de charge ● Réduire le nombre de thread du GC (-XX:ParallelGCThreads) ● Limiter la densité d'application par node
  • 36. PARIS CONTAINER DAY 2017 3 6 SDN Comment ce serait dans le monde physique ? SDN: Software Defined Network Câbler tous les containers prendrait trop de temps Gérer la sécurité La ségrégation des réseaux Instancier un switch différent par projet ou zone
  • 37. PARIS CONTAINER DAY 2017 3 7 SDN sur SDN On en trouve à tous les étages (IaaS, Virtu) Attention à l'encapsulation MTU ethernet par défaut 1500, en-tête de 50 Jumbo frames ?
  • 38. PARIS CONTAINER DAY 2017 3 8 OpenvSwitch multi-tenant Fonction SDN de OpenShift: Plugins évolutifs ● Flat network ● Multi tenant ● Egress policy Activer le bon: Généralement ovs-multitenant
  • 39. PARIS CONTAINER DAY 2017 3 9 Routeur et protocoles HTTP / HTTPS (ou autre supportant SNI) Sinon, port-forward… Service node port Ingress IP Et pourquoi pas une app pour exposer la BDD ? ... autres que HTTP et HTTPS ?
  • 41. PARIS CONTAINER DAY 2017 4 1 SELinux et SCC SELinux : Mécanisme de label sur ressources permettant du contrôle d'accès ● Policy permettant de définir ces contrôles ● Activé sur RHEL par défaut ● Désactivé par les admins par défaut (what?) [1] Dirty Cow: Une des premières failles permettant escalation de privilège SCC: Security Context Constraints ● Par défault: restricted [1] https://people.redhat.com/duffy/selinux/selinux-coloring-book_A4-Stapled.pdf
  • 42. PARIS CONTAINER DAY 2017 4 2 Docker dans docker : on s’en passe ! Besoin classique : build, pull et push d’image à partir d’OpenShift Pas de docker dans docker ● https://jpetazzo.github.io/2015/09/03/do-not-use-docker-in-docker-f or-ci/ On ne mappe pas la socket ! Utiliser un build OpenShift “Docker strategy”
  • 44. PARIS CONTAINER DAY 2017 4 4 A retenir Anticipez ! Les flux, les certificats, le sizing Simplifiez ! L’architecture Contrôlez ! Quota, limites, sécurité Monitorez ! Prometheus, grafana, HA Proxy
  • 45. Links ● SELinux Color Book ● JVM Stop World Pause with CFS ● Linux Control Groups Uncontrolled ● Java Memory Accounting in Containers ● OpenShift Router ● AUFS Storage Driver ● Docker Image Layering ● How The OverlayFS Driver Works
  • 47.
  • 48.
  • 49.
  • 51. PARIS CONTAINER DAY 2017 5 1 Backup… et restauration Sauvegarde ETCD Sauvegarde des données : ● Registry ● Données applicatives ● Intégration continue ● Logging Synchronisation des sauvegardes Les moyens
  • 52. PARIS CONTAINER DAY 2017 5 2 Multi datacenter / Ubernetes Multi-datacenter : Multi-problèmes ● Contraintes sur la latence inter-etcd < 5ms ● Quorum résilient nécessite 3 sites Autres solutions: ● 2 sites avec un master passif et PRA ● Fédération de cluster OpenShift avec Ubernetes ○ Élève les fonctions de kubernetes au niveau des clusters ■ Scheduling multi-cluster ■ Gestion des droits utilisateurs ○ Tech Preview en 3.6
  • 53. PARIS CONTAINER DAY 2017 5 3 Stockage applicatif Pourquoi des volumes ? ● Persistance des données importantes ● Ecriture des données non importantes en dehors de l'image (emptyDir) Choisir sa solution de stockage Interêt du Read Write Many
  • 54. PARIS CONTAINER DAY 2017 5 4 Evolutions du SDN Améliorer les performances et la sécurité ● Intégration IaaS/Virtualisation avec éditeurs tiers (Nuage, Cisco, VMWare) ● Network policy: Définir des règles de trafic entrant et sortant au niveau containeur