From 39cd1502305511b2e3a644fe99d9c3c24fbdc018 Mon Sep 17 00:00:00 2001 From: Robert Rapp Date: Mon, 19 Oct 2026 13:45:57 +0200 Subject: [PATCH] =?UTF-8?q?Br=C3=BCcke=20nex:=20EndpointSlice=20statt=20En?= =?UTF-8?q?dpoints,=20DNS-Pr=C3=BCfung=20mit=20getent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- deploy/k8s/nex/bridge.yaml | 58 +++++++++++-------- .../proxmox/ansible/playbooks/nex-k3s.yml | 2 +- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/deploy/k8s/nex/bridge.yaml b/deploy/k8s/nex/bridge.yaml index c091afa..eca85af 100644 --- a/deploy/k8s/nex/bridge.yaml +++ b/deploy/k8s/nex/bridge.yaml @@ -1,7 +1,7 @@ # Brücke zu den NEX-Diensten auf appsrv08 (nex-Spec 2026-10-19 Cluster-Agenten, D259). # Die Agenten-Pods im Namespace nex sprechen dieselben Namen wie die Container im Docker-Netz llm-internal auf # appsrv08 (nex-router, nex-know, nex-access, grp-mcp-intern); hier zeigen Services ohne Selector mit festen -# Endpoints auf die Host-Ports von appsrv08 (nur auf 192.168.100.29 veröffentlicht, Stacks nex und grp-mcp-intern). +# EndpointSlices (v1 Endpoints ist seit 1.33 veraltet) auf die Host-Ports von appsrv08 (nur auf 192.168.100.29 veröffentlicht, Stacks nex und grp-mcp-intern). # Zieht ein Dienst in den Cluster (Weg 3), ersetzt sein echter Service den Eintrag – der Name bleibt. # LiteLLM bleibt ohne Brücke: Agenten sprechen nur den Router, der Router LiteLLM (nex AGENTS.md: kein Pfad an # LiteLLM vorbei, und kein zusätzlicher Host-Port dafür). @@ -15,15 +15,17 @@ spec: ports: - {name: http, port: 4100, targetPort: 4100} --- -apiVersion: v1 -kind: Endpoints +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice metadata: name: nex-router namespace: nex - labels: {knaster.app: nex-bridge} -subsets: - - addresses: [{ip: 192.168.100.29}] - ports: [{name: http, port: 4100}] + labels: {knaster.app: nex-bridge, kubernetes.io/service-name: nex-router} +addressType: IPv4 +ports: + - {name: http, port: 4100, protocol: TCP} +endpoints: + - addresses: ["192.168.100.29"] --- apiVersion: v1 kind: Service @@ -35,15 +37,17 @@ spec: ports: - {name: http, port: 4200, targetPort: 4200} --- -apiVersion: v1 -kind: Endpoints +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice metadata: name: nex-know namespace: nex - labels: {knaster.app: nex-bridge} -subsets: - - addresses: [{ip: 192.168.100.29}] - ports: [{name: http, port: 4200}] + labels: {knaster.app: nex-bridge, kubernetes.io/service-name: nex-know} +addressType: IPv4 +ports: + - {name: http, port: 4200, protocol: TCP} +endpoints: + - addresses: ["192.168.100.29"] --- apiVersion: v1 kind: Service @@ -55,15 +59,17 @@ spec: ports: - {name: http, port: 4300, targetPort: 4300} --- -apiVersion: v1 -kind: Endpoints +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice metadata: name: nex-access namespace: nex - labels: {knaster.app: nex-bridge} -subsets: - - addresses: [{ip: 192.168.100.29}] - ports: [{name: http, port: 4300}] + labels: {knaster.app: nex-bridge, kubernetes.io/service-name: nex-access} +addressType: IPv4 +ports: + - {name: http, port: 4300, protocol: TCP} +endpoints: + - addresses: ["192.168.100.29"] --- # GRP-MCP (Rolle projektleitung): Stack grp-mcp-intern auf appsrv08, Dienst gateway, Container-Port 8790 apiVersion: v1 @@ -76,12 +82,14 @@ spec: ports: - {name: http, port: 8790, targetPort: 8790} --- -apiVersion: v1 -kind: Endpoints +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice metadata: name: grp-mcp-intern namespace: nex - labels: {knaster.app: nex-bridge} -subsets: - - addresses: [{ip: 192.168.100.29}] - ports: [{name: http, port: 8790}] + labels: {knaster.app: nex-bridge, kubernetes.io/service-name: grp-mcp-intern} +addressType: IPv4 +ports: + - {name: http, port: 8790, protocol: TCP} +endpoints: + - addresses: ["192.168.100.29"] diff --git a/platform/proxmox/ansible/playbooks/nex-k3s.yml b/platform/proxmox/ansible/playbooks/nex-k3s.yml index 89537db..619b05d 100644 --- a/platform/proxmox/ansible/playbooks/nex-k3s.yml +++ b/platform/proxmox/ansible/playbooks/nex-k3s.yml @@ -72,7 +72,7 @@ - name: Brücke prüfen (Pod im Namespace nex löst die Namen auf) ansible.builtin.shell: > kubectl -n nex run bridge-check --rm -i --restart=Never --image=alpine:3.20 -- - sh -c 'for h in nex-router nex-know nex-access grp-mcp-intern; do nslookup $h >/dev/null 2>&1 && echo "$h dns ok" || echo "$h dns FEHLT"; done' + sh -c 'for h in nex-router nex-know nex-access grp-mcp-intern; do getent hosts $h >/dev/null && echo "$h dns ok" || echo "$h dns FEHLT"; done' 2>/dev/null register: check changed_when: false