Skip to main content
Centiloc Service Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Exposition des services

Une installation Geocore OnPremise comporte quatre points d’entrée externes. Avant d’installer le chart, définissez comment chacun est exposé : ce choix détermine les valeurs Helm, les enregistrements DNS, les certificats et les règles de pare-feu.

Vue d’ensemble de l’exposition des services

Service Utilisé par Protocole Exposition prise en charge
MQTT Plateaux et clients MQTT externes, y compris les consommateurs Transtream TCP ou TLS NodePort uniquement
NTP Plateaux UDP port 123 NodePort uniquement
API Clients API natifs gRPC NodePort direct ou Contour/Envoy
API Centui gRPC-Web Contour/Envoy uniquement
Centui Navigateurs web HTTP Contour/Envoy uniquement
Portée de l’Ingress
MQTT et NTP doivent rester directement accessibles via des NodePorts ; ils ne passent pas par un contrôleur Ingress. Les flux de l’API et de Centui passent par le proxy Envoy de Contour.

MQTT et NTP

Les plateaux doivent accéder directement à MQTT et le service NTP de Geocore doit être directement accessible en UDP sur le port 123. Configurez les deux services en NodePort. Dans un cluster à nœud unique, MQTT et NTP utilisent l’adresse de l’hôte k0s ; lorsque le réseau du cluster le requiert, redirigez le port UDP 123 de l’hôte vers le NodePort NTP.

Consultez le guide k0s sur un nœud unique pour configurer MQTT, NTP et la redirection sur l’hôte. Les clients MQTT externes peuvent aussi utiliser ce même point d’accès MQTT direct.

API et Centui via Envoy

Centui est une application navigateur qui se connecte à l’API en gRPC-Web, tandis que l’API Geocore utilise gRPC. Le proxy Envoy, géré par Contour, convertit les requêtes du navigateur en gRPC avant de les transmettre au service API interne.

Navigateur ──hôte Centui──> Envoy (Contour) ──> Centui (ClusterIP)
           └─hôte API─────> Envoy (gRPC-Web → gRPC) ──> API (ClusterIP)

Contour et geocore-ingress-contour constituent donc le chemin d’accès standard à Geocore. Conservez les services API Geocore et Centui en ClusterIP ; ne faites pas pointer Centui directement vers le NodePort de l’API.

Centui requiert deux adresses publiques :

  • core.centui.apiURL : l’adresse Envoy utilisée par Centui pour atteindre l’API. Ajoutez le NodePort Envoy lorsque le service Envoy utilise un NodePort.
  • core.centui.centuiURL : le nom d’hôte utilisé par les navigateurs pour atteindre Centui.

Les deux noms d’hôte doivent être résolus vers Envoy : vers son adresse LoadBalancer dans une installation standard, ou vers le nœud Kubernetes dans une installation avec NodePort Envoy.

Nommage du chart
Dans le chart Geocore actuel, ces valeurs sont placées sous core:. Certaines anciennes documentations du chart désignent cette dépendance par front: ; cette clé n’est plus utilisée dans le chart actuel.

Modèles d’accès disponibles

Modèle Services Geocore Paramètre TLS Adresse publique
NodePort Envoy Contour Services ClusterIP par défaut core.geo.tlsEnabled: false et core.centui.tlsEnabled: false Noms d’hôte HTTP et NodePort Envoy
LoadBalancer Envoy Contour Services ClusterIP par défaut core.geo.tlsEnabled: false et core.centui.tlsEnabled: false Noms d’hôte HTTP gérés par Envoy
Envoy Contour avec TLS Services ClusterIP par défaut core.geo.tlsEnabled: true et core.centui.tlsEnabled: true Noms d’hôte HTTPS ; TLS se termine sur Envoy

Pour l’accès NodePort, configurez le NodePort sur le service Envoy de Contour, et non sur core.service. Définissez core.centui.apiURL avec le nom d’hôte de l’API et le NodePort Envoy, comme indiqué dans le guide k0s.

Installez geocore-ingress-contour pour créer les routes de l’API et de Centui. Le guide Ingress explique la configuration de Contour ainsi que les configurations HTTP non chiffré et TLS.

Proxy gRPC-Web alternatif
Vous pouvez utiliser un autre proxy gRPC-Web, tel que grpcwebproxy, à la place de Contour et de geocore-ingress-contour. Son déploiement, son routage, ses paramètres CORS et son cycle de vie ne sont pas couverts par cette documentation.

Cohérence des adresses

Utilisez autant que possible des noms DNS stables. Pour une preuve de concept locale, ajoutez les noms de l’API et de Centui au fichier hosts de la machine cliente. Les noms configurés doivent être résolus de manière cohérente depuis chaque plateau, navigateur et client externe qui doit les utiliser.