# 2021/01/23 (Neutriton) : Reverse proxy et PostgreSQL HA * [Liste des sujets neutritons](https://pad.libre.brussels/T5gDXz2cTFiAminBUS1jlw) * [liste des pads](https://pad.libre.brussels/rp7k3fpBSVyfdKGFJLlJRw) * [Pad de la réunion](https://pad.libre.brussels/J-eJlKXETZOy5mq79BqItA?view) Présences : - HgO - Liberfix - nino - Tharyrok - Célo - ptr Jitsi : https://jitsi.belnet.be/neutriton ## Météo //Moment informel durant lequel on exprime **en peu de mots** comment on se sent et si on a une attente forte pour la réunion.// //**Ce n'est pas un moment de discussion mais d'expression individuelle et ce n'est pas obligatoire :-)**// Fin vers 17h30 ### Attente(s) forte(s) //Si l'une ou l'autre personne exprime une attente forte, merci de vous en occuper en priorité ou de la noter dans le hub ou dans un point approprié//. boistordu: Ca serait définitivement plus cool, si on pouvait enregistrer les neturitons. Je sais ce qu'a préalablement dit Tharyrok sur le sujet "que ce n'était pas de la formation etc". Je pense qu'il est néanmoins toujours opportun d'avoir un maximum de documentation possible en ce y compris potentiellement ce qui a été dit lors de la mise en place de tel ou tel service. La preuve en est que le neutriton passée ça a visiblement fait chier nino de pas avoir pu y participer par exemple. Surtout qu'il y a aussi des points essentiels dans l'infra qui pourraient ne pas être clairs à l'écrit pour certaines personnes qui devraient s'en préoccuper par après. Sujet qui serait cool de méditer et où il serait judicieux de ne pas rester sur ses positions mais d'essayer de faire l'extra mile de compréhension. Merci d'avance On est tous·tes plutôt contre : * C'est pas quelque chose que Neutrinet fait de façon générale pendant les réunions * Lors des réunions on peut dire des choses qui ne sont pas forcément publiques. Le PV existe avec les traces de ce qui s'est fait et dit. * Un enregistrement de 3h n'est pas un très bon format pour laisser de la documentation. (En plus du PV, mieux vaut se discipliner pour faire des notes complètes dans le wiki/meta) * Un enregistrement peut être ressenti comme invasif par certain·es participant·es * On aimerait améliorer la participation des réunions, parce que la plupart du temps les absent·es oublient la réunion (rappels, meilleure utilisation de l'agenda de Neutrinet par les participant·es) Pour avoir les réunions de Neutrinet : webcals://files.neutrinet.be/remote.php/dav/public-calendars/375V4JSNHTU04NXL/?export Cela pourrait être intéressant d'enregistrer s'il y a une réunion de présentation autour de 1 outil, par exemple Pfsense, CEPH, etc... Mais cela doit être annoncé en avance et compris par tous les participants. ## Reverseproxy loadbalancing (si necessaire)? Pfsense va rediriger le trafic au niveau 4, mais ne peut pas s'occuper du layer 7, donc ne pourra pas rediriger le trafic par domaine. Pfsense est utilisé aussi comme pare-feu et gestion des VLANs. ### ha-proxy (gpl2) - permet d'avoir beaucoup de metrics - uniquement reverse proxy - possibilité de terminaison tls sur le serveur final - ocsp (https://fr.wikipedia.org/wiki/Agrafage_OCSP), multi certificat - un bon tuto en français pas à pas pour débuter : https://www.youtube.com/playlist?list=PLn6POgpklwWpOWOqgYItvBrf7Izu-MMQW (niveau doc) - config évolue lentement - ne fait pas que du http mais aussi du tcp, udp, smtp, ... ### envoy https://envoyproxy.io (apache) most verbose config layer 7 pretty complicated but many options and very configurable layer 4 très facile et vite ### Apache Avec mod_proxy ### nginx * openresty et/ou autres permet beaucoup de pouvoir aussi, mais c'est en lua * config de base pas très intuitive, mais faisable * certains comportements casse gueule ### traefik letsencrypt intégrable e.g. https://doc.traefik.io/traefik/https/acme/ (clique sur les fleches pour ouvrir l example) - example de conf (check la partie 'labels'): - https://goneuland.de/nextcloud-server-mit-docker-compose-und-traefik-installieren/ traefik sans docker ? d'experience d'installation sans le docker > c'est en go Y a une interface web qui te permet de voir des tas de metrics sur tous les services Cela permet d'avoir une configuration dynamique car il peut l'apprendre via des revers dns, etcd, docker, k8s, ... ![](https://pad.libre.brussels/uploads/upload_bb2723bbb0448a319431638c9d47c4f8.png) La manière d'écrire la config de traefik change beaucoup entre les versions, et les choses peuvent… casser. (cfr. entre 1.8, 2.2 et la version actuelle (2.4) Certaines fonctionalités qui fonctionnaient en 1.8 ne fonctionnent plus en 2.4. Par ex, le header X-Forwarded-For. https://community.traefik.io/t/how-to-properly-use-x-forwarded-for-in-v2/3834 Ça peut être embêtant s'il y a souvent des nouvelles versions majeures... Pour avoir une config de base, il faut être assez verbeux (mais c'est moins pire que envoy) ### caddy2 * Serveur web à la base / peut fonctionner comme reverseproxy, un peu comme nginx * probablement le plus facile à config, e.g. * https://caddyserver.com/docs/caddyfile * lets encrypt (SSL) integré * webserveur à la base, mais peut faire du reverse proxy aussi * fait les deux très bien cfr. des vids tutos ---- comment choisir - competences/experiences existantes ? - faire des benchmarks entre les differentes logiciels ? - qu'est ce qu'il faut vraiment pour neutrinet -> derriere le pfsense (qui redirige le traffic sur layer3, sur base d'IP client/serveur), pour ajouter la possibilité de rediriger le traffic en tenant compte du nom de domaine que le client veut visiter (SSL/TLS, http vhost) - elimination? préference? nouvelle techno que tout le monde veut apprendre? ou juste le truc le plus simple pour le besoin? - Est-ce qu'on est d'accord d'écarter : - envoy - apache - traefik - Raisons pour les écarter : la complexité de la config (envoy, traefik), et personne n'a fait de recherche sur apache. - Pour traefik, on va le sous-exploiter (ex: config auto-magique pour docker, mais on va pas utiliser docker) - quid d'un plugin pour pfsense (squid) qui ferait reverse proxy ? par ex ha-proxy - Version assez vieille en général - Réduire les dépendances fortes pour que ce soit facile à remplacer plus tard Il reste : - nginx / caddy2 - haproxy Nginx vs ha-proxy (reverse proxy) - Nginx a très peu de metrics - ha-proxy expose des metrics directement pour prometheus - Nginx peut être casse-gueule pour la config du reverse proxy - haproxy est pur loadbalancer - ha-proxy, c'est encore un nouveau truc à apprendre, donc peut être un frein pour les nouveaux - N'a pas l'air si compliqué d'après les-dits nouveaux Caddy2 vs ha-proxy ? (reverse proxy) Caddy2 vs Nginx ? (web server / reverse proxy) Question : est-ce qu'on fait un autre Neutriton après s'être renseigné sur Caddy2 ? ou bien on se dit qu'on part vers ha-proxy pour le reverse proxy ## HA postgres Personne à part Tharyrok n'a pu se renseigner sur du High Availability postgres -> Envie de reporter à un autre Neutriton https://www.postgresql.org/docs/12/different-replication-solutions.html - patroni - autres? un peu des commentaires: https://news.ycombinator.com/item?id=23361804 ## S3 object storage du stockage en ligne qui reponde avec le protocol S3 le pourquoi du S3 / ### minio https://min.io/ - simple à mettre en place - propose une interface web - un tennat par deamon, donc il faudra en lancer plusieurs ### ceph https://ceph.io/ceph-storage/object-storage/ - Est-ce que le S3 object gateway est intégré en proxmox? (si c'est du object qui est besoin) - Oui c'est possible - bien compliqué mais très versatile (block, object et cephfs possible). - Est-ce qu'on veut un S3 au même niveau du proxmox ? - c'est pas une bonne idée car si ceph s3 bloque le ceph des vm c'est pas cool - auto-réparable : on peut perdre une VM tranquillement et ne rien avoir à faire lorsqu'elle revient à la vie - on utilise tjs des osd et il faut ajouter le demon rados object storage ### Longhorn https://longhorn.io/ object storage pour kubernetes Pour block storage (rancher > racheté par SUSE) On n'utilise pas Kubernetes… ### tahoe-lafs s3 https://github.com/joepie91/tahoe-s3 juste pour completer la liste, je pense pas que c'est production-proven Dernier commit il y a 7 ans. Je pense que ptr nous troll :p ### Quid du HA S3 ? - HA intégré dans minio - https://docs.min.io/docs/multi-tenant-minio-deployment-guide.html - HA intégré avec ceph aussi (un peu par définition ^^) Décision: On part pour du ceph, parce que c'est un outil qu'on connaît déjà bien. Et si ça ne va pas on pourra utiliser minio qui est facile à mettre en place. ---- ## ajout par boistordu: - tardigrade.io (third-party fournisseur stockage) - filebase.com (aussi third-party fournisseur stockage) explication ici: https://pad.libre.brussels/s/SyoFHutkd Tharyrok : Merci pour ton retour mais j'ai le sentiment que l'on s'est pas compris sur le S3, dans notre usage ici il n'est pas question de backup mais de partager un stockage entre des applications comme par exemple avoir Nextcloud en HA. Les backup c'est pour un autre Neutriton https://pad.libre.brussels/T5gDXz2cTFiAminBUS1jlw#Backup ---- ## Prochaine réunion Prochain Neutriton : le 13/02/2020 @ 14H Sujet : présentation de keycloak (sso,iam identity and access management) par Tharyrok Lieu : https://jitsi.belnet.be/neutriton et/ou Caldarium https://caldarium.be/fr:contact Après le Neutriton sur keycloak: - presentation/partage d'experiences caddy2 (ptr_) - partage d'expériences HA postgres ## Météo de fin //Moment informel durant lequel on exprime **en peu de mots** comment, à titre personnel, la réunion a été vécue que ce soit positif ou négatif.// //Si une ou plusieurs **tension est née** durant la réunion, il est peut-être nécessaire d'envisager l'une ou l'autre réunion pour y remédier.// - Problème de décalage son pendant la réunion {{tag>infra neutriton}}