@@ -7,6 +7,7 @@ This deployment uses **dynamic IP configuration** to ensure portability across d
77## Architecture
88
99### Pod Structure
10+
10111 . ** semantic-router Pod** :
1112 - Container 1: ` semantic-router ` (ExtProc service)
1213 - Container 2: ` envoy-proxy ` (Proxy)
@@ -41,16 +42,19 @@ oc create configmap semantic-router-config --from-file=dynamic-config.yaml
4142## Benefits
4243
4344### ✅ Cross-Cluster Portability
45+
4446- Works on any OpenShift/Kubernetes cluster
4547- No manual IP configuration needed
4648- IPs are discovered automatically
4749
4850### ✅ Service-Based Routing
51+
4952- Uses Kubernetes ClusterIP services
5053- Automatic service discovery
5154- Load balancing handled by Kubernetes
5255
5356### ✅ Separation of Concerns
57+
5458- vLLM models in separate pods
5559- Independent scaling
5660- Better resource isolation
@@ -185,24 +189,29 @@ oc rollout status deployment/semantic-router -n vllm-semantic-router-system
185189## Comparison: Alternative Approaches
186190
187191### ❌ Hardcoded IPs (Original)
192+
188193``` yaml
189194address : " 172.30.64.134" # Works only on specific cluster
190195` ` `
191196
192197### ❌ Localhost (Sidecar Pattern)
198+
193199` ` ` yaml
194200address : " 127.0.0.1" # Requires all containers in same pod
195201` ` `
196202
197203### ✅ Dynamic IPs (Current Solution)
204+
198205` ` ` yaml
199206address : " $DISCOVERED_IP" # Works on any cluster
200207` ` `
201208
202209### 🚀 DNS Names (Future Enhancement)
210+
203211` ` ` yaml
204212address : " vllm-model-a.vllm-semantic-router-system.svc.cluster.local"
205213` ` `
214+
206215**Note**: Requires Go code changes to accept DNS names (see ` src/semantic-router/pkg/config/validator.go`)
207216
208217# # Future Improvements
0 commit comments