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.
| 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’IngressMQTT 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.
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.
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 chartDans le chart Geocore actuel, ces valeurs sont placées souscore:. Certaines anciennes documentations du chart désignent cette dépendance parfront:; cette clé n’est plus utilisée dans le chart actuel.
| 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 alternatifVous pouvez utiliser un autre proxy gRPC-Web, tel quegrpcwebproxy, à la place de Contour et degeocore-ingress-contour. Son déploiement, son routage, ses paramètres CORS et son cycle de vie ne sont pas couverts par cette documentation.
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.