Consul Consul bei DEXPRO: Service-Katalog, KV und Service Mesh der Plattform. Schnelleinstieg Einstieg: was Consul bei DEXPRO ist und wo Du was findest. Schnelleinstieg Zielgruppe: Anwender und Betreuer · Stand: 06.11.2026 Consul ist der Service-Katalog, KV-Speicher und das Service Mesh (Connect) der DEXPRO-Plattform. Dienste registrieren sich dort, der Edge-Traefik baut aus ihren Tags seine Routen, und im Mesh regeln Intentions, wer mit wem sprechen darf. Als Anwender möchte ich … … meinen Dienst im Katalog registrieren → Dienst im Consul-Katalog registrieren … meinen Dienst am Edge erreichbar machen → Router per Consul-Tags definieren … wissen, was gerade gilt → Gültiger Stand und Verlauf Als Betreuer möchte ich … … Consul-Zertifikate aus OpenBao beziehen → Consul-Zertifikate aus OpenBao … verstehen, wie der Edge den Katalog liest → So liest der Edge den Consul-Katalog … TCP-Entrypoints für Datenbanken in KV pflegen → TCP-Routen für Datenbanken Weitere Bücher Developer Good Practice : Grundsätze für alle Technologien Traefik : Edge-Router und interner Ingress Historie und Gültigkeit Gültiger Stand, offene Punkte und Verlauf der Entscheidungen. Gültiger Stand und Verlauf Zielgruppe: Anwender und Betreuer · Stand: 06.11.2026 Hier steht, was für Consul bei DEXPRO gerade gilt und wie es dazu kam. Schau hier nach, bevor Du Dich auf ältere Notizen oder Gespräche verlässt. Gültiger Stand Konzept (20.10.2026): Consul wird neu aufgebaut, mit ACL default_policy = deny , TLS und Connect (Service Mesh). Jeder Konsument bekommt eine eigene Policy und ein eigenes Token. Der Bestand in DEV und Produktion bleibt unverändert. TLS und ACL kommen dort nur über Neuaufbau und Migration. Entscheidung (20.10.2026): Die HTTP-API der Clients lauscht nur lokal auf 127.0.0.1:8500 . Für CI-Runner bieten die Server HTTPS auf Port 8501 an. Regel (20.10.2026): Der Edge-Traefik liest den Katalog mit einem eigenen Token der Policy traefik-catalog , die Services und Nodes lesen darf. Ein Default-Token gibt es nicht. Beim Einschalten der ACL kommt zuerst das Traefik-Token, danach die ACL. Regel (21.10.2026): Intentions entstehen nur per Terraform im Stack cloud-core-infrastructure/bremen1/consul-servers ( config_entries ) und werden nur ergänzt. Default-Deny ist aktiv: Ohne Intention kommt keine Verbindung durchs Mesh. Konzept (20.10.2026): KV-Schema traefik//tcp/ für TCP-Entrypoints des Edge, services//… für Dienstkonfiguration und squeeze.config//… (ohne Stage) für SQUEEZE-Mandanten. Fakt (20.10.2026): Lab-PoC: Das Lab ist die Stage pre-development und läuft im sogenannten DEV-Netz. In der Konfiguration tragen die Lab-Consul-Server deshalb technisch stage = dev , nur KV-Präfixe und Token-Namen tragen lab . Deshalb tragen Lab-Dienste den Stage-Tag dev (siehe Dienst im Consul-Katalog registrieren ). Entscheidung (30.10.2026): Server-Zertifikate kommen nur noch aus OpenBao (Modul-Linie 0.3 von terraform-modules/proxmox/consul ). Details: Consul-Zertifikate aus OpenBao . Verlauf Fakt (30.10.2026): Der Lab-Cluster wurde mit dem gesamten Lab abgerissen. Neu aufgebaut wird er nur über den OpenBao-Weg. Regel (28.10.2026): Jeder Neuaufbau des ACL-Setups setzt manuell angelegte Intentions zurück. Deshalb Intentions nur in Terraform pflegen (siehe Gültiger Stand). Fakt (22.10.2026): Der bisherige DEV-Cluster ist abgerissen. Entscheidung (20.10.2026): Das Lab läuft mit Consul 2.0.3 . Für den Bestand in DEV und Produktion bleibt der Rollen-Default 1.21.5 . Konzept (20.10.2026): Start des Neuaufbaus im Lab mit ACL deny, TLS und Connect. Service-Katalog Dienste im Consul-Katalog registrieren, Tags und Health-Checks. Dienst im Consul-Katalog registrieren Zielgruppe: Anwender und Betreuer · Stand: 06.11.2026 Consul ist der Service-Katalog, KV-Speicher und das Service Mesh (Connect) der Plattform. Diese Seite zeigt, wie Du einen Dienst im Katalog registrierst, damit andere ihn finden und der Edge-Traefik ihn per Tags routen kann. Voraussetzungen Ein Consul-Agent auf dem Host (VM) bzw. ein Nomad-Cluster, der an Consul angebunden ist. Mit aktiver ACL ( default_policy = deny ): ein Token, das Deinen Service schreiben darf. Die Policy dazu sieht so aus: service "" { policy = "write" } ist der Name Deines Service im Katalog. Tokens und Policies legen die Betreuer per Terraform im Stack cloud-core-infrastructure/bremen1/consul-servers an. Woher Du das Token bekommst, sagen Dir die Betreuer. Vorgehen Variante A: Dienst auf einer VM (Service-Definition) Leg auf dem Host eine Service-Definition unter /etc/consul.d/ an, am besten über eine Ansible-Rolle (Beispiel: Rolle consul.maxscale in cloud-core-infrastructure/ansible/roles ). Trag Name, Adresse, Port, Tags und einen Health-Check ein: service { name = "" id = "-" address = "" port = token = "" tags = [ "", "traefik.enable=true", ] check { id = "--tcp" name = " TCP" tcp = ":" interval = "10s" timeout = "3s" } } : Hostname des Hosts, keine IP. : das Token mit service "" write . Es kommt aus der Rollen-Variable und steht nie im Repo. : die Stage, auf die der Edge filtert (siehe unten). Lade Consul neu ( consul reload ) bzw. lass die Rolle das per Handler erledigen. Variante B: Dienst in Nomad Im Job registriert der service -Block den Dienst in Consul: service { name = "" provider = "consul" port = "" tags = [ "", "traefik.enable=true", ] connect { sidecar_service {} } } Mit connect { sidecar_service {} } hängt der Dienst im Service Mesh. Dann erreichen ihn andere Dienste nur über eine Intention (siehe Stolperfallen). Tags Stage-Tag: Der Edge-Traefik übernimmt nur Services mit dem Tag seiner Stage. Lab-PoC: Das Lab ist die Stage pre-development und läuft im sogenannten DEV-Netz. Die Lab-Edges filtern deshalb auf den Tag dev . Traefik-Tags ( traefik.enable=true , traefik.http.routers.… ): Sie legen fest, wie der Edge den Dienst routet. Details in Router per Consul-Tags definieren . Ohne traefik.enable=true bleibt ein Dienst im Katalog, ist aber am Edge nicht erreichbar. Das ist der Normalfall für interne Dienste. Prüfen consul catalog services -tags consul catalog nodes -service= Der Dienst erscheint mit Deinen Tags. In der Consul-UI ist sein Health-Check grün. Stolperfallen Falscher Stage-Tag: Ein Lab-Dienst mit dem Tag lab statt dev steht im Katalog, der Edge ignoriert ihn aber. Es gibt keine Fehlermeldung. Token ohne Schreibrecht: Mit Default-Deny scheitert die Registrierung, wenn das Agent-Token den Service nicht schreiben darf. Gib in der Service-Definition das passende Token an. Intentions fehlen: Bei Diensten im Mesh blockt Default-Deny jede Verbindung ohne Intention, auch die vom Edge ( edge-traefik- → ). Intentions legen die Betreuer per Terraform im Stack bremen1/consul-servers an. Manuell gesetzte Intentions gehen beim nächsten Neuaufbau des ACL-Setups verloren. Nomad-Workloads: Lab-PoC: Die Anmeldung von Nomad-Workloads an Consul (Workload Identity) wird gerade nachgewiesen. Frag vor dem ersten Job die Betreuer nach dem aktuellen Stand. Weiterführend Router per Consul-Tags definieren Edge-Grundsatz Gültiger Stand und Verlauf Consul-Doku: Services definieren Nomad-Doku: service-Block