문서 목차
ORKESTRIXAI 플랫폼
ai_inference
정보 — 요건 추론 서비스용 Kubernetes Gateway API를 지원한다 — 가중치 트래픽 분할, 헤더 기반 라우팅(OpenAI 프로토콜 헤더), 서비스 메시 연동(선택).
QUANTUM C&S
정보 — 요건
추론 서비스용 Kubernetes Gateway API를 지원한다 — 가중치 트래픽 분할, 헤더 기반 라우팅(OpenAI 프로토콜 헤더), 서비스 메시 연동(선택).
카테고리: 네트워킹 (Networking) · 수준: MUST · 상태: Implemented
적용 솔루션
QKS는 Envoy Gateway를 Gateway API(gateway.networking.k8s.io) 구현체로 운영합니다. KServe 추론용 Gateway(kserve-ingress-gateway)가 배포되어 있고, HTTPRoute로 추론 백엔드 라우팅(가중치 분할 · 헤더 매칭)을 제공합니다. Istio GatewayClass도 병행 제공되어 서비스 메시 연동(선택 요건)이 가능합니다.
증명 (명령어 + 출력)
1. Gateway API 구현체 (GatewayClass Accepted)
$ kubectl get gatewayclass
NAME CONTROLLER ACCEPTED AGE
envoy gateway.envoyproxy.io/gatewayclass-controller True 217d
istio istio.io/gateway-controller True 217d
istio-remote istio.io/unmanaged-gateway True 217d
# captured: 2026-07-02T01:54:25Z
2. 추론용 Gateway 운영 (PROGRAMMED)
$ kubectl get gateway -A -o wide
NAMESPACE NAME CLASS ADDRESS PROGRAMMED AGE
kserve kserve-ingress-gateway envoy 192.168.10.94 True 217d
# captured: 2026-07-02T01:54:25Z
3. 추론 서비스 HTTPRoute 실사용 — InferencePool 백엔드 (GAIE)
기존 운영 라우트가 Gateway API Inference Extension의 InferencePool을 백엔드로 사용합니다.
$ kubectl -n kserve get httproute facebook-opt-125m-single-kserve-route -o yaml | sed -n '/spec:/,$p'
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: kserve-ingress-gateway
namespace: kserve
rules:
- backendRefs:
- group: inference.networking.x-k8s.io
kind: InferencePool
name: facebook-opt-125m-single-inference-pool
port: 8000
weight: 1
filters:
- type: URLRewrite
urlRewrite:
path: { replacePrefixMatch: /, type: ReplacePrefixMatch }
matches:
- path: { type: PathPrefix, value: /kserve/facebook-opt-125m-single }
status:
parents:
- conditions:
- { type: Accepted, status: "True", reason: Accepted }
- { type: ResolvedRefs, status: "True", reason: ResolvedRefs }
controllerName: gateway.envoyproxy.io/gatewayclass-controller
# captured: 2026-07-02T01:54:54Z
InferencePool(inference.networking.x-k8s.io) 백엔드는 SHOULD 항목advanced_inference_ingress(GAIE)의 근거로도 활용 가능.
4. 가중치 분할 + 헤더 기반 라우팅 시연
전용 네임스페이스에 아래 HTTPRoute를 배포해 두 능력을 시연했습니다 (시연 후 정리).
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: ai-conformance-routing-demo
namespace: ai-inf-demo
spec:
parentRefs:
- name: kserve-ingress-gateway
namespace: kserve
rules:
# (1) 헤더 기반 라우팅: x-model-version=v2 → llm-v2
- matches:
- path: { type: PathPrefix, value: /conformance-demo }
headers: [ { name: x-model-version, value: v2 } ]
backendRefs:
- { name: llm-v2, port: 80 }
# (2) 가중치 분할: 기본 트래픽 90/10
- matches:
- path: { type: PathPrefix, value: /conformance-demo }
backendRefs:
- { name: llm-v1, port: 80, weight: 90 }
- { name: llm-v2, port: 80, weight: 10 }
$ kubectl -n ai-inf-demo get httproute ai-conformance-routing-demo -o jsonpath='{.status.parents[0].conditions}'
Accepted=True (Route is accepted)
ResolvedRefs=True (Resolved all the Object references for the Route)
# captured: 2026-07-02T02:04:00Z
관련 링크
- 재현 스크립트:
conformance/05-ai-inference/ai-inference-verify.sh - 시연 매니페스트:
conformance/05-ai-inference/evidence/05_demo_httproute.yaml