OpenShift en production
7pièges à éviter
Eloïse Faure
Senior Consultant
@faure_eloise
Akram Ben Aissi
Cloud Architect
@akr...
PARIS CONTAINER DAY 20172
OpenShifteur depuis le début
Aide les clients à mettre en place OpenShift
Conseil sur les choix ...
PARIS CONTAINER DAY 20173
OpenShifteuse
Spécialisée dans la mise en place de cluster
à coup de marteau !
Férue d’Intégrati...
PARIS CONTAINER DAY 20174
Anticiper les problématiques d'architecture
Disposer de ressources suffisantes
Réfléchir à l'exp...
Sous-estimer l'architecture
RED HAT CONSULTING
Solution de PaaS
S'appuie sur Docker et Kubernetes et ajoute....
● Une couche de routage
● Un outillage...
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)
● M...
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 D...
PARIS CONTAINER DAY 2017
1
1
Quelques anecdotes
Problèmes récurrents avec les VIP
● ils ne veulent en faire qu'à leur tête...
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...
PARIS CONTAINER DAY 2017
1
5
Quelques anecdotes
Cluster Extranet
Finance - C2
Cluster Intranet
Finance
Cluster Internet
Cl...
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
Dev...
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é-installatio...
PARIS CONTAINER DAY 2017
2
2
Faut pas casser la prod !
Sand box iso prod
Pour :
● L’installation
● Les upgrades
● Monter e...
PARIS CONTAINER DAY 2017
2
3
Backup… et restauration
Perte du / des datacenter
Retour à un état précédent
Perte du stockag...
PARIS CONTAINER DAY 2017
2
4
Certificats applicatifs
Peut retarder une MEP !
DNS wildcard = certificates wildcard
Un seul ...
PARIS CONTAINER DAY 2017
2
5
Certificats plateforme
Certificats auto-signés par défaut
Délégation de CA
Sinon, listes exha...
PARIS CONTAINER DAY 2017
2
6
Garbage collection
Nettoyage des container mort
Nettoyages des images sur les nodes
Nettoyage...
Oublier le monitoring
PARIS CONTAINER DAY 2017
2
8
Prometheus + grafana
● Stack originale: Hawkular+Cassandra
● Efforts importants dans Promethe...
PARIS CONTAINER DAY 2017
2
9
HAProxy
Solution de Reverse Proxy utilisée dans OpenShift
OpenShift router instancié avec un
...
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
Stoc...
PARIS CONTAINER DAY 2017
3
2
SWAP
Identifié par REX grâce au monitoring
MemoryPressure est pris en compte lors du scheduli...
PARIS CONTAINER DAY 2017
3
3
Quota / limites
Protéger les applications critiques
Laisser de la liberté
Les quotas :
● Se p...
PARIS CONTAINER DAY 2017
3
4
Focus JAVA
Heap : -Xmx < pod limit * 0.5
GC : Peut écrouler le quota de CPU shares
● GC + CFS...
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 ...
PARIS CONTAINER DAY 2017
3
7
SDN sur SDN
On en trouve à tous les étages (IaaS, Virtu)
Attention à l'encapsulation
MTU ethe...
PARIS CONTAINER DAY 2017
3
8
OpenvSwitch multi-tenant
Fonction SDN de OpenShift: Plugins évolutifs
● Flat network
● Multi ...
PARIS CONTAINER DAY 2017
3
9
Routeur et protocoles
HTTP / HTTPS (ou autre supportant SNI)
Sinon, port-forward…
Service nod...
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
● P...
PARIS CONTAINER DAY 2017
4
2
Docker dans docker : on s’en passe !
Besoin classique : build, pull et push d’image à partir ...
Take away
PARIS CONTAINER DAY 2017
4
4
A retenir
Anticipez !
Les flux, les certificats, le sizing
Simplifiez !
L’architecture
Contrô...
Links
● SELinux Color Book
● JVM Stop World Pause with CFS
● Linux Control Groups Uncontrolled
● Java Memory Accounting in...
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitte...
Parking Slides
PARIS CONTAINER DAY 2017
5
1
Backup… et restauration
Sauvegarde ETCD
Sauvegarde des données :
● Registry
● Données applica...
PARIS CONTAINER DAY 2017
5
2
Multi datacenter / Ubernetes
Multi-datacenter : Multi-problèmes
● Contraintes sur la latence ...
PARIS CONTAINER DAY 2017
5
3
Stockage applicatif
Pourquoi des volumes ?
● Persistance des données importantes
● Ecriture d...
PARIS CONTAINER DAY 2017
5
4
Evolutions du SDN
Améliorer les performances et la sécurité
● Intégration IaaS/Virtualisation...
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
Prochain SlideShare
Chargement dans…5
×

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

342 vues

Publié le

Retrouvez la présentation d'Akram Ben Assi et Eloïse Faure de Red Hat lors du Paris Container Day

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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

  1. 1. OpenShift en production 7pièges à éviter Eloïse Faure Senior Consultant @faure_eloise Akram Ben Aissi Cloud Architect @akrambenaissi
  2. 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. 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. 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
  5. 5. Sous-estimer l'architecture
  6. 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. 7. PARIS CONTAINER DAY 20177 En théorie
  8. 8. PARIS CONTAINER DAY 20178 En super-théorie
  9. 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. 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. 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. 12. PARIS CONTAINER DAY 2017 1 2 Quelques anecdotes Multi cluster Cluster OpenShift
  13. 13. PARIS CONTAINER DAY 2017 1 3 Quelques anecdotes Cluster Intranet Cluster Internet Cluster Extranet Multi cluster
  14. 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. 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. 16. Ne pas prévoir le bon stockage
  17. 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. 18. PARIS CONTAINER DAY 2017 1 8 Stockage docker Séparer les partitions ● /var/lib/docker ● /var/lib/origin
  19. 19. Délaisser l'exploitation et le run
  20. 20. PARIS CONTAINER DAY 2017 2 0 Les fluuuuux ! Anticiper les demandes Automatiser la validation
  21. 21. PARIS CONTAINER DAY 2017 2 1 Savoir tout reconstruire Savoir rebuilder et le faire Un playbook chapeau : ● Pré-installation ● Post-installation
  22. 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. 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. 24. PARIS CONTAINER DAY 2017 2 4 Certificats applicatifs Peut retarder une MEP ! DNS wildcard = certificates wildcard Un seul niveau aux certificats wildcard
  25. 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. 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
  27. 27. Oublier le monitoring
  28. 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. 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. 30. Croire à l’Open Ressource
  31. 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. 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. 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. 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
  35. 35. Négliger le réseau
  36. 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. 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. 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. 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 ?
  40. 40. Sécurité
  41. 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. 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”
  43. 43. Take away
  44. 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. 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
  46. 46. THANK YOU plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNews
  47. 47. Parking Slides
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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

×