KubeRay 升级指南#

KubeRay / Ray 兼容性#

KubeRay CI 会针对 Ray 的三个最新主要或次要版本以及 Ray 的夜间构建版本来测试每晚的 KubeRay 版本。例如,如果最新的 Ray 版本是 2.7.0,KubeRay CI 会针对 Ray 2.7.0、2.6.0、2.5.0 以及 Ray 的夜间构建版本测试每晚的 KubeRay 版本。

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

提交 在 Ray 2.11.0 中引入了一个错误。当创建 Ray 作业时,头节点上的 Ray dashboard agent 进程会卡住,导致向 dashboard agent 发送 Raylet 健康检查请求的 readiness 和 liveness 探测失败。

  • KubeRay v0.6.0:支持所有大于 Ray 2.0.0 的 Ray 版本

  • KubeRay v1.0.0:支持所有大于 Ray 2.0.0 的 Ray 版本

  • 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 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

  • KubeRay v1.2.2:CRD v1

  • KubeRay v1.3.0:CRD v1

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

升级 KubeRay#

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

要升级 KubeRay 版本,请按以下步骤顺序操作:

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

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

  3. 验证升级是否成功。

以下是从 KubeRay v1.2.X 升级到 v1.3.0 的示例

# Upgrade the CRD to v1.3.0.
# 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.3.0"

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

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

以下是从 KubeRay v1.1.0 升级到 v1.2.2 的示例

# Upgrade the CRD to v1.2.2.
# 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.2.2"

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

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