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 版本,请按以下步骤顺序操作:
升级 CRD manifest,其中包含添加到 v1 CRD 的新字段。
将 kuberay-operator 镜像升级到新版本。
验证升级是否成功。
以下是从 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