Ray autoscaler for k8s installation

https://docs.ray.io/en/latest/autoscaling.html#kubernetes

1. 安装 kuberctl

pip install kubernetes

要让 kuberctl 能访问 kubernetes 集群,需要将配置文件放在 ~/.kube/config 中

2. 生成 ray head

ray up ray/python/ray/autoscaler/kubernetes/example-full.yaml

这个过程可能会报错,因为 autoscaler 镜像比较大,有 5 个多 G,启动 pod 前需要拉取,另外可以将拉取策略改成 never

ray 部署完成之后,只有 head pod, 当用任务运行时,会再创建 worker,之后空闲会再销毁

3. 运行脚本

使用 wrapper.sh,先将要执行的脚本文件通过 ray rsync_up copy 到 head pod 中,然后再运行

RAY_K8S_YAML='../ray-k8s-cluster.yaml'
CURRENT_DIR=$(pwd)
CURRENT_DIR_NAME=${PWD##*/}
RAY_K8S_TARGET=/run/log/

ray rsync_up $RAY_K8S_YAML  $CURRENT_DIR $RAY_K8S_TARGET
ray exec $RAY_K8S_YAML "cd $RAY_K8S_TARGET/$CURRENT_DIR_NAME; bash start.sh; rm -rf $RAY_K8S_TARGET/$CURRENT_DIR_NAME"

客户端机器可以通过 shell 拿到 pod 中脚本运行的日志和返回状态

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。