Le Stack Harbor PaaS expose un mécanisme de Liens qui interconnecte deux paliers d’un même environnement. Une fois qu’un palier est lié, les conteneurs du palier source reçoivent un ensemble curé de variables d’environnement issues de l’image du palier cible, préfixées par l’alias du lien, et gagnent un nom DNS pour atteindre les conteneurs cibles individuellement ou le palier entier.
C’est la façon recommandée de passer des détails de connexion entre paliers applicatifs — un serveur d’application qui découvre un palier de base de données, un répartiteur qui découvre un palier d’app — sans exposer de ports vers l’extérieur et sans coder en dur des adresses.
Créer un lien
Les liens entre conteneurs se configurent par palier via l’assistant de topologie ou le panneau de paramètres du palier :
- Ouvrez le palier qui doit recevoir le lien (côté consommateur).
- Dans la section Liens, cliquez sur Ajouter.
- Choisissez le palier cible dans le menu Nœud.
- Fournissez un Alias — un identifiant court qui devient le préfixe des variables importées et l’alias DNS du palier. Par exemple, un alias
dbexposedb_HOST,db_PORT(selon les variables déclarées par l’image source) et enregistredb_1,db_2, … comme noms DNS des conteneurs cibles individuels. - Cliquez sur Sauvegarder, puis Appliquer la modification de topologie.
Un palier peut contenir autant de liens que nécessaire, chacun avec son propre alias. Le même palier cible peut être lié depuis plusieurs paliers consommateurs — chaque lien obtient son propre espace DNS.
Appliquer un lien redémarre les conteneurs du palier consommateur pour que les nouvelles variables et entrées DNS prennent effet. Prévoyez la courte coupure.
Alias DNS enregistrés par un lien
Quand un lien est appliqué, la plateforme enregistre des entrées DNS qui ne se résolvent qu’entre les paliers liés — elles ne sont visibles ni du reste de la plateforme ni de l’internet. Pour un lien d’alias db :
db_1,db_2,db_Nse résolvent vers des conteneurs cibles précis. Le conteneur maître est toujoursdb_1. Les autres sont triés parnodeIDascendant et reçoiventdb_2,db_3, etc.db(sans suffixe d’index) se résout en round-robin vers n’importe quel conteneur du palier cible. Utile pour distribuer la charge sur des cibles sans état.
Vous pouvez vérifier la résolution avec ping, host ou dig depuis un conteneur du palier source.
Mettre à jour les variables sur des paliers liés
Modifier une variable du palier cible se propage automatiquement à chaque consommateur lié — pas besoin de re-appliquer le lien. Le schéma de variables de l’image cible est le contrat ; les consommateurs reprennent les changements au prochain rafraîchissement de variables.
Délier, en revanche, retire les variables importées et les entrées DNS du palier consommateur et redémarre à nouveau ses conteneurs.
Lien ou DNS direct ?
Si deux conteneurs ont juste besoin de se parler et que vous connaissez déjà le nom d’hôte de la cible, vous pouvez passer outre le mécanisme de lien — le DNS interne de la plateforme résout nativement les noms d’hôte de palier et de conteneur (voir Noms DNS pour connexion directe aux conteneurs).
Utilisez les liens quand :
- l’image source attend les détails de connexion sous forme de variables d’environnement (le motif courant pour les images de stacks Docker Hub),
- vous voulez un DNS round-robin vers un palier cible sans monter un service séparé,
- vous voulez que le palier source redémarre automatiquement quand la topologie cible le justifie.