KubeRay 升级指南#

KubeRay / Ray 兼容性#

KubeRay CI 会测试最新的 KubeRay 版本与 Ray 最近的三个主要或次要版本以及最新的 Ray 版本。例如,如果最新的 Ray 版本是 2.7.0,KubeRay CI 将测试最新的 KubeRay 版本与 Ray 2.7.0、2.6.0、2.5.0 以及最新的 Ray 版本。

请勿使用 Ray 2.11.0 到 2.37.0 之间的版本。

提交在 Ray 2.11.0 中引入了一个 bug。当创建一个 Ray 作业时,head 节点上的 Ray dashboard agent 进程会卡住,导致就绪性和存活探针(它们向 dashboard agent 发送 Raylet 的健康检查请求)失败。

  • KubeRay v0.6.0:支持所有 Ray 版本 > Ray 2.0.0

  • KubeRay v1.0.0:支持所有 Ray 版本 > Ray 2.0.0

  • KubeRay v1.1.0:支持 Ray 2.8.0 及更高版本。

  • KubeRay v1.2.X:支持 Ray 2.8.0 及更高版本。

  • KubeRay v1.3.X:支持 Ray 2.38.0 及更高版本。

  • KubeRay v1.4.X:支持 Ray 2.38.0 及更高版本。

以上兼容性计划与 KubeRay CRD 版本计划紧密相关。

CRD 版本管理#

通常,虽然每个版本都会向 KubeRay CRD 添加新字段,但 KubeRay 并不会为每个版本都提升 CRD 版本。

  • KubeRay v0.6.0 及更早版本:CRD v1alpha1

  • KubeRay v1.0.0:CRD v1alpha1 和 v1

  • KubeRay v1.1.0 及更高版本:CRD v1

如果您想了解 CRD 版本管理计划背后的原因,请参阅 ray-project/ray#40357 以获取更多详细信息。

升级 KubeRay#

如果您遇到任何 KubeRay 问题,升级 KubeRay 版本是最佳策略。由于 webhook 的可靠性和安全方面的考虑,KubeRay 不支持使用转换 webhook 将 v1alpha1 API 转换为 v1 API。

要升级 KubeRay 版本,请按顺序执行以下步骤

  1. 升级 CRD manifest,其中包含添加到 v1 CRD 的新字段。

  2. 将 kuberay-operator 镜像升级到新版本。

  3. 验证升级是否成功。

以下是从 v1.3.X 升级到 v1.4.0 的 KubeRay 示例

# Upgrade the CRD to v1.5.1.
# Note: This example uses kubectl because Helm doesn't support lifecycle management of CRDs.
# See the Helm documentation for more details: https://helm.kubernetes.ac.cn/docs/chart_best_practices/custom_resource_definitions/#some-caveats-and-explanations
$ kubectl replace -k "github.com/ray-project/kuberay/ray-operator/config/crd?ref=v1.5.1"

# Upgrade kuberay-operator to v1.5.1. This step doesn't upgrade the CRDs.
$ helm upgrade kuberay-operator kuberay/kuberay-operator --version v1.5.1

# Install a RayCluster using the v1.5.1 helm chart to verify the success of the upgrade.
$ helm install raycluster kuberay/ray-cluster --version 1.5.1