InferNex Bridge
Adaptation layer for integrating InferNex with KServe, supporting dual CRD declarative deployment
Overview
InferNex Bridge is the adaptation layer (Controller + Webhook) for integrating InferNex with KServe. Based on LLMInferenceService (KServe's LLM inference CRD) / InferNexService (InferNex Bridge's native inference CRD) declarations, it automatically deploys and reconciles the InferNex inference suite.
Two deployment modes are available:
- KServe + InferNex Bridge: The inference engine / Hermes Router is deployed by KServe, while enhancement components are deployed by InferNex Bridge.
- InferNex Bridge: InferNex Bridge uniformly orchestrates the inference engine, Hermes Router, and enhancement components (Mooncake KVCache, cache-indexer, proxy-server, Elastic-Scaler, Tidal Controller, ResourceScalingGroup, Eagle-Eye Hardware Monitor, Eagle-Eye Hardware Diagnosis, Eagle-Eye Network Performance Exporter).
This provides a different entry point from the one-click Helm full-stack installation via the InferNex main chart.
The scope of enhancement component capabilities is consistent with the AI Inference Integrated Deployment. For architecture and design rationale, see OFEP-0040 InferNex KServe Adaptation Layer Proposal.
Specification
InferNex Bridge targets Ascend NPU full-stack inference, supporting dual entry points via LLMInferenceService and InferNexService. For version compatibility, Webhook patch behavior, default images, and responsibility boundaries, see InferNex Bridge Technical Specification.
Version compatibility
| Component | Supported versions |
|---|---|
| KServe LLMISVC controller | 0.17.0, 0.18.0, 0.19.0 |
| InferNex | 26.6.0 |
For KServe installation prerequisites, see LLMInferenceService Prerequisites; for InferNex overall deployment specifications, see InferNex Specification #42.
Quick Start
Prerequisites
- Kubernetes cluster,
kubectl, Helm v3+. - Inference cluster: NPU Operator, LWS, etc. See InferNex User Guide — Prerequisites.
- KServe: KServe must be installed (LLMISVC controller version 0.17.0–0.19.0).
- Gateway access: Envoy Gateway, Gateway API, and GIE-related CRDs.
Binary Deployment
Using namespace infernex-bridge-system and release name infernex-bridge as an example, execute:
helm upgrade --install infernex-bridge oci://cr.openfuyao.cn/charts/infernex-bridge \
--version 0.0.0-latest \
-n infernex-bridge-system --create-namespace --wait --timeout 10m
Replace 0.0.0-latest with the specific Chart version.
Source Deployment
-
Clone the project from the repository.
git clone https://gitcode.com/openFuyao/InferNex.git -
Install InferNex Bridge.
Using namespace
infernex-bridge-systemand release nameinfernex-bridgeas an example, execute the following command in theInferNex/component/InferNex-Bridgedirectory:cd InferNex/component/InferNex-Bridge helm upgrade --install infernex-bridge ./chart/infernex-bridge \ -n infernex-bridge-system --create-namespace --wait --timeout 10m
Verify Deployment
-
Confirm that the Controller Pod and Service are ready.
kubectl get pods,svc -n infernex-bridge-system -
Confirm that the Mutating / Validating Webhooks are registered.
kubectl get mutatingwebhookconfiguration,validatingwebhookconfiguration | grep infernex-bridge -
Wait for Webhooks and certificates to be ready, then deploy InferNex.
For installation parameters, uninstallation, and InferNex deployment, see the AI Inference InferNex Bridge.
Deploy InferNex
After InferNex Bridge is installed and verified, select an example YAML from config/examples/ and submit it with kubectl apply to deploy InferNex.
-
Select an Example File
LLMISVC
Mode Directory Description Aggregate llmisvc/aggregate/ ag-01-*.yaml..ag-03-*.yamlDisaggregated (PD) llmisvc/disaggregated/ pd-01-*.yaml..pd-05-*.yamlExamples include the
huggingface-downloadinitContainer, which pulls models from Hugging Face Hub during deployment (e.g.,ag-01-single-node-single-card.yaml).InferNexService (inference engine templates aligned with the same Spec IDs as llmisvc)
Mode Directory Description Aggregate insvc/aggregate/ ag-01-*.yaml..ag-03-*.yamlDisaggregated (PD) insvc/disaggregated/ pd-01-*.yaml..pd-05-*.yamlExamples include the Mooncake initContainer,
huggingface-download, and completevllm servestartup parameters (consistent with the corresponding llmisvc examples);InferNexService.spec.model+baseRefspoint to the inference engine templates inInferNexServiceConfig.- KServe
LLMInferenceService+ InferNex Bridge: Select the YAML with the corresponding Spec ID underllmisvc/(containsinfernex.io/runtime: "true"). - InferNex Bridge directly managing
InferNexService: Select the YAML with the same Spec ID underinsvc/.
- KServe
-
Submit the YAML
cd InferNex/component/InferNex-Bridge/config/examples/insvc/aggregate kubectl apply -f ag-01-single-node-single-card.yaml -n kserveReplace the path and filename with your target scenario.