Skip to content

Commit 1a4f3c8

Browse files
authored
Update Kubernetes docs (#1668)
1 parent 21b1f40 commit 1a4f3c8

1 file changed

Lines changed: 34 additions & 7 deletions

File tree

  • website/versioned_docs/version-1.11.x/deployment/kubernetes

website/versioned_docs/version-1.11.x/deployment/kubernetes/index.md

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ The Helm convention is to use a file called `values.yaml`, but any file name can
178178
| `resources` | Resource requests and limits for the Spice.ai container. See [Container resource examples](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#example-1). | `{}` |
179179
| `service.type` | Kubernetes service type. Can be null, ClusterIP, NodePort, or LoadBalancer. | `null` |
180180
| `serviceAccount.create` | Specifies whether a ServiceAccount should be created. | `false` |
181+
| `livenessProbe` | Kubernetes liveness probe configuration. Uses standard [probe shape](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes). | see `values.yaml` |
182+
| `readinessProbe` | Kubernetes readiness probe configuration. Uses standard [probe shape](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes). | see `values.yaml` |
183+
| `startupProbe` | Kubernetes startup probe configuration. Uses standard [probe shape](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes). | see `values.yaml` |
181184
| `spicepod` | Define the [Spicepod](https://spiceai.org/docs/getting-started/spicepods) to be loaded by the Spice.ai runtime. | `{}` |
182185
| `stateful.enabled` | Use a StatefulSet with a PVC (Persistent Volume Claim) for the data volume. | `false` |
183186
| `stateful.mountPath` | Mount path in container for the persistent volume. | `/data` |
@@ -241,34 +244,58 @@ Once the monitoring is enabled, import the [Spice Grafana dashboard](../monitori
241244

242245
### Health and Readiness
243246

244-
Spice provides two HTTP endpoints for monitoring the runtime state: `/health` and `/v1/ready`. These endpoints are used for Kubernetes health and readiness probes in the Spice deployment. The Spice Helm chart automatically configures these probes.
247+
Spice provides two HTTP endpoints for monitoring the runtime state: `/health` and `/v1/ready`. These endpoints are used for Kubernetes health and readiness probes in the Spice deployment. The Spice Helm chart automatically configures these probes with sensible defaults, and all three probes (`livenessProbe`, `readinessProbe`, `startupProbe`) can be customized via Helm values.
245248

246-
#### Health Probe
249+
#### Health Probe (Liveness + Startup)
247250

248-
The `/health` endpoint indicates whether the Spice process is up and running, ready to receive requests. A probe can be configured for custom deployment as follows:
251+
The `/health` endpoint indicates whether the Spice process is up and running. The default liveness and startup probes use this endpoint:
249252

250253
```yaml
251254
livenessProbe:
252255
httpGet:
253256
path: /health
254257
port: 8090
258+
timeoutSeconds: 1
259+
periodSeconds: 10
260+
failureThreshold: 3
255261
```
256262
257-
In Kubernetes, the pod will not be marked as healthy until the `/health` endpoint returns a `200` status.
258-
259263
#### Readiness Probe
260264
261-
The `/ready` endpoint indicates **whether the Spice components (datasets, models, etc) are ready**. While the `/health` endpoint might show that Spice is up and running, the `/ready` endpoint must return a `200` status to ensure that queries will return results.
265+
The `/v1/ready` endpoint indicates **whether the Spice components (datasets, models, etc.) are ready**. While `/health` shows that Spice is running, `/v1/ready` must return `200` to ensure queries will return results:
262266

263267
```yaml
264268
readinessProbe:
265269
httpGet:
266270
path: /v1/ready
267271
port: 8090
272+
timeoutSeconds: 1
273+
periodSeconds: 10
274+
failureThreshold: 3
275+
```
276+
277+
#### Customizing Probes
278+
279+
Probe values can be partially overridden — omitted fields keep the defaults from `values.yaml`. If `exec`, `tcpSocket`, or `grpc` is configured, the chart omits the default `httpGet` handler:
280+
281+
```yaml
282+
livenessProbe:
283+
httpGet:
284+
path: /health
285+
port: 8090
286+
timeoutSeconds: 5
287+
failureThreshold: 5
288+
289+
startupProbe:
290+
httpGet:
291+
path: /health
292+
port: 8090
293+
failureThreshold: 30
294+
periodSeconds: 5
268295
```
269296

270297
:::note
271-
For more information on how Kubernetes uses probes to determine the health of a pod, see [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes)
298+
For more information on how Kubernetes uses probes to determine the health of a pod, see [here](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes).
272299
:::
273300

274301
## Service Configuration

0 commit comments

Comments
 (0)