Sur mon serveur, j’ai déployé une infrastructure d’hébergement moderne basée sur K3s, une distribution Kubernetes légère idéale pour l’auto-hébergement. La gestion et le déploiement de mes applications (portfolio, portail de liens) s’effectuent entièrement selon les principes GitOps grâce à Argo CD.
Ce projet répond à un objectif clair : disposer d’une plateforme robuste, sécurisée et hautement automatisée, où chaque modification de code poussée sur GitHub déclenche une mise à jour transparente en production.
Schéma des flux (de l’extérieur vers l’intérieur)
[Internet] ──> [Traefik Ingress] ──> rocheralexandre.com ──> [Portfolio]
\──> onlymore.net ──────────> [OnlyHub]
\──> grafana.onlymore.net ──> [Grafana]
Choix technologiques
Réseau & Accès Sécurisé (Tailscale VPN)
- Sécurité et simplicité : Utilisation de Tailscale pour interconnecter mes équipements de manière sécurisée sans exposer les ports d’administration sur le réseau public.
- Accès nomade : Administration de mon infrastructure à distance depuis n’importe quel terminal connecté à mon réseau maillé privé.
Orchestration (K3s)
- Légèreté & Performance : Une distribution Kubernetes certifiée optimisée pour les environnements à ressources contraintes, réduisant l’empreinte mémoire par rapport à un Kubernetes standard.
- Standards cloud-native : Utilisation des API Kubernetes standards (Deployments, Services, Ingresses, Kustomize) facilitant l’apprentissage.
Déploiement Continu (Argo CD & GitOps)
- Déclaratif : Tout l’état ciblé de mon cluster est défini dans un dépôt Git, garantissant la reproductibilité et la traçabilité.
- Synchronisation automatique : Argo CD réconcilie en permanence l’état réel du cluster avec le dépôt Git.
- Mises à jour automatisées : Intégration d’Argo CD Image Updater pour détecter automatiquement la publication de nouvelles images de conteneurs sur le registre et mettre à jour les applications sans intervention manuelle.
Routage & SSL (Traefik)
- Ingress Controller : Gestion dynamique du routage HTTP/HTTPS au sein du cluster Kubernetes.
- Certificats automatisés : Let’s Encrypt gère automatiquement la génération et le renouvellement des certificats SSL (via validation DNS Cloudflare).
Supervision (Prometheus & Grafana)
- Observabilité : Collecte des métriques système et applicatives en temps réel.
- Alerting : Envoi automatique de notifications sur Discord en cas de comportement anormal (saturation disque, crash de pod).
