Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Rémi Cailletaud
talks
Commits
f05c4ba5
Commit
f05c4ba5
authored
Mar 11, 2022
by
Rémi Cailletaud
Browse files
wip jres 2022
parent
6f0b6bb5
Changes
1
Hide whitespace changes
Inline
Side-by-side
jres-2022/slides.pd
View file @
f05c4ba5
...
...
@@ -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
*
s
upport
"
communautaire
" bof
*
souci
lors des màj
*
in-tree
d
e
pr
ecation
*
Volume dynamique, intégration aux infrastructures sous-jacentes
*
S
upport 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
étape
s
manuelle
s ≠
Infra
structure
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'ancie
nne
_
p
our les équipes
*
Utilisation de SUMMER
*
Simple, fonctio
nne p
artout: 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
* Solution
s
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
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment