命令行界面#
集群 CLI#
sky launch#
启动一个集群或任务。
如果 ENTRYPOINT 指向一个有效的 YAML 文件,则将其读取为任务规范。否则,它将被解释为一个 bash 命令。
在这两种情况下,命令都在任务的 workdir 下运行(如果指定),并且它们会经过作业队列调度。
sky launch [OPTIONS] [ENTRYPOINT]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -c, --cluster <cluster>#
集群名称。如果提供,则重用具有该名称的现有集群,或配置具有自动生成名称的新集群。否则配置一个具有自动生成名称的新集群。
- --dryrun#
如果为 True,则不实际运行作业。
- -d, --detach-run, -no-d#
如果为 True,作业一提交,即从此调用返回,且不流式传输执行日志。
- -n, --name <name>#
任务名称。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“name”配置。
- --workdir <workdir>#
如果指定,则将此目录同步到远程工作目录,任务将在此处调用。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“workdir”配置。
- --cloud <cloud>#
要使用的云。如果指定,将覆盖“resources.cloud”配置。传递“none”会重置配置。
- --region <region>#
要使用的区域。如果指定,将覆盖“resources.region”配置。传递“none”会重置配置。
- --zone <zone>#
要使用的可用区。如果指定,将覆盖“resources.zone”配置。传递“none”会重置配置。
- --num-nodes <num_nodes>#
执行任务的节点数量。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“num_nodes”配置。
- --cpus <cpus>#
每个实例必须拥有的 vCPU 数量(例如,
--cpus=4
(正好 4 个)或--cpus=4+
(至少 4 个))。这用于自动选择实例类型。
- --memory <memory>#
每个实例必须拥有的内存量(GB)(例如,
--memory=16
(正好 16GB),--memory=16+
(至少 16GB))
- --disk-size <disk_size>#
操作系统磁盘大小(GB)。
- --disk-tier <disk_tier>#
操作系统磁盘层级。可以是 low, medium, high, ultra, best, none 之一。如果指定 best,则使用最佳磁盘层级。如果指定 none,则强制使用默认值并覆盖任务 YAML 中的选项。默认值:medium
- 选项:
low | medium | high | ultra | best | none
- --use-spot, --no-use-spot#
是否请求 spot 实例。如果指定,将覆盖“resources.use_spot”配置。
- --image-id <image_id>#
用于启动实例的自定义镜像 ID。传递“none”会重置配置。
- --env-file <env_file>#
指向 .dotenv 文件,其中包含要在远程节点上设置的环境变量。
如果
--env-file
中的任何值与--env
设置的值冲突,则优先使用--env
的值。
- --env <env>#
要在远程节点上设置的环境变量。可以多次指定。示例:
1.--env MY_ENV=1
: 在集群上将$MY_ENV
设置为 1。2.
--env MY_ENV2=$HOME
: 在集群上将$MY_ENV2
设置为与执行 CLI 命令的本地环境中的$HOME
相同的值。3.
--env MY_ENV3
: 在集群上将$MY_ENV3
设置为与本地环境中的$MY_ENV3
相同的值。
- --gpus <gpus>#
要使用的 GPU 类型和数量。示例值:“V100:8”、“V100”(表示数量为 1 的简写),或“V100:0.5”(调度框架支持小数数量)。如果此命令正在启动新集群,则这是要配置的资源。如果正在重用现有集群,则将其视为任务需求,必须适合集群的总资源,并用于调度任务。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“accelerators”配置。传递“none”会重置配置。
- -t, --instance-type <instance_type>#
要使用的实例类型。如果指定,将覆盖“resources.instance_type”配置。传递“none”会重置配置。
- --ports <ports>#
要在集群上开放的端口。如果指定,将覆盖 YAML 中的“ports”配置。
- --async, --no-async#
异步运行命令。
- -i, --idle-minutes-to-autostop <idle_minutes_to_autostop>#
集群在此分钟数空闲后自动停止,即集群的作业队列中没有运行或待处理的作业。当在作业队列中找到设置中/运行中/待处理作业时,空闲状态将被重置。设置此标志等效于运行
sky launch -d ...
然后运行sky autostop -i <minutes>
。如果未设置,集群将不会自动停止。
- --down#
自动关闭集群:在所有作业完成后(成功或异常)拆除集群。如果同时设置了 –idle-minutes-to-autostop,集群将在指定的空闲时间后拆除。请注意,如果在资源调配/数据同步/设置过程中发生错误,集群将不会被拆除,以方便调试。
- -r, --retry-until-up#
如果由于资源不可用错误导致无法在任何可能的区域/云上启动集群,是否无限重试资源调配直到集群启动。
- -y, --yes#
跳过确认提示。
- --no-setup#
(重新)启动集群时跳过设置阶段。
- --clone-disk-from, --clone <clone_disk_from>#
[实验性功能] 从现有集群克隆磁盘以启动新集群。当新集群需要在启动磁盘上拥有与现有集群相同的数据时,此功能非常有用。
- --fast#
[实验性功能] 如果集群已启动并可用,跳过资源调配和设置步骤。
参数
- ENTRYPOINT#
可选参数
sky stop#
停止集群。
CLUSTER 是要停止的集群名称(或 glob 模式)。如果同时提供了 CLUSTER 和 --all
,则后者优先。
集群停止时,附加磁盘上的数据不会丢失。实例的计费将停止,但磁盘仍会收费。重新启动集群时,这些磁盘将重新附加。
当前,spot 实例集群无法停止。
示例
# Stop a specific cluster.
sky stop cluster_name
# Stop multiple clusters.
sky stop cluster1 cluster2
# Stop all clusters matching glob pattern 'cluster*'.
sky stop "cluster*"
# Stop all existing clusters.
sky stop -a
sky stop [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
停止所有现有集群。
- -u, --all-users#
停止所有用户的现有集群。
- -y, --yes#
跳过确认提示。
- --async, --no-async#
异步运行命令。
参数
- CLUSTERS#
可选参数
sky start#
重启集群。
如果集群之前已停止(状态为 STOPPED)或在资源调配/运行时安装中失败(状态为 INIT),此命令将尝试启动集群。在后一种情况下,资源调配和运行时安装将重试。
重新启动停止的集群时,不使用自动故障转移资源调配。它将在之前选择的相同云、区域和可用区中启动。
如果集群已处于 UP 状态,此命令无效。
示例
# Restart a specific cluster.
sky start cluster_name
# Restart multiple clusters.
sky start cluster1 cluster2
# Restart all clusters.
sky start -a
sky start [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
启动所有现有集群。
- -y, --yes#
跳过确认提示。
- -i, --idle-minutes-to-autostop <idle_minutes_to_autostop>#
集群在此分钟数空闲后自动停止,即集群的作业队列中没有运行或待处理的作业。当在作业队列中找到设置中/运行中/待处理作业时,空闲状态将被重置。设置此标志等效于运行
sky launch -d ...
然后运行sky autostop -i <minutes>
。如果未设置,集群将不会自动停止。
- --down#
自动关闭集群:在所有作业完成后(成功或异常)经过指定的空闲时间后拆除集群。需要设置 –idle-minutes-to-autostop。
- -r, --retry-until-up#
如果由于资源不可用错误导致无法启动集群,是否无限重试资源调配直到集群启动。
- -f, --force#
即使集群已处于 UP 状态,也强制启动集群。对于升级集群上的 SkyPilot 运行时非常有用。
- --async, --no-async#
异步运行命令。
参数
- CLUSTERS#
可选参数
sky down#
拆除集群。
CLUSTER 是要拆除的集群名称(或 glob 模式)。如果同时提供了 CLUSTER 和 --all
,则后者优先。
拆除集群将删除所有相关资源(所有计费停止),附加磁盘上的任何数据也将丢失。作为集群一部分的加速器(例如,TPU)也将被删除。
示例
# Tear down a specific cluster.
sky down cluster_name
# Tear down multiple clusters.
sky down cluster1 cluster2
# Tear down all clusters matching glob pattern 'cluster*'.
sky down "cluster*"
# Tear down all existing clusters.
sky down -a
sky down [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
拆除所有现有集群。
- -u, --all-users#
拆除所有用户的现有集群。
- -y, --yes#
跳过确认提示。
- -p, --purge#
(高级) 即使实际集群在云上终止失败,也强制从 SkyPilot 的集群表中删除集群。警告:此标志仅在某些手动故障排除场景中谨慎设置;设置此标志后,用户有责任确保没有泄露的实例和相关资源。
- --async, --no-async#
异步运行命令。
参数
- CLUSTERS#
可选参数
sky status#
显示集群。
如果提供了 CLUSTERS,则显示这些集群。否则,显示所有集群。
如果指定了 –ip,则显示集群头节点的 IP 地址。仅当 CLUSTERS 包含且只有一个集群时可用,例如 sky status --ip mycluster
。
如果指定了 –endpoints,则显示集群中所有暴露的端点。仅当 CLUSTERS 包含且只有一个集群时可用,例如 sky status --endpoints mycluster
。要查询单个端点,可以使用 sky status mycluster --endpoint 8888
。
运行 sky status 将更新本地的集群 ssh 配置,以便您可以直接 ssh 到集群或使用 vscode 连接到集群。
记录了每个集群的以下字段:集群名称、上次启动以来的时间、资源、区域、可用区、每小时价格、状态、自动停止、命令。
使用 sky status -v
显示所有字段。
每个集群可以具有以下状态之一
INIT
: 集群可能在线或离线。可能发生在以下情况:正在进行资源调配或运行时设置。(
sky launch
已开始但尚未完成。)或者,集群处于异常状态,例如某些集群节点已关闭,或 SkyPilot 运行时不健康。(要恢复集群,请在其上再次尝试
sky launch
。)
UP
: 资源调配和运行时设置已成功,集群在线。(最近一次sky launch
已成功完成。)STOPPED
: 集群已停止,存储已持久化。使用sky start
重启集群。
自动停止列
指示集群在空闲(无正在进行的作业)多少分钟后将自动停止。‘-’ 表示禁用。
如果时间后跟 ‘(down)’,例如 ‘1m (down)’,集群将被自动关闭(拆除),而不是自动停止。
获取最新的集群状态
在集群完全由 SkyPilot 管理(即没有在云控制台中进行手动操作)且未使用自动停止的正常情况下,此命令返回的表格将准确反映集群状态。
如果集群在 SkyPilot 之外被更改(例如,在云控制台中的手动操作;未托管的 spot 集群被抢占)或对于启用了自动停止的集群,使用
--refresh
从云提供商查询最新的集群状态。
sky status [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -v, --verbose#
显示所有详细信息。
- -r, --refresh#
从云提供商查询最新的集群状态。
- --ip#
获取集群头节点的 IP 地址。此选项将覆盖所有其他选项。对于 Kubernetes 集群,返回的 IP 地址是头 Pod 的内部 IP,可能无法从集群外部访问。
- --endpoints#
获取集群所有暴露的端点及对应的 URL。此选项将覆盖所有其他选项。
- --endpoint <endpoint>#
获取集群上指定端口号的端点 URL。此选项将覆盖所有其他选项。
- --show-managed-jobs, --no-show-managed-jobs#
如果有,也显示最近的正在进行的托管作业。
- --show-services, --no-show-services#
如果有,也显示 sky serve 服务。
- --kubernetes, --k8s#
[实验性功能] 在当前 Kubernetes 上下文中显示所有 SkyPilot 资源(包括来自其他用户的)。
- -u, --all-users#
显示所有集群,包括不属于当前用户的集群。
参数
- CLUSTERS#
可选参数
sky autostop#
为集群安排自动停止或自动关闭。
自动停止/自动关闭将在集群空闲指定时间后自动停止或拆除集群。空闲表示集群的作业队列中没有正在进行(待处理/运行中)的作业。
CLUSTERS 是要停止的集群名称(或 glob 模式)。如果同时提供了 CLUSTERS 和 --all
,则后者优先。
当发生以下任何情况时,集群的空闲时间将重置为零:
提交了一个作业(
sky launch
或sky exec
)。集群已重启。
设置了自动停止空闲时间。
示例 1:假设一个自动停止设置为 2 小时的集群已空闲 1 小时,然后自动停止被重置为 30 分钟。集群不会立即自动停止。相反,当提交第二个自动停止设置为 30 分钟时,空闲计时器将重新开始计数。
示例 2:假设一个没有设置自动停止的集群已空闲 1 小时,然后设置了 30 分钟的自动停止。集群不会立即自动停止。相反,空闲计时器仅在自动停止设置后才开始计数。
典型用法
# Autostop this cluster after 60 minutes of idleness.
sky autostop cluster_name -i 60
# Cancel autostop for a specific cluster.
sky autostop cluster_name --cancel
# Autodown this cluster after 60 minutes of idleness.
sky autostop cluster_name -i 60 --down
sky autostop [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
自动停止所有现有集群。
- -u, --all-users#
自动停止所有用户的现有集群。
- -i, --idle-minutes <idle_minutes>#
设置集群自动停止前的空闲分钟数。有关详细语义,请参见上面的文档。
- --cancel#
取消集群当前活动的自动{停止,关闭}设置。如果没有活动设置,则无操作。
- --down#
使用自动关闭(拆除集群;不可重启),而不是自动停止(可重启)。
- -y, --yes#
跳过确认提示。
- --async, --no-async#
异步运行命令。
参数
- CLUSTERS#
可选参数
作业 CLI#
集群作业 CLI#
sky exec#
在现有集群上执行任务或命令。
如果 ENTRYPOINT 指向一个有效的 YAML 文件,则将其读取为任务规范。否则,它将被解释为一个 bash 命令。
由 sky exec
执行的操作
Workdir 同步,如果:
ENTRYPOINT 是一个指定了
workdir
字段的 YAML;或:设置了标志
--workdir=<local_dir>
。
执行指定任务的
run
命令 / bash 命令。
因此,如果集群已存在,sky exec
通常比 sky launch
快。
所有设置步骤(资源调配、设置命令、文件挂载同步)都被跳过。如果这些规范中的任何一个发生更改,此命令将不会反映这些更改。为确保集群的设置是最新的,请使用 sky launch
。
执行和调度行为
任务/命令将经过作业队列调度,尊重任何指定的资源要求。它可以在集群中具有足够资源的任何节点上执行。
任务/命令在 workdir 下运行(如果指定)。
任务/命令以非交互方式运行(没有伪终端或 pty),因此像
htop
这样的交互式命令不起作用。请改用ssh my_cluster
。
典型工作流程
# First command: set up the cluster once.
sky launch -c mycluster app.yaml
# For iterative development, simply execute the task on the launched
# cluster.
sky exec mycluster app.yaml
# Do "sky launch" again if anything other than Task.run is modified:
sky launch -c mycluster app.yaml
# Pass in commands for execution.
sky exec mycluster python train_cpu.py
sky exec mycluster --gpus=V100:1 python train_gpu.py
# Pass environment variables to the task.
sky exec mycluster --env WANDB_API_KEY python train_gpu.py
sky exec [OPTIONS] [CLUSTER] [ENTRYPOINT]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -d, --detach-run#
如果为 True,作业一提交,即从此调用返回,且不流式传输执行日志。
- -n, --name <name>#
任务名称。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“name”配置。
- --workdir <workdir>#
如果指定,则将此目录同步到远程工作目录,任务将在此处调用。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“workdir”配置。
- --cloud <cloud>#
要使用的云。如果指定,将覆盖“resources.cloud”配置。传递“none”会重置配置。
- --region <region>#
要使用的区域。如果指定,将覆盖“resources.region”配置。传递“none”会重置配置。
- --zone <zone>#
要使用的可用区。如果指定,将覆盖“resources.zone”配置。传递“none”会重置配置。
- --num-nodes <num_nodes>#
执行任务的节点数量。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“num_nodes”配置。
- --cpus <cpus>#
每个实例必须拥有的 vCPU 数量(例如,
--cpus=4
(正好 4 个)或--cpus=4+
(至少 4 个))。这用于自动选择实例类型。
- --memory <memory>#
每个实例必须拥有的内存量(GB)(例如,
--memory=16
(正好 16GB),--memory=16+
(至少 16GB))
- --disk-size <disk_size>#
操作系统磁盘大小(GB)。
- --disk-tier <disk_tier>#
操作系统磁盘层级。可以是 low, medium, high, ultra, best, none 之一。如果指定 best,则使用最佳磁盘层级。如果指定 none,则强制使用默认值并覆盖任务 YAML 中的选项。默认值:medium
- 选项:
low | medium | high | ultra | best | none
- --use-spot, --no-use-spot#
是否请求 spot 实例。如果指定,将覆盖“resources.use_spot”配置。
- --image-id <image_id>#
用于启动实例的自定义镜像 ID。传递“none”会重置配置。
- --env-file <env_file>#
指向 .dotenv 文件,其中包含要在远程节点上设置的环境变量。
如果
--env-file
中的任何值与--env
设置的值冲突,则优先使用--env
的值。
- --env <env>#
要在远程节点上设置的环境变量。可以多次指定。示例:
1.--env MY_ENV=1
: 在集群上将$MY_ENV
设置为 1。2.
--env MY_ENV2=$HOME
: 在集群上将$MY_ENV2
设置为与执行 CLI 命令的本地环境中的$HOME
相同的值。3.
--env MY_ENV3
: 在集群上将$MY_ENV3
设置为与本地环境中的$MY_ENV3
相同的值。
- --gpus <gpus>#
要使用的 GPU 类型和数量。示例值:“V100:8”、“V100”(表示数量为 1 的简写),或“V100:0.5”(调度框架支持小数数量)。如果此命令正在启动新集群,则这是要配置的资源。如果正在重用现有集群,则将其视为任务需求,必须适合集群的总资源,并用于调度任务。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“accelerators”配置。传递“none”会重置配置。
- -t, --instance-type <instance_type>#
要使用的实例类型。如果指定,将覆盖“resources.instance_type”配置。传递“none”会重置配置。
- --ports <ports>#
要在集群上开放的端口。如果指定,将覆盖 YAML 中的“ports”配置。
- --async, --no-async#
异步运行命令。
参数
- CLUSTER#
可选参数
- ENTRYPOINT#
可选参数
sky queue#
显示集群的作业队列。
sky queue [OPTIONS] [CLUSTERS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -u, --all-users#
显示所有用户的详细信息。
- -s, --skip-finished#
仅显示待处理/运行中作业的信息。
参数
- CLUSTERS#
可选参数
sky cancel#
取消作业。
示例用法
# Cancel specific jobs on a cluster.
sky cancel cluster_name 1
sky cancel cluster_name 1 2 3
# Cancel all your jobs on a cluster.
sky cancel cluster_name -a
# Cancel all users' jobs on a cluster.
sky cancel cluster_name -u
# Cancel the latest running job on a cluster.
sky cancel cluster_name
作业 ID 可以通过 sky queue cluster_name
查找。
sky cancel [OPTIONS] CLUSTER [JOBS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
取消当前用户在指定集群上的所有作业。
- -u, --all-users#
取消所有用户在指定集群上的所有作业。
- -y, --yes#
跳过确认提示。
- --async, --no-async#
异步运行命令。
参数
- CLUSTER#
必需参数
- JOBS#
可选参数
sky logs#
跟踪作业的日志。
如果未提供 JOB_ID,则将使用集群上的最新作业。
1. 如果未提供标志,则跟踪指定 job_id 的日志。最多可提供一个 job_id。
2. 如果指定了 --status
,则打印作业状态,并在作业成功时以返回码 0 退出。最多可指定一个 job_id。其他可能的返回码:
100: 作业失败。
101: 作业未完成。
102: 未找到作业。
103: 作业被用户取消。
3. 如果指定了 --sync-down
,则作业日志将从集群下载并保存到本地机器的 ~/sky_logs
下。可以指定多个 job_id。
4. 如果作业失败或获取日志失败,命令将以非零返回码退出。
sky logs [OPTIONS] CLUSTER [JOB_IDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -s, --sync-down#
将作业日志同步下载到本地机器。对于分布式作业,将下载每个工作节点独立的日志文件。
- --status#
如果指定,则不显示日志,但以作业状态的状态码退出:成功为 0,其他状态为 1。
- --follow, --no-follow#
跟踪作业日志。[默认值:–follow] 如果指定了 –no-follow,则打印当前日志并退出。
- --tail <tail>#
从日志文件末尾开始显示的行数。默认值为 0,表示打印所有行。
参数
- CLUSTER#
必需参数
- JOB_IDS#
可选参数
托管作业 CLI#
sky jobs launch#
从 YAML 或命令启动托管作业。
如果 ENTRYPOINT 指向一个有效的 YAML 文件,则将其读取为任务规范。否则,它将被解释为一个 bash 命令。
示例
# You can use normal task YAMLs.
sky jobs launch task.yaml
sky jobs launch 'echo hello!'
sky jobs launch [OPTIONS] ENTRYPOINT...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -n, --name <name>#
任务名称。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“name”配置。
- --workdir <workdir>#
如果指定,则将此目录同步到远程工作目录,任务将在此处调用。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“workdir”配置。
- --cloud <cloud>#
要使用的云。如果指定,将覆盖“resources.cloud”配置。传递“none”会重置配置。
- --region <region>#
要使用的区域。如果指定,将覆盖“resources.region”配置。传递“none”会重置配置。
- --zone <zone>#
要使用的可用区。如果指定,将覆盖“resources.zone”配置。传递“none”会重置配置。
- --num-nodes <num_nodes>#
执行任务的节点数量。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“num_nodes”配置。
- --cpus <cpus>#
每个实例必须拥有的 vCPU 数量(例如,
--cpus=4
(正好 4 个)或--cpus=4+
(至少 4 个))。这用于自动选择实例类型。
- --memory <memory>#
每个实例必须拥有的内存量(GB)(例如,
--memory=16
(正好 16GB),--memory=16+
(至少 16GB))
- --disk-size <disk_size>#
操作系统磁盘大小(GB)。
- --disk-tier <disk_tier>#
操作系统磁盘层级。可以是 low, medium, high, ultra, best, none 之一。如果指定 best,则使用最佳磁盘层级。如果指定 none,则强制使用默认值并覆盖任务 YAML 中的选项。默认值:medium
- 选项:
low | medium | high | ultra | best | none
- --use-spot, --no-use-spot#
是否请求 spot 实例。如果指定,将覆盖“resources.use_spot”配置。
- --image-id <image_id>#
用于启动实例的自定义镜像 ID。传递“none”会重置配置。
- --env-file <env_file>#
指向 .dotenv 文件,其中包含要在远程节点上设置的环境变量。
如果
--env-file
中的任何值与--env
设置的值冲突,则优先使用--env
的值。
- --env <env>#
要在远程节点上设置的环境变量。可以多次指定。示例:
1.--env MY_ENV=1
: 在集群上将$MY_ENV
设置为 1。2.
--env MY_ENV2=$HOME
: 在集群上将$MY_ENV2
设置为与执行 CLI 命令的本地环境中的$HOME
相同的值。3.
--env MY_ENV3
: 在集群上将$MY_ENV3
设置为与本地环境中的$MY_ENV3
相同的值。
- --gpus <gpus>#
要使用的 GPU 类型和数量。示例值:“V100:8”、“V100”(表示数量为 1 的简写),或“V100:0.5”(调度框架支持小数数量)。如果此命令正在启动新集群,则这是要配置的资源。如果正在重用现有集群,则将其视为任务需求,必须适合集群的总资源,并用于调度任务。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“accelerators”配置。传递“none”会重置配置。
- -t, --instance-type <instance_type>#
要使用的实例类型。如果指定,将覆盖“resources.instance_type”配置。传递“none”会重置配置。
- --ports <ports>#
要在集群上开放的端口。如果指定,将覆盖 YAML 中的“ports”配置。
- --async, --no-async#
异步运行命令。
- --job-recovery <job_recovery>#
托管作业要使用的恢复策略。
- -d, --detach-run#
如果为 True,作业一提交,即从此调用返回,且不流式传输执行日志。
- -y, --yes#
跳过确认提示。
参数
- ENTRYPOINT#
必需参数
sky jobs queue#
显示托管作业的状态。
每个托管作业可以具有以下状态之一
PENDING
: 作业正在等待作业控制器上的空闲插槽以被接受。SUBMITTED
: 作业已提交并被作业控制器接受。STARTING
: 作业正在启动(正在为作业预配集群)。RUNNING
: 作业正在运行。RECOVERING
: 作业的集群正在从抢占中恢复。SUCCEEDED
: 作业成功完成。CANCELLING
: 用户请求取消作业,取消正在进行中。CANCELLED
: 作业已被用户取消。FAILED
: 作业因其自身的错误而失败。FAILED_SETUP
: 作业因其setup
命令中的错误而失败。FAILED_PRECHECKS
: 作业因我们的预检(precheck)错误而失败,例如集群名称无效或指定了不可行的资源。FAILED_NO_RESOURCE
: 作业在达到最大重试次数后因资源不可用而失败。FAILED_CONTROLLER
: 作业因 Spot 控制器中的意外错误而失败。
如果作业失败,无论是由于用户代码还是资源不可用,都可以在 sky jobs logs --controller
中找到错误日志,例如:
sky jobs logs --controller job_id
这也显示了预配以及任何抢占和恢复尝试的日志。
(提示)要每 60 秒获取一次作业状态,请使用 watch
watch -n60 sky jobs queue
sky jobs queue [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -v, --verbose#
显示所有详细信息。
- -r, --refresh#
查询最新状态,如果作业控制器已停止则重启它。
- -s, --skip-finished#
仅显示待处理/运行中作业的信息。
- -u, --all-users#
显示所有用户的作业。
- -a, --all#
显示所有作业。
sky jobs cancel#
取消托管作业。
您可以提供作业名称或要取消的作业 ID 列表。两者是互斥的选项。
示例
# Cancel managed job with name 'my-job'
$ sky jobs cancel -n my-job
# Cancel managed jobs with IDs 1, 2, 3
$ sky jobs cancel 1 2 3
sky jobs cancel [OPTIONS] [JOB_IDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -n, --name <name>#
要取消的托管作业名称。
- -a, --all#
取消当前用户的所有托管作业。
- -y, --yes#
跳过确认提示。
- -u, --all-users#
取消所有用户的托管作业。
参数
- JOB_IDS#
可选参数
sky jobs logs#
跟踪或同步下载托管作业的日志。
sky jobs logs [OPTIONS] [JOB_ID]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -n, --name <name>#
托管作业名称。
- --follow, --no-follow#
跟踪作业日志。[默认:–follow] 如果指定了 –no-follow,则打印当前日志并退出。
- --controller#
显示此作业的控制器日志;对于调试启动/恢复等非常有用。
- -r, --refresh#
查询最新的作业日志,如果作业控制器已停止则重启它。
- -s, --sync-down#
下载队列中显示的所有作业的日志。
参数
- JOB_ID#
可选参数
服务 CLI#
sky serve up#
启动 SkyServe 服务。
SERVICE_YAML 必须指向一个有效的 YAML 文件。
通过添加 service 字段,可以将常规任务 YAML 转换为服务 YAML。例如:
# service.yaml
service:
ports: 8080
readiness_probe:
path: /health
initial_delay_seconds: 20
replicas: 1
resources:
cpus: 2+
run: python -m http.server 8080
示例
sky serve up service.yaml
sky serve up [OPTIONS] SERVICE_YAML...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -n, --service-name <service_name>#
服务名称。每个服务唯一。如果未提供,则会自动生成一个唯一的名称。
- --workdir <workdir>#
如果指定,则将此目录同步到远程工作目录,任务将在此处调用。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“workdir”配置。
- --cloud <cloud>#
要使用的云。如果指定,将覆盖“resources.cloud”配置。传递“none”会重置配置。
- --region <region>#
要使用的区域。如果指定,将覆盖“resources.region”配置。传递“none”会重置配置。
- --zone <zone>#
要使用的可用区。如果指定,将覆盖“resources.zone”配置。传递“none”会重置配置。
- --num-nodes <num_nodes>#
执行任务的节点数量。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“num_nodes”配置。
- --cpus <cpus>#
每个实例必须拥有的 vCPU 数量(例如,
--cpus=4
(正好 4 个)或--cpus=4+
(至少 4 个))。这用于自动选择实例类型。
- --memory <memory>#
每个实例必须拥有的内存量(GB)(例如,
--memory=16
(正好 16GB),--memory=16+
(至少 16GB))
- --disk-size <disk_size>#
操作系统磁盘大小(GB)。
- --disk-tier <disk_tier>#
操作系统磁盘层级。可以是 low, medium, high, ultra, best, none 之一。如果指定 best,则使用最佳磁盘层级。如果指定 none,则强制使用默认值并覆盖任务 YAML 中的选项。默认值:medium
- 选项:
low | medium | high | ultra | best | none
- --use-spot, --no-use-spot#
是否请求 spot 实例。如果指定,将覆盖“resources.use_spot”配置。
- --image-id <image_id>#
用于启动实例的自定义镜像 ID。传递“none”会重置配置。
- --env-file <env_file>#
指向 .dotenv 文件,其中包含要在远程节点上设置的环境变量。
如果
--env-file
中的任何值与--env
设置的值冲突,则优先使用--env
的值。
- --env <env>#
要在远程节点上设置的环境变量。可以多次指定。示例:
1.--env MY_ENV=1
: 在集群上将$MY_ENV
设置为 1。2.
--env MY_ENV2=$HOME
: 在集群上将$MY_ENV2
设置为与执行 CLI 命令的本地环境中的$HOME
相同的值。3.
--env MY_ENV3
: 在集群上将$MY_ENV3
设置为与本地环境中的$MY_ENV3
相同的值。
- --gpus <gpus>#
要使用的 GPU 类型和数量。示例值:“V100:8”、“V100”(表示数量为 1 的简写),或“V100:0.5”(调度框架支持小数数量)。如果此命令正在启动新集群,则这是要配置的资源。如果正在重用现有集群,则将其视为任务需求,必须适合集群的总资源,并用于调度任务。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“accelerators”配置。传递“none”会重置配置。
- -t, --instance-type <instance_type>#
要使用的实例类型。如果指定,将覆盖“resources.instance_type”配置。传递“none”会重置配置。
- --ports <ports>#
要在集群上开放的端口。如果指定,将覆盖 YAML 中的“ports”配置。
- --async, --no-async#
异步运行命令。
- -y, --yes#
跳过确认提示。
参数
- SERVICE_YAML#
必需参数
sky serve down#
拆卸服务。
SERVICE_NAMES 是要拆卸的服务名称(或 glob 模式)。如果同时提供了 SERVICE_NAMES 和 --all
,则后者优先。
拆卸服务将删除其所有副本和相关资源。
示例
# Tear down a specific service.
sky serve down my-service
# Tear down multiple services.
sky serve down my-service1 my-service2
# Tear down all services matching glob pattern 'service-*'.
sky serve down "service-*"
# Tear down all existing services.
sky serve down -a
# Forcefully tear down a service in failed status.
sky serve down failed-service --purge
# Tear down a specific replica
sky serve down my-service --replica-id 1
# Forcefully tear down a specific replica, even in failed status.
sky serve down my-service --replica-id 1 --purge
sky serve down [OPTIONS] [SERVICE_NAMES]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
拆卸所有服务。
- -p, --purge#
拆卸处于失败状态的服务。
- -y, --yes#
跳过确认提示。
- --replica-id <replica_id>#
拆卸指定的副本
- --async, --no-async#
异步运行命令。
参数
- SERVICE_NAMES#
可选参数
sky serve status#
显示 SkyServe 服务的状态。
显示一个或多个服务的详细状态。如果未提供 SERVICE_NAME,则显示所有服务的状态。如果指定了 –endpoint,则仅输出服务的端点。
每个服务可以具有以下状态之一
CONTROLLER_INIT
: 控制器正在初始化。REPLICA_INIT
: 控制器已完成初始化,目前没有就绪的副本。这也表明未检测到副本故障。CONTROLLER_FAILED
: 控制器未能启动或处于异常状态;或者控制器和负载均衡器进程未运行。READY
: 服务已准备好处理请求。至少有一个副本处于 READY 状态(即已通过就绪探针)。SHUTTING_DOWN
: 服务正在关闭。这通常在调用 sky serve down 命令时发生。FAILED
: 至少有一个副本失败,并且没有副本处于就绪状态。这可能是由以下几个原因引起的副本的启动过程失败。
在初始延迟秒数内没有就绪探针通过。
副本在服务一段时间后持续失败。
用户代码失败。
FAILED_CLEANUP
: 服务关闭时发生了一些错误。这通常表示资源泄漏。如果您看到此状态,请登录云控制台并仔细检查NO_REPLICAS
: 服务没有副本。这通常发生在以下情况min_replicas 设置为 0 且系统没有流量。
每个副本可以具有以下状态之一
PENDING
: 已达到最大同时启动数量,副本启动过程正在等待中。PROVISIONING
: 副本正在预配中。STARTING
: 副本预配成功,副本正在初始化,例如安装依赖项或加载模型权重。READY
: 副本已准备好处理请求(即已通过就绪探针)。NOT_READY
: 副本未通过就绪探针,但在连续一段时间内并未持续失败(否则会被关闭)。这通常发生在副本网络连接不良或有太多请求导致副本过载时。SHUTTING_DOWN
: 副本正在关闭。这通常发生在副本正在缩减、发生了一些错误或调用了 sky serve down 命令时。SkyServe 将终止所有出错的副本。FAILED
: 副本处理请求时发生了一些错误。这表明副本已经关闭。(否则,它处于SHUTTING_DOWN
状态。)FAILED_CLEANUP
: 副本关闭时发生了一些错误。这通常表示资源泄漏,因为终止未正确完成。看到此状态时,请登录云控制台并检查是否存在一些泄漏的虚拟机/资源。PREEMPTED
: 副本被云提供商抢占,sky serve 正在恢复此副本。这仅在副本是 Spot 实例时发生。
示例
# Show status for all services
sky serve status
# Show detailed status for all services
sky serve status -v
# Only show status of my-service
sky serve status my-service
sky serve status [OPTIONS] [SERVICE_NAMES]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -v, --verbose#
显示所有详细信息。
- --endpoint#
显示服务端点。
参数
- SERVICE_NAMES#
可选参数
sky serve logs#
跟踪或同步下载服务的日志。
可以从一个目标(控制器、负载均衡器或单个副本)跟踪日志,或同时从多个目标同步下载日志。
示例
# Tail the controller logs of a service
sky serve logs --controller [SERVICE_NAME]
# Print the load balancer logs so far and exit
sky serve logs --load-balancer --no-follow [SERVICE_NAME]
# Tail the logs of replica 1
sky serve logs [SERVICE_NAME] 1
# Sync down all logs of the service (controller, LB, all replicas)
sky serve logs [SERVICE_NAME] --sync-down
# Sync down controller logs and logs for replicas 1 and 3
sky serve logs [SERVICE_NAME] 1 3 --controller --sync-down
sky serve logs [OPTIONS] SERVICE_NAME [REPLICA_IDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- --follow, --no-follow#
跟踪作业日志。[默认:–follow] 如果指定了 –no-follow,则打印当前日志并退出。
- --controller#
显示此服务的控制器日志。
- --load-balancer#
显示此服务的负载均衡器日志。
- -s, --sync-down#
将日志同步下载到本地机器。可与 –controller、–load-balancer 或副本 ID 结合使用以缩小范围。
参数
- SERVICE_NAME#
必需参数
- REPLICA_IDS#
可选参数
sky serve update#
更新 SkyServe 服务。
service_yaml 必须指向一个有效的 YAML 文件。
如果只更改了服务部分且未指定文件挂载,SkyServe 将重用旧的副本。
否则,SkyServe 将终止旧副本并启动新副本。
支持两种更新模式
- “rolling”:(默认)SkyServe 将以滚动更新方式更新服务,
即,每当一个新副本就绪时,它就会终止一个旧副本。流量可以在新旧副本上混合。
- “blue_green”:SkyServe 将以蓝绿更新方式更新服务,
即,它将等待新副本就绪,然后终止旧副本。只有在足够多的新副本就绪后,流量才会从旧副本切换到新副本。
示例
# Update an existing service with rolling update
sky serve update sky-service-16aa new_service.yaml
# Use blue-green update
sky serve update --mode blue_green sky-service-16aa new_service.yaml
sky serve update [OPTIONS] SERVICE_NAME SERVICE_YAML...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- --workdir <workdir>#
如果指定,则将此目录同步到远程工作目录,任务将在此处调用。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“workdir”配置。
- --cloud <cloud>#
要使用的云。如果指定,将覆盖“resources.cloud”配置。传递“none”会重置配置。
- --region <region>#
要使用的区域。如果指定,将覆盖“resources.region”配置。传递“none”会重置配置。
- --zone <zone>#
要使用的可用区。如果指定,将覆盖“resources.zone”配置。传递“none”会重置配置。
- --num-nodes <num_nodes>#
执行任务的节点数量。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“num_nodes”配置。
- --cpus <cpus>#
每个实例必须拥有的 vCPU 数量(例如,
--cpus=4
(正好 4 个)或--cpus=4+
(至少 4 个))。这用于自动选择实例类型。
- --memory <memory>#
每个实例必须拥有的内存量(GB)(例如,
--memory=16
(正好 16GB),--memory=16+
(至少 16GB))
- --disk-size <disk_size>#
操作系统磁盘大小(GB)。
- --disk-tier <disk_tier>#
操作系统磁盘层级。可以是 low, medium, high, ultra, best, none 之一。如果指定 best,则使用最佳磁盘层级。如果指定 none,则强制使用默认值并覆盖任务 YAML 中的选项。默认值:medium
- 选项:
low | medium | high | ultra | best | none
- --use-spot, --no-use-spot#
是否请求 spot 实例。如果指定,将覆盖“resources.use_spot”配置。
- --image-id <image_id>#
用于启动实例的自定义镜像 ID。传递“none”会重置配置。
- --env-file <env_file>#
指向 .dotenv 文件,其中包含要在远程节点上设置的环境变量。
如果
--env-file
中的任何值与--env
设置的值冲突,则优先使用--env
的值。
- --env <env>#
要在远程节点上设置的环境变量。可以多次指定。示例:
1.--env MY_ENV=1
: 在集群上将$MY_ENV
设置为 1。2.
--env MY_ENV2=$HOME
: 在集群上将$MY_ENV2
设置为与执行 CLI 命令的本地环境中的$HOME
相同的值。3.
--env MY_ENV3
: 在集群上将$MY_ENV3
设置为与本地环境中的$MY_ENV3
相同的值。
- --gpus <gpus>#
要使用的 GPU 类型和数量。示例值:“V100:8”、“V100”(表示数量为 1 的简写),或“V100:0.5”(调度框架支持小数数量)。如果此命令正在启动新集群,则这是要配置的资源。如果正在重用现有集群,则将其视为任务需求,必须适合集群的总资源,并用于调度任务。如果 YAML 和此选项都提供,此选项将覆盖 YAML 中的“accelerators”配置。传递“none”会重置配置。
- -t, --instance-type <instance_type>#
要使用的实例类型。如果指定,将覆盖“resources.instance_type”配置。传递“none”会重置配置。
- --ports <ports>#
要在集群上开放的端口。如果指定,将覆盖 YAML 中的“ports”配置。
- --async, --no-async#
异步运行命令。
- --mode <mode>#
更新模式。如果为“rolling”,SkyServe 将以滚动更新方式更新服务。如果为“blue_green”,SkyServe 将以蓝绿更新方式更新服务。
- 选项:
rolling | blue_green
- -y, --yes#
跳过确认提示。
参数
- SERVICE_NAME#
必需参数
- SERVICE_YAML#
必需参数
存储 CLI#
sky storage ls#
列出由 SkyPilot 管理的存储对象。
sky storage ls [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -v, --verbose#
显示所有详细信息。
sky storage delete#
删除存储对象。
示例
# Delete two storage objects.
sky storage delete imagenet cifar10
# Delete all storage objects matching glob pattern 'imagenet*'.
sky storage delete "imagenet*"
# Delete all storage objects.
sky storage delete -a
sky storage delete [OPTIONS] [NAMES]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
删除所有存储对象。
- -y, --yes#
跳过确认提示。
- --async, --no-async#
异步运行命令。
参数
- NAMES#
可选参数
API 请求 CLI#
sky api login#
登录到 SkyPilot API 服务器。
sky api login [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -e, --endpoint <endpoint>#
SkyPilot API 服务器端点。
sky api info#
显示 SkyPilot API 服务器 URL。
sky api info [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
sky api logs#
流式传输在 SkyPilot API 服务器上运行的请求的日志。
sky api logs [OPTIONS] [REQUEST_ID]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- --server-logs#
流式传输服务器日志。
- -l, --log-path <log_path>#
要流式传输的日志文件路径。
- --tail <tail>#
从日志末尾显示的行数。(默认:无)
- --follow, --no-follow#
跟踪日志。
参数
- REQUEST_ID#
可选参数
sky api status#
列出 SkyPilot API 服务器上的请求。
sky api status [OPTIONS] [REQUEST_IDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all-status#
显示所有状态的请求。
- -v, --verbose#
显示更多详细信息。
参数
- REQUEST_IDS#
可选参数
sky api cancel#
取消在 SkyPilot API 服务器上运行的请求。
sky api cancel [OPTIONS] [REQUEST_IDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
取消您的所有请求。
- -u, --all-users#
取消所有用户的请求。
参数
- REQUEST_IDS#
可选参数
管理员 CLI#
sky api stop#
在本地停止 SkyPilot API 服务器。
sky api stop [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
sky api start#
在本地启动 SkyPilot API 服务器。
sky api start [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- --deploy#
部署 SkyPilot API 服务器。设置为 True 时,SkyPilot API 服务器将使用主机上的所有资源(假设机器专用于 SkyPilot API 服务器);主机也将设置为 0.0.0.0 以允许远程访问。
- --host <host>#
部署 SkyPilot API 服务器的主机。要允许远程访问,请将其设置为 0.0.0.0
- 选项:
0.0.0.0 | localhost | 127.0.0.1
- --foreground#
在前台运行 SkyPilot API 服务器,并将其日志输出到 stdout/stderr。允许外部系统直接管理进程生命周期和收集日志。当 API 服务器由 systemd 和 Kubernetes 等系统管理时,这非常有用。
实用工具:show-gpus
/check
/cost-report
#
sky show-gpus#
显示支持的 GPU/TPU/加速器及其价格。
显示的名称和计数可以在任务 YAML 的 accelerators
字段中设置,或者在 CLI 命令的 --gpus
标志中设置。例如,如果此表显示支持 8 个 V100,则上述命令将接受字符串 V100:8
。
要显示 GPU/TPU 类型的详细信息(其价格、哪些云提供商提供、每种 VM 类型中的数量等),请使用 sky show-gpus <gpu>
。
要显示所有加速器,包括不太常见的及其详细信息,请使用 sky show-gpus --all
。
要显示指定加速器的所有区域,请使用 sky show-gpus <accelerator> --all-regions
。
如果未指定 --region
或 --all-regions
,则显示的每种实例类型的价格是所有区域中按需实例和 Spot 实例的最低价格。可能有多个区域具有相同的最低价格。
如果指定了 --cloud kubernetes
或 --cloud k8s
,它将显示单个节点上 GPU 的最大数量以及 Kubernetes 集群中所有节点上 GPU 的实时可用性。
某些字段的定义
DEVICE_MEM
: 单个设备的内存;不取决于实例(VM)的设备数量。HOST_MEM
: 主机实例(VM)的内存。QTY_PER_NODE
(Kubernetes only): 单个节点上可请求的 GPU 数量。UTILIZATION
(Kubernetes only): Kubernetes 集群中空闲/可用 GPU 的总数。
sky show-gpus [OPTIONS] [ACCELERATOR_STR]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
显示所有 GPU/TPU/加速器产品的详细信息。
- --cloud <cloud>#
要查询的云提供商。
- --region <region>#
要使用的区域。如果未指定,则显示所有区域的加速器。
- --all-regions#
显示指定加速器在所有区域和云上的价格和实例详情。
参数
- ACCELERATOR_STR#
可选参数
sky check#
检查哪些云可用于使用。
这会检查 SkyPilot 支持的所有云的访问凭据。如果检测到某个云无法访问,将显示原因和纠正步骤。
如果指定了 CLOUDS,则仅检查这些云的凭据。
已启用的云会被缓存,并构成每个任务要考虑的“搜索空间”。
示例
# Check credentials for all supported clouds.
sky check
# Check only specific clouds - AWS and GCP.
sky check aws gcp
sky check [OPTIONS] [CLOUDS]...
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -v, --verbose#
显示每个云的已激活账户。
参数
- CLOUDS#
可选参数
sky cost-report#
显示已启动集群的预估成本。
对于每个集群,显示:集群名称、资源、启动时间、集群运行时长以及总预估成本。
预估成本列表示根据使用的资源类型和截至目前的持续使用时间计算出的集群价格。这意味着如果集群处于 UP 状态,后续调用 cost-report 将显示不断增加的价格。
此 CLI 是实验性的。预估成本根据集群状态的本地缓存计算,可能不适用于
设置了 autostop/use_spot 的集群;或
在云控制台上已终止/停止的集群。
sky cost-report [OPTIONS]
选项
- --config <config>#
配置文件路径或逗号分隔的键值对列表(例如,“nested.key1=val1,another.key2=val2”)。
- -a, --all#
显示所有集群信息。