Getting Started
Verified against the pinned commit
affd5be. Commands assume Go 1.26 and a working Docker or Kubernetes setup.
Prerequisites
- Go 1.26 (the
go.moddeclaresgo 1.26.0) to build from source. - A container runtime for the local one-click path, which provisions a cluster for you.
- For a real deployment: a Kubernetes cluster with the Volcano scheduler installed, since the default
ModelServingSpec.SchedulerNameisvolcano(pkg/apis/workload/v1alpha1/model_serving_types.go:47).
Install
The fastest path, no cluster required, is the one-click script (README.md:77):
./hack/local-up-kthena.shRun it with --help for options. To build the binaries from source instead:
make buildContainer images are built with make docker-build-all, which produces the router, controller, downloader, and runtime images.
A first working setup
The core job is to serve one model and reach it through the router over the OpenAI-compatible API.
Bring up Kthena locally.
bash./hack/local-up-kthena.shApply a
ModelBooster(or aModelServing) so the controller stands the model up as aServingGroup. SetModelBackend.ModelURIto a supported scheme such ashf://(onlyhf://,s3://,pvc://, andms://are allowed, perpkg/apis/workload/v1alpha1/model_booster_types.go:59). Follow the manifests in the quick-start guide.Send an OpenAI-compatible request through the router once the pods are ready.
bashcurl http://<router-address>/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "<your-model>", "messages": [{"role": "user", "content": "hello"}]}'
Verify it works
- List served models, which the router answers directly (
pkg/kthena-router/router/router.go:216-220):
curl http://<router-address>/v1/models- Confirm the
ServingGrouppods are scheduled. With Volcano installed they are placed as a gang through a Volcano PodGroup (pkg/model-serving-controller/controller/model_serving_controller.go:194). A/v1/chat/completionscall returning a completion confirms the end-to-end path.
Where to go next
- The official quick-start guide for full manifests.
- The vLLM Kthena integration and the Ascend NPU guide for engine-specific deployment.
- The repo's
examples/keda-autoscalingandexamples/prometheus-autoscalerfor scaling, and the Volcano scheduler docs for gang and network-topology-aware placement.