You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -46,7 +46,7 @@ Both the LLM route and the batch route use **kubernetesTokenReview** for authent
46
46
47
47
### 1.4 Authorization Model
48
48
49
-
Model access is controlled through Kubernetes RBAC. Users need `get` permission on the specific `LLMInferenceService` resource to access a model. This is granted by creating a Role and RoleBinding in the model's namespace (see [Enabling authentication and authorization for LLM inference service](https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/3.4/html/deploy_models_using_distributed_inference_with_llm-d/enabling-authentication-and-authorization-for-llm-inference-service_distributed-inference) for details).
49
+
Model access is controlled through Kubernetes RBAC. Users need `get` permission on the specific `LLMInferenceService` resource to access a model. This is granted by creating a Role and RoleBinding in the model's namespace (see [Enabling authentication and authorization for LLM inference service](https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/3.5/html/deploy_models_using_distributed_inference_with_llm-d/enabling-authentication-and-authorization-for-llm-inference-service_distributed-inference) for details).
50
50
51
51
-**LLM route**: SubjectAccessReview checks if user can `get llminferenceservices/<name>` — unauthorized requests are rejected with **403**
52
52
-**Batch route**: No authorization check — authorization is enforced by the batch-llm-route on the Internal Gateway when the processor forwards inference requests with the user's original token
@@ -287,7 +287,7 @@ oc rollout status deployment/openshift-ai-inference-openshift-default -n openshi
287
287
288
288
### 3.4 Install RHCL
289
289
290
-
Follow [Red Hat Connectivity Link docs](https://docs.redhat.com/en/documentation/red_hat_connectivity_link/1.3) to install RHCL
290
+
Follow [Red Hat Connectivity Link docs](https://docs.redhat.com/en/documentation/red_hat_connectivity_link) to install RHCL
Follow [deploy model doc](https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/3.4/html/deploy_models_using_distributed_inference_with_llm-d/index) to deploy model with LLM-D
479
+
Follow [deploy model doc](https://docs.redhat.com/en/documentation/red_hat_openshift_ai_self-managed/3.5/html/deploy_models_using_distributed_inference_with_llm-d/index) to deploy model with LLM-D
480
480
481
-
For more examples: [kserve samples repo](https://github.com/red-hat-data-services/kserve/tree/main/docs/samples/llmisvc) (switch to the `rhoai-<version>` branch matching your RHOAI version for version-specific samples)
481
+
For more examples: [kserve samples repo](https://github.com/red-hat-data-services/kserve/tree/rhoai-3.5/docs/samples/llmisvc) (switch to the `rhoai-<version>` branch matching your RHOAI version for version-specific samples)
482
482
483
483
The following example deploys a simulated model with `LLMInferenceService`.
484
484
@@ -521,10 +521,13 @@ spec:
521
521
- type: round-robin-fairness-policy
522
522
- type: global-strict-fairness-policy
523
523
- type: slo-deadline-ordering-policy
524
+
- type: utilization-detector
525
+
parameters:
526
+
queueDepthThreshold: 5
527
+
kvCacheUtilThreshold: 0.8
524
528
schedulingProfiles: []
525
529
saturationDetector:
526
-
queueDepthThreshold: 5
527
-
kvCacheUtilThreshold: 0.8
530
+
pluginRef: utilization-detector
528
531
flowControl:
529
532
maxBytes: 4294967296
530
533
defaultRequestTTL: 30s
@@ -664,7 +667,7 @@ EOF
664
667
665
668
### 3.8 Configure TokenRateLimitPolicy for LLMInferenceService
666
669
667
-
Configure per-user token rate limiting for inference requests. See [Red Hat Connectivity Link docs](https://docs.redhat.com/en/documentation/red_hat_connectivity_link/1.3) for details. The following is an example configuration.
670
+
Configure per-user token rate limiting for inference requests. See [Red Hat Connectivity Link docs](https://docs.redhat.com/en/documentation/red_hat_connectivity_link) for details. The following is an example configuration.
668
671
669
672
> **Note**: The TokenRateLimitPolicy targets the Gateway (not HTTPRoute) because LLMInferenceService dynamically generates the inference HTTPRoute name.
Both options require the same dependencies (Redis, PostgreSQL, MinIO) and produce the same result.
866
+
The batch-gateway is deployed via the `LLMBatchGateway` CR, which is managed by the batch-gateway-operator (deployed automatically when `aigateway.batchGateway.managementState: Managed` is set in the DataScienceCluster).
886
867
887
868
<details>
888
-
<summary>Create namespace and install dependencies (required for both options)</summary>
869
+
<summary>Create namespace and install dependencies</summary>
#### 3.9.1 Option A: Deploy via LLMBatchGateway CR
999
-
1000
-
> **Prerequisite**: The DataScienceCluster must have `aigateway.managementState: Managed` with `aigateway.batchGateway.managementState: Managed` (see [3.5](#35-install-rhoai)). This deploys the ai-gateway-operator, which in turn deploys the batch-gateway-operator.
> - **`modelGateways.<model>.inferenceObjective`**: The `InferenceObjective` CRD name sent as the `x-gateway-inference-objective` header. EPP uses this to assign the request to the batch priority band (priority -1, sheddable). Without this, batch requests default to priority 0 and compete equally with interactive traffic.
1129
-
> - **`modelGateways.<model>.url`**: The processor uses this URL to send inference requests. It points to the Internal Gateway's model endpoint (discovered from the Internal Gateway Service), not the external Gateway or the model server directly. The Internal Gateway enforces AuthPolicy (model access check) but not TokenRateLimitPolicy.
1130
-
> - **`passThroughHeaders`**: Defaults to `[Authorization]`, so the processor forwards the end user's bearer token on inference calls without extra configuration. Override this only if you need a different set of headers.
1131
-
>
1132
-
> - **`apiserver.tls.certManager.*`**: Enables TLS for the batch API server using cert-manager. The `issuerName` must match a ClusterIssuer (e.g. `selfsigned-issuer`). The `dnsNames` should include the Service name and FQDN for TLS certificate generation. In this demo the DestinationRule (see 3.10) uses `insecureSkipVerify: true` because we use a self-signed certificate; in production, configure a trusted CA and set `insecureSkipVerify: false`.
1133
-
> - **File storage**: This example uses S3-compatible storage (MinIO). To use a PVC instead, replace the `s3` options with:
> and create a PVC with `ReadWriteMany` access mode. Note that `ReadWriteMany` requires a storage class that supports RWX (e.g. NFS, CephFS, EFS). Block storage (e.g. gp2, gp3) does not support RWX.
1140
-
1141
-
</details>
1142
-
1143
-
1144
1052
### 3.10 Configure HTTPRoute and Policies for Batch Gateway
1145
1053
1146
1054
Set the variable used throughout this section (re-set if starting a new shell):
0 commit comments