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 ?
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
Finance Cluster Intranet Finance Cluster Internet Cluster Extranet RH Cluster Extranet Support Cluster Intranet Support Cluster Intranet RH Multi cluster
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
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
-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
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
/ 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 ?
: 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
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”
with CFS • Linux Control Groups Uncontrolled • Java Memory Accounting in Containers • OpenShift Router • AUFS Storage Driver • Docker Image Layering • How The OverlayFS Driver Works
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
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
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