Skip to content

Commit 91acc54

Browse files
committed
feat(helm/raySpec): allow customizing the Ray head node readiness probe
The multi-node Ray head pod hard-codes its readiness probe to failureThreshold: 1 / periodSeconds: 10. On slow, large multi-node deployments the head serving process can take longer than a single 10s period to start answering /health, so the pod is marked unready after the first failed probe and never receives traffic. Users had no way to relax it -- setting readinessProbe under servingEngineSpec, modelSpec, or raySpec.headNode had no effect on the head node. Honor raySpec.headNode.readinessProbe when set (rendered verbatim via toYaml), falling back to the existing default otherwise, so behavior is unchanged unless the field is provided. Document the new field in values.yaml and add it to values.schema.json. Fixes #742. Signed-off-by: Anai-Guo <antai12232931@outlook.com>
1 parent 1e973a3 commit 91acc54

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

helm/templates/ray-cluster.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,11 +167,15 @@ spec:
167167
- name: {{ include "chart.container-port-name" . }}
168168
containerPort: {{ include "chart.container-port" . }}
169169
readinessProbe:
170+
{{- if $modelSpec.raySpec.headNode.readinessProbe }}
171+
{{- toYaml $modelSpec.raySpec.headNode.readinessProbe | nindent 14 }}
172+
{{- else }}
170173
httpGet:
171174
path: /health
172175
port: {{ include "chart.container-port" . }}
173176
failureThreshold: 1
174177
periodSeconds: 10
178+
{{- end }}
175179
livenessProbe:
176180
exec:
177181
command: ["/bin/bash", "-c", "echo TBD"]

helm/values.schema.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1454,6 +1454,10 @@
14541454
"requestMemory": {
14551455
"description": "Memory request for the head node",
14561456
"type": "string"
1457+
},
1458+
"readinessProbe": {
1459+
"description": "Readiness probe configuration for the Ray head node. If set, overrides the built-in default (failureThreshold: 1, periodSeconds: 10). Accepts a standard Kubernetes probe spec.",
1460+
"type": "object"
14571461
}
14581462
}
14591463
}

helm/values.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,18 @@ servingEngineSpec:
275275
requestMemory: "1Gi"
276276
# -- GPU request for the head node
277277
requestGPU: 1
278+
# Readiness probe for the Ray head node (raySpec.headNode.readinessProbe).
279+
# If unset, defaults to an httpGet /health probe with failureThreshold 1
280+
# and periodSeconds 10. Override it to relax the probe when the model
281+
# takes a long time to come up on a multi-node setup, otherwise the head
282+
# pod may be marked unready and never receive traffic. Accepts a standard
283+
# Kubernetes probe spec, e.g.:
284+
# readinessProbe:
285+
# httpGet:
286+
# path: /health
287+
# port: 8000
288+
# failureThreshold: 10
289+
# periodSeconds: 30
278290

279291
# -- Container port
280292
containerPort: 8000

0 commit comments

Comments
 (0)