Commit f05c4ba5 authored by Rémi Cailletaud's avatar Rémi Cailletaud
Browse files

wip jres 2022

parent 6f0b6bb5
......@@ -54,8 +54,8 @@ TODO: schema
::: {.column}
* _Greenfield_
* Architecture complexe
* Kustomize pour overlays
* Accompagnement indispensable
* La problématique du stockage persistent
* TODO: màj schema
:::
::: {.column}
......@@ -63,39 +63,40 @@ TODO: schema
:::
::::::::::::::
# Le stockage: vSAN
* Blah Blah provisionner
* support "communautaire" bof
* souci lors des màj
* in-tree deprecation
* Volume dynamique, intégration aux infrastructures sous-jacentes
* Support communautaire minimal
* Problèmes fréquents lors des màj
* Kubernetes _In-Tree_ CSI dépréciés
# Le stockage: NetApp Trident
# Le stockage: NetApp Astra Trident
* Super sur le papier
* Manque certaines fonctionnalités
* Déploiement lourdingue, étape manuelle != Infra As Code
* Utilisation de SUMMER, la solution de stockage mutualisée de l'UGA
* Impossible d'utiliser certaines fonctionnalités offertes par l'intégration Trident
* Déploiement demandant des étapes manuelles ≠ Infrastructure As Code
# Le stockage: NFS Provisioner
# Le stockage: NFS Client Provisioner
* Le provisionneur du pauvre
* Simple création de répertoires
* Maintenant _Kubernetes NFS Subdir External Provisioner_
* Le provisioner du pauvre
* Plus grande maîtrise, accès NFS _à l'ancienne_ pour les équipes
* Utilisation de SUMMER
* Simple, fonctionne partout: un serveur NFS suffit
# Le cas des base de données
* Solution existantes (opérateurs)
* Manque de maturité à l'époque
* Service d'hébergement PostgreSQL
* Effet structurant
* Solutions existantes (opérateurs Kubernetes)
* Manque de maturité à l'époque… Frilosité de l'administrateur !
* Service d'hébergement PostgreSQL mutualisé à l'OSUG
* Effet structurant sur les architectures logicielles
# II. Les applications du Laboratoire d'Écologie Alpine
* Applications relativement simples (Symfony, Django), stateless
* Équipes de développement réduites
* Connaissances systèmes limitées
* Candidates idéales mais accompagnement indispensable
* Candidates idéales mais accompagnement indispensable !
# L'architecture logicielle
......@@ -111,9 +112,26 @@ TODO: schema
# CI/CD/GitOps
* Environnement idéal pour la mise en place d'automatisation
* Automatisation via des opérations Git
* Passage du développement à la production facilités
* Limitation des erreurs humaines
* Grande liberté pour les développeurs
* TODO: schéma
# CI/CD/GitOps: le schéma !
# Les images de conteneurs
* Trivy
* Multiplication des images «maison»: danger !
* Des bonnes pratiques:
* `USER` non root
* Choix de images de bases
* Utilisation de build multistage et limitation du nombre de couches
* Un conteneur == un processus
* _Twelve-Factor_ (pas de configuration, journalisation sur la sortie standard…)
* Utilisation de scanner de vulnérabilités (Trivy)
* L'occasion d'un dialogue entre développeurs et administrateurs
# III. JMMC et RESIF
......@@ -124,6 +142,7 @@ TODO: schema
# La migration d'application
service statefull
volume statique
utilisation d'un large panel des fonctionnalités : startup/livenessprobes, cronjob
kustomize beta/prod et blue/green (topo blue/green)
java !
......@@ -131,23 +150,67 @@ existdb !
# IV. Des cluster «jetables» !
* Des développeurs heureux
* Nouveaux problèmes pour les administrateurs: cluster «pets»
* Mises à jour (OS, Kubernetes) et modification (configuration, services, ajout de nœuds) stressantes
* Solutions: des clusters «cattle»
* De zéro aux applications métiers !
# L'architecture générale
```mermaid
graph LR;
request(HTTP request) --> frontend
frontend(HAProxy Frontend) --> master1 & master2
subgraph cluster2
master1(master node<br>nginx-ingress) --> node11(worker 1) & node12(worker n)
end
subgraph cluster1
master2(master node<br>nginx-ingress) --> node21(worker 1) & node22(worker n)
end
```
# Infrastructure As Code
* Gestion de notre infrastructure (nos cluster K8s) via des fichiers descripteurs
* Utilisation de Packer pour les images de VM
* Utilisation de Terraform pour décrire l'infrastructure :
* IPAM (EfficientIP SOLIDserver)
* Hashicorp Vault
* Grafana
* vSphere
* __terraform-vsphere-rke2__
# Déploiement
```mermaid
graph TB;
terraform -- 1. Récupération IP<br>Ajout du DNS RR--> ipam.u-ga.fr
terraform -- 2. Ajout de la source de données ----> grafana.osug.fr
terraform -- 2. Ajout d'un AppRole Vault <br> Récupération des token R/O Gitlab--->vault.osug.fr
terraform -- 3. Création du cluster K8s <br> ------> vsphere(vSphere OSUG)
```
# La gestion des secrets
# ArgoCD
# Schéma
# Conclusion
# Perspectives
séparation des rôles
dialogue
# Perspectives
# \faCreativeCommons\ \faCreativeCommonsBy\ \faCreativeCommonsSa
* blablabla
* et bliblablo
[Présentation](https://gricad-gitlab.univ-grenoble-alpes.fr/cailletr/talks/-/tree/master/data-terra)
[JRES 2019 Article Kubernetes](https://conf-ng.jres.org/2019/document_revision_4761.html?download)
# \faQuestion Questions
Made with \faHeart\ and [Pandoc](https://pandoc.org),
Présentation à l'aide de [Pandoc](https://pandoc.org),
[Metropolis Beamer Theme](https://github.com/matze/mtheme)
and [FontAwesome](https://fontawesome.com/)
\faCreativeCommons\ \faCreativeCommonsBy\ \faCreativeCommonsSa
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment