Vue d’ensemble
Architecture
Les daemons, le plan de données, et comment une configuration déclarative devient des paquets acheminés.
Un nœud SiHA est une image immuable unique qui exécute une poignée de processus coopérants : un plan de données (VPP) qui achemine les paquets, et un plan de contrôle qui décide comment.
Les processus
Un superviseur minimaliste est PID 1. Il réalise l’initialisation de la plateforme (montages, gestion des signaux, récupération des processus zombies), lit la seed de plateforme, amorce la PKI du nœud, puis lance et supervise tout le reste — chaque enfant disposant de son propre anneau de logs en mémoire.
| Processus | Rôle |
|---|---|
| superviseur (PID 1) | Initialisation de la plateforme, supervision des processus, le health-gate A/B + rollback, et un RPC RestartVPP utilisé par l’application en deux phases du plan de données. |
| pilotd | Le cerveau. Réconcilie les ressources COSI (interfaces, ACL, NAT, routes, VIP…) vers VPP via son API binaire. |
| apid | La porte d’entrée gRPC sur :6443. Authentifie les clients en mTLS et relaie vers les sockets de pilotd / du superviseur. |
| probed | Effectue les contrôles de santé des backends de l’équilibreur de charge et publie un statut que la pile LB lit pour ne conserver que les backends vivants. |
| metricsd | Attache le segment de mémoire partagée de statistiques de VPP et sert des métriques en temps réel, à l’écart du chemin critique du plan de contrôle. |
| VPP | Le processus du plan de données lui-même — DPDK en mode poll par défaut. |
Il n’y a ni SSH, ni systemd, ni cloud-init sur l’appliance. Vous n’atteignez un
nœud qu’au travers de sihactl en mTLS.
De la ressource au paquet
Tout est déclaratif. Vous appliquez une ressource ; le plan de contrôle fait converger le plan de données pour qu’il corresponde :
sihactlenvoie votre ressource à apid en mTLS.- apid la relaie à pilotd, qui la stocke et réveille le contrôleur concerné.
- Le contrôleur réconcilie : il calcule le delta et programme VPP via l’API binaire (création d’une interface, installation d’une ACL, ajout d’un mapping NAT, d’une route, d’une VIP…).
- VPP achemine le trafic en conséquence. Le statut remonte pour que
sihactl getaffiche l’état observé.
Réconciliation, et non « appliquer-et-oublier »
Chaque contrôleur exécute une boucle de réconciliation : il re-dérive l’état désiré du plan de données à partir des ressources et corrige toute dérive. Point crucial, les contrôleurs souscrivent aux reconnexions de VPP — si VPP redémarre, les caches qui référencent des index périmés sont effacés et l’état est reconstruit, de sorte que le plan de contrôle ne ment jamais sur ce que le plan de données fait réellement.
La configuration propre du plan de données (startup.conf) est elle-même détenue par un
contrôleur et appliquée via un redémarrage en deux phases avec dernier état correct connu et
contrôle de santé : capturer la configuration actuelle, écrire la nouvelle, redémarrer VPP, la sonder
deux fois — et en cas d’échec, restaurer la configuration précédente et marquer le nœud comme dégradé.
À suivre : le modèle de ressources que vous appliquez, et les commandes
sihactlqui l’appliquent.