Le trajet complet
Le diagramme ci-dessous montre le parcours d’une requêtehttps://api.exemple.com à travers la plateforme Kaeyros Analytics.
Chaque étape en détail
Cloudflare
Cloudflare
Cloudflare gère la résolution DNS pour les 18 zones de la plateforme et assure la terminaison TLS de bordure. Il sert également de pare-feu applicatif (WAF) et peut mettre en cache certaines ressources.Où déboguer: Console Cloudflare, onglet DNS et Security Events.Commande utile:
Load balancer Hetzner
Load balancer Hetzner
Deux load balancers Hetzner répartissent le trafic entrant:
kaeyros.org (95.217.173.179 à Helsinki) et sem-a.com (46.225.34.99 à Nuremberg). Ils dirigent le trafic vers les nœuds du cluster Kubernetes RKE2.Où déboguer: Console Hetzner Cloud, section Load Balancers.Commande utile:Traefik
Traefik
Traefik est l’ingress controller du cluster. Il écoute sur l’entrypoint
websecure, gère HTTP/3, redirige automatiquement le port 80 vers 443, et route les requêtes vers l’Ingress correspondant en fonction du nom d’hôte.Où déboguer: Dashboard Traefik (accessible via port-forward) ou logs des pods Traefik.Commande utile:Ingress
Ingress
L’objet Ingress (avec
ingressClassName: traefik) définit les règles de routage par nom d’hôte. Il associe un nom de domaine à un Service interne du cluster. Attention: les annotations nginx.ingress.kubernetes.io/* présentes dans de nombreux fichiers de valeurs n’ont aucun effet car l’ingress controller est Traefik, pas NGINX.Où déboguer: Description de l’objet Ingress dans le namespace de l’application.Commande utile:Service ClusterIP
Service ClusterIP
Le Service de type ClusterIP expose l’application à l’intérieur du cluster. Son nom suit la convention
fullname = <Application>-<chart>. C’est ce nom DNS interne que les autres services utilisent pour communiquer (par exemple http://<service>.<namespace>.svc.cluster.local).Où déboguer: Endpoints du Service et état des cibles.Commande utile:Rollout
Rollout
Le chart
rollout (ou rollout-v2, recommandé) gère le déploiement via Argo Rollouts. Il contrôle le nombre de replicas, les mises à jour progressives (canary) et la répartition des pods sur les nœuds. Par défaut, le chart rollout éloigne les pods du nœud big-one-9d0479e4 avec une préférence de poids 100 (preferredDuringScheduling).Où déboguer: Interface ArgoCD ou description du Rollout.Commande utile:Pods
Pods
Les pods exécutent les conteneurs applicatifs. Le nom complet d’un pod suit le schéma:
<Application>-<chart>-<hash ReplicaSet>-<hash pod>. Par exemple: biolab-prod-api-rollout-v2-787d6449d4-vntt5 correspond à l’Application biolab-prod-api avec le chart rollout-v2.Où déboguer: Logs des pods et événements du namespace.Commande utile:PostgreSQL
PostgreSQL
La base de données PostgreSQL est gérée par l’opérateur Zalando. Le pod principal porte le suffixe
-0 (par exemple <nom>-0). La base peut résider dans le même namespace que l’application ou dans le namespace dédié database.Où déboguer: État du cluster PostgreSQL via patronictl.Commande utile:Où regarder quand ça ne marche pas
Si un certificat reste en attente, des pods
cm-acme-http-solver-* peuvent persister dans le namespace. Vérifiez que le ClusterIssuer approprié est utilisé: letsencrypt-dns pour le cas courant (HTTP-01 via Traefik) ou letsencrypt-cloudflare pour les wildcards et domaines proxifiés (DNS-01).