Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Paris container Day 2017 - Red Hat OpenShift en...

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

Paris container Day 2017 - Red Hat OpenShift en prod : 7 pièges à éviter - A.Ben Aissi & E.Faure

Avatar for Paris Container Day

Paris Container Day

June 13, 2017

More Decks by Paris Container Day

Other Decks in Technology

Transcript

  1. OpenShift en production 7 pièges à éviter Eloïse Faure Senior

    Consultant @faure_eloise Akram Ben Aissi Cloud Architect @akrambenaissi
  2. PARIS CONTAINER DAY 2017 2 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 2017 3 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 2017 4 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. 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 ?
  6. PARIS CONTAINER DAY 2017 9 En pratique Quelques gotchas: •

    Scalabilité de la plate-forme • VIP • DMZ (flux SDN bloqués) • Multi-routeur (par zone) • Multi-datacenter (minimum 3)
  7. 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
  8. 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
  9. PARIS CONTAINER DAY 2017 1 3 Quelques anecdotes Cluster Intranet

    Cluster Internet Cluster Extranet Multi cluster
  10. 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
  11. 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
  12. 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
  13. PARIS CONTAINER DAY 2017 1 8 Stockage docker Séparer les

    partitions • /var/lib/docker • /var/lib/origin
  14. PARIS CONTAINER DAY 2017 2 0 Les fluuuuux ! Anticiper

    les demandes Automatiser la validation
  15. PARIS CONTAINER DAY 2017 2 1 Savoir tout reconstruire Savoir

    rebuilder et le faire Un playbook chapeau : • Pré-installation • Post-installation
  16. 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 !
  17. 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
  18. PARIS CONTAINER DAY 2017 2 4 Certificats applicatifs Peut retarder

    une MEP ! DNS wildcard = certificates wildcard Un seul niveau aux certificats wildcard
  19. 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
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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 ?
  29. 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
  30. 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 ?
  31. 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
  32. 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”
  33. 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
  34. 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
  35. 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
  36. 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
  37. 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
  38. 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