部署到 VM#
你可以使用 Ray Serve CLI 将 Serve 应用部署到 Ray 集群上的生产环境。serve deploy
命令接受一个配置文件路径作为输入,并通过 HTTP 将该文件部署到 Ray 集群。这个集群可以是像本例中那样的本地单节点集群,也可以是使用Ray Cluster Launcher启动的远程多节点集群。
本节将帮助你
理解如何使用 CLI 部署 Ray Serve 配置文件。
理解如何使用 CLI 更新你的应用。
理解如何部署到使用Ray Cluster Launcher启动的远程集群。
$ ls
text_ml.py
serve_config.yaml
$ ray start --head
...
$ serve deploy serve_config.yaml
2022-06-20 17:26:31,106 SUCC scripts.py:139 --
Sent deploy request successfully!
* Use `serve status` to check deployments' statuses.
* Use `serve config` to see the running app's config.
ray start --head
会在本地启动一个长期运行的 Ray 集群。serve deploy serve_config.yaml
会将 serve_config.yaml
文件部署到这个本地集群。要停止 Ray 集群,运行 CLI 命令 ray stop
。
消息 Sent deploy request successfully!
表示
Ray 集群已成功接收你的配置文件。
如果尚未启动 Serve 应用,它将启动一个新的。
Serve 应用将部署你的部署图中的部署项,并根据你的配置文件中的配置进行更新。
这不意味着你的 Serve 应用(包括你的部署项)已经成功开始运行。这是异步发生的,因为 Ray 集群会尝试根据你的配置文件中的设置进行自我更新。请参阅检查应用了解如何获取当前状态。
使用远程集群#
默认情况下,serve deploy
会部署到本地运行的集群。但是,无论何时你想将 Serve 应用部署到远程集群,都应该使用 serve deploy
。serve deploy
接受一个可选的 --address/-a
参数,你可以在其中指定远程 Ray 集群的 Dashboard 地址。该地址应采用以下格式:
[RAY_CLUSTER_URI]:[DASHBOARD_PORT]
例如,由 ray start --head
启动的本地集群的地址是 http://127.0.0.1:8265
。我们可以使用以下命令显式地部署到此地址:
$ serve deploy config_file.yaml -a http://127.0.0.1:8265
Ray Dashboard 的默认端口是 8265。要将其设置为不同的值,请在运行 ray start
时使用 --dashboard-port
参数。
注意
在远程集群上运行时,你需要确保导入路径是可访问的。有关如何添加运行时环境,请参阅处理依赖项。
提示
默认情况下,所有 Serve CLI 命令都假定你在使用本地集群。除了 serve start
和 serve run
之外的所有 Serve CLI 命令都使用由 ray start --head
启动的本地集群关联的 Ray Dashboard 地址。但是,如果设置了 RAY_DASHBOARD_ADDRESS
环境变量,这些 Serve CLI 命令将默认使用该值。
类似地,serve start
和 serve run
默认使用与本地集群关联的 Ray head 节点地址。如果设置了 RAY_ADDRESS
环境变量,它们将使用该值。
你可以通过运行以下命令来检查 RAY_DASHBOARD_ADDRESS
的值:
$ echo $RAY_DASHBOARD_ADDRESS
你可以通过运行以下 CLI 命令来设置此变量:
$ export RAY_DASHBOARD_ADDRESS=[YOUR VALUE]
你可以通过运行以下 CLI 命令来取消设置此变量:
$ unset RAY_DASHBOARD_ADDRESS
检查你的环境中是否存在此变量,以确保你正在使用所需的 Ray Dashboard 地址。
要检查生产环境中 Serve 应用的状态,请参阅检查应用。
通过启动新的 Ray 集群、更新 Serve 配置文件并使用 serve deploy
将文件部署到新集群,来进行重量级代码更新(例如 runtime_env
更改)。新部署完成后,将流量切换到新集群。