CRDs

Kinference policy is configured through several Kubernetes custom resources, including:

KindGroupDescription
InferenceWorkerSetkinference.buoyant.ioA set of local inference workers for one model
InferenceProviderkinference.buoyant.ioA remote inference provider
InferencePoolkinference.buoyant.ioA set of all possible inference destinations
InferencePolicykinference.buoyant.ioThe inference policy for a pool

Kinference also uses one Linkerd Gateway CRD to represent external endpoints:

KindGroupVersionDescription
GatewayBackendgateway.linkerd.iov1alpha1Where an off-cluster backend is, and how to authenticate to it

These CRDs are designed to integrate with the Gateway API to allow for easy routing of inference requests via existing gateways. A Gateway API HTTPRoute can point to a InferencePool; this InferencePool is a collection of local and remote destinations; an optional InferencePolicy can control exactly how inference is handled for this pool.

CRD flow

Default inference policy #

An InferencePool contains an optional reference to an InferencePolicy. If no InferencePolicy is set for a pool, Kinference follows a specific default policy:

  1. All local endpoints that match the requested model are considered.
  2. The endpoint with the lowest expected TTFT is chosen.

Note also that no InferenceProviders will ever be selected under the default policy.