Aller au contenu

Endpoints : accès direct sans IP publique

Comment les endpoints exposent un port TCP/UDP spécifique sur un conteneur via le Shared Load Balancer dans Stack Harbor PaaS — gestion des endpoints, modèles de ports standards et cas d'usage courants.

Les endpoints sont le moyen d’exposer un port spécifique d’un conteneur sans lui attacher d’IP publique. La plateforme effectue le mappage de port TCP ou UDP pour vous et achemine le trafic externe vers ce port via le Shared Load Balancer.

C’est le bon outil quand vous avez besoin d’un accès direct à un service — un client de base de données, un IDE distant, un panneau d’admin — sans le coût opérationnel d’une IP publique dédiée.

Gestion des endpoints

Les endpoints vivent sur l’environnement, sous Settings → Endpoints. L’onglet affiche tous les endpoints définis sur tous les nœuds de l’environnement.

Ajouter un endpoint

Cliquez sur Add dans la barre d’outils et remplissez le formulaire :

ChampRôle
NodeLe nœud de l’environnement que l’endpoint expose
NameUn libellé, ou un des modèles préconfigurés
Private PortLe port du nœud qui doit être joignable
ProtocolTCP ou UDP

Le Public Port et l’Access URL sont attribués par la plateforme et apparaissent dans la liste une fois l’endpoint créé.

Modèles de ports préconfigurés

Pour la commodité, les ports de service courants ont un modèle nommé — choisissez le modèle et le port privé est rempli pour vous.

ModèlePort privé
FTP21
SSH22
SMTP25
DNS-UDP / DNS-TCP53
HTTP80
POP3110
IMAP143
LDAP389
HTTPS443
SMTPS587
IMAPS993
POP3S995
Docker Swarm2377
MySQL3306
Remote Desktop3389
Docker Swarm Overlay4789
PostgreSQL5432
RabbitMQ5672
CouchDB5984
PowerShell5986
Redis6379
Cassandra-JMX7199
Neo4J7474
Riak8093
Cassandra9042
Memcached11211
MongoDB27017

Modifier et supprimer

Double-cliquez sur un endpoint pour éditer son nom, son port privé ou son protocole. Utilisez l’action Remove de la barre d’outils pour le supprimer.

Notes opérationnelles

  • VPS et conteneurs Docker personnalisés — le port privé indiqué doit être ouvert sur le conteneur manuellement. Les endpoints gèrent uniquement le mappage du côté public.
  • Nœuds qui ont aussi une IP publique — retirez le préfixe node{nodeId}- de l’Access URL de l’endpoint ; sinon, l’URL résout vers l’IP publique au lieu de l’endpoint acheminé par le SLB.

Cas d’usage courants

Accès distant à une base de données

La raison la plus fréquente d’ajouter un endpoint. Une fois l’endpoint MySQL ou PostgreSQL en place, connectez-vous depuis votre shell local :

mysql -h {host} -P {port} -u {user} -p

Où :

  • {host} est l’Access URL de l’endpoint sans le suffixe de port
  • {port} est le port public de l’endpoint
  • {user} est votre utilisateur de base de données (la plateforme envoie les identifiants par défaut par courriel après la création de l’environnement)

Le même motif fonctionne avec un client graphique (MySQL Workbench, DBeaver, TablePlus, pgAdmin). Configurez une nouvelle connexion avec l’hôte et le port de l’endpoint, et stockez le mot de passe dans votre trousseau si votre client le permet.

Plusieurs copies de projet sur un seul serveur applicatif

Vous pouvez utiliser un serveur applicatif pour héberger à la fois la production et une branche dev en exposant des ports supplémentaires via les endpoints.

  1. Créez un endpoint sur le serveur applicatif avec un port privé inutilisé (évitez 80 — Apache l’utilise pour le trafic HTTP par défaut).
  2. Déployez l’application deux fois, dans des contextes différents (par exemple prod et dev).
  3. Modifiez la configuration Apache (/etc/httpd/conf/httpd.conf) pour qu’il écoute aussi sur le port supplémentaire :
    Listen [::]:{port}
  4. Dupliquez le bloc VirtualHost par défaut, changez son port et faites pointer sa racine de documents vers le second contexte.

Le trafic externe vers l’endpoint atteint le second VirtualHost ; l’URL par défaut sert toujours la production.

Voir aussi