高级配置#
您可以在 ~/.sky/config.yaml
文件中为 SkyPilot 传递可选配置。
配置来源与覆盖#
SkyPilot 允许您在 ~/.sky/config.yaml
中全局设置配置,在您的项目中,或针对特定作业设置配置,从而灵活地管理您的配置。
例如,您可以有一个 用户配置 全局应用于所有项目,一个 项目配置 存储项目中所有作业的默认值,以及针对特定作业的 任务 YAML 覆盖。
有关详细信息,请参阅 配置来源与覆盖。
语法#
有关 SkyServe 控制器及其自定义的详细信息,请参阅 自定义 SkyServe 控制器资源。
以下是配置语法和一些示例值。请参阅每个字段下的详细说明。
api_server: endpoint: http://xx.xx.xx.xx:8000 allowed_clouds: - aws - gcp - kubernetes jobs: bucket: s3://my-bucket/ controller: resources: # same spec as 'resources' in a task YAML cloud: gcp region: us-central1 cpus: 4+ # number of vCPUs, max concurrent spot jobs = 2 * cpus disk_size: 100 autostop: idle_minutes: 10 down: false # use with caution! docker: run_options: - -v /var/run/docker.sock:/var/run/docker.sock - --shm-size=2g nvidia_gpus: disable_ecc: false admin_policy: my_package.SkyPilotPolicyV1 kubernetes: ports: loadbalancer remote_identity: my-k8s-service-account allowed_contexts: - context1 - context2 custom_metadata: labels: mylabel: myvalue annotations: myannotation: myvalue provision_timeout: 10 autoscaler: gke pod_config: metadata: labels: my-label: my-value spec: runtimeClassName: nvidia aws: labels: map-migrated: my-value Owner: user-unique-name vpc_name: skypilot-vpc use_internal_ips: true ssh_proxy_command: ssh -W %h:%p user@host security_group_name: my-security-group disk_encrypted: false prioritize_reservations: false specific_reservations: - cr-a1234567 remote_identity: LOCAL_CREDENTIALS gcp: labels: Owner: user-unique-name my-label: my-value vpc_name: skypilot-vpc use_internal_ips: true force_enable_external_ips: true ssh_proxy_command: ssh -W %h:%p user@host prioritize_reservations: false specific_reservations: - projects/my-project/reservations/my-reservation1 managed_instance_group: run_duration: 3600 provision_timeout: 900 remote_identity: LOCAL_CREDENTIALS enable_gvnic: false enable_gpu_direct: false placement_policy: compact azure: resource_group_vm: user-resource-group-name storage_account: user-storage-account-name oci: default: oci_config_profile: SKY_PROVISION_PROFILE compartment_ocid: ocid1.compartment.oc1..aaaaaaaahr7aicqtodxmcfor6pbqn3hvsngpftozyxzqw36gj4kh3w3kkj4q image_tag_general: skypilot:cpu-oraclelinux8 image_tag_gpu: skypilot:gpu-oraclelinux8 ap-seoul-1: vcn_ocid: ocid1.vcn.oc1.ap-seoul-1.amaaaaaaak7gbriarkfs2ssus5mh347ktmi3xa72tadajep6asio3ubqgarq vcn_subnet: ocid1.subnet.oc1.ap-seoul-1.aaaaaaaa5c6wndifsij6yfyfehmi3tazn6mvhhiewqmajzcrlryurnl7nuja us-ashburn-1: vcn_ocid: ocid1.vcn.oc1.ap-seoul-1.amaaaaaaak7gbriarkfs2ssus5mh347ktmi3xa72tadajep6asio3ubqgarq vcn_subnet: ocid1.subnet.oc1.iad.aaaaaaaafbj7i3aqc4ofjaapa5edakde6g4ea2yaslcsay32cthp7qo55pxa nebius: eu-north1: project_id: project-e00xxxxxxxxxxx fabric: fabric-3 eu-west1: project_id: project-e01xxxxxxxxxxx fabric: fabric-5 use_internal_ips: true ssh_proxy_command: ssh -W %h:%p user@host
字段#
api_server
#
配置 SkyPilot API 服务器。
api_server.endpoint
#
SkyPilot API 服务器的端点(可选)。
这用于连接到 SkyPilot API 服务器。
默认值:null
(使用本地端点,SkyPilot 会自动启动)。
示例
api_server:
endpoint: http://xx.xx.xx.xx:8000
jobs
#
自定义托管作业控制器资源(可选)。
这些仅在托管作业控制器尚不存在时生效。
有关托管作业的更多信息,请参阅 托管作业。
jobs.bucket
#
用于存储托管作业挂载文件和临时文件的存储桶。存储桶必须已存在。
可选。如果未设置,SkyPilot 将为每个托管作业启动创建一个新的存储桶。
支持的存储桶类型
jobs:
bucket: s3://my-bucket/
# bucket: gs://my-bucket/
# bucket: https://<azure_storage_account>.blob.core.windows.net/<container>
# bucket: r2://my-bucket/
# bucket: cos://<region>/<bucket>
jobs.controller.resources
#
配置托管作业控制器的资源。
有关调整作业控制器资源的更多详细信息,请参阅 扩展作业控制器的最佳实践。
示例
jobs:
controller:
resources: # same spec as 'resources' in a task YAML
# optionally set specific cloud/region
cloud: gcp
region: us-central1
# default resources:
cpus: 4+
memory: 8x
disk_size: 50
jobs.controller.autostop
#
配置托管作业控制器的 自动停止。
默认情况下,作业控制器会在 10 分钟后自动停止,但在 Kubernetes 和 RunPod 上不支持此功能。当启动新作业时,控制器将自动重启。
如果您希望控制器自动终止而不是自动停止,请设置 down: true
。请谨慎使用:如果 SkyPilot 崩溃,down: true
可能会导致集群泄露;并且当控制器终止时,所有作业日志都将丢失。
示例
jobs:
controller:
# Disable autostop.
autostop: false
jobs:
controller:
# Enable autostop with custom config.
autostop:
# Default values:
idle_minutes: 10 # Set time to idle autostop/autodown.
down: false # Terminate instead of stopping. Caution: setting this to true will cause logs to be lost and could lead to resource leaks if SkyPilot crashes.
allowed_clouds
#
在 sky check
中允许使用的云列表。
此字段用于限制 SkyPilot 在运行 sky check
时将检查和使用的云。任何已启用但未在此处指定的云将在下次运行 sky check
时被禁用。如果未设置此字段,SkyPilot 将检查并使用所有支持的云。
默认值:null
(使用所有支持的云)。
docker
#
附加的 Docker 运行选项(可选)。
当在任务 YAML 中使用 image_id: docker:<docker_image>
时,可以在此处指定启动 Docker 容器的附加运行选项。这些选项将直接作为命令行参数传递给 docker run
,详见:https://docs.docker.net.cn/reference/cli/docker/container/run/
以下运行选项默认应用,无法覆盖:
--net=host
--cap-add=SYS_ADMIN
--device=/dev/fuse
--security-opt=apparmor:unconfined
--runtime=nvidia # 在 主机上 检测到 nvidia GPU 时 应用
docker.run_options
#
此字段对于挂载卷和其他高级 Docker 配置非常有用。您可以指定参数列表或字符串,前者将被合并为一个由空格分隔的字符串。以下是挂载 Docker 套接字并增加 /dev/shm
大小的示例选项:
示例
docker:
run_options:
- -v /var/run/docker.sock:/var/run/docker.sock
- --shm-size=2g
nvidia_gpus
#
nvidia_gpus.disable_ecc
#
禁用 NVIDIA GPU 的 ECC(可选)。
设置为 true 可在配置期间禁用 NVIDIA GPU 的 ECC。这在某些情况下有助于提高 GPU 性能(最高可提升 30%)。此设置仅在请求包含 NVIDIA GPU 的集群时应用。这是尽力而为的 — 不保证在所有云上都有效,例如 RunPod 和 Kubernetes 不允许重启节点,尽管 RunPod 默认禁用了 ECC。
注意:此设置将在首次配置集群时导致重启,这可能需要几分钟。
参考:portal.nutanix.com/page/documents/kbs/details?targetId=kA00e000000LKjOCAW
默认值:false
。
admin_policy
#
应用于所有任务的管理员策略(可选)。
要应用于所有任务的策略类,可用于验证和修改用户请求。
这对于在所有任务上强制执行某些策略非常有用,例如:
添加自定义标签。
强制资源限制。
限制云提供商。
要求使用 Spot 实例。
设置自动停止超时。
有关详细信息,请参阅 管理员策略强制执行。
示例
admin_policy: my_package.SkyPilotPolicyV1
aws
#
高级 AWS 配置(可选)。
应用于所有新实例,但不应用于现有实例。
aws.labels
#
要分配给 SkyPilot 创建的所有实例和存储桶的标签(可选)。
示例用例:按用户/团队/项目进行成本跟踪。
用户应确保这些键值是有效的 AWS 标签,否则将显示来自云提供商的错误。
示例
aws:
labels:
# (Example) AWS Migration Acceleration Program (MAP). This tag enables the
# program's discounts.
# Ref: https://docs.aws.amazon.com/mgn/latest/ug/map-program-tagging.html
map-migrated: my-value
# (Example) Useful for keeping track of who launched what. An IAM role
# can be restricted to operate on instances owned by a certain name.
# Ref: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_ec2_tag-owner.html
#
# NOTE: SkyPilot by default assigns a "skypilot-user: <username>" tag to
# all AWS/GCP/Azure instances launched by SkyPilot.
Owner: user-unique-name
# Other examples:
my-tag: my-value
aws.vpc_name
#
在每个区域中使用的 VPC(可选)。
如果设置此项,SkyPilot 将仅在包含此名称 VPC 的区域中进行配置(配置程序会自动查找此类区域)。没有此名称 VPC 的区域将不会用于启动节点。
默认值:null
(使用每个区域的默认 VPC)。
aws.use_internal_ips
#
实例是否只分配私有 IP?(可选)。
设置为 true 以使用私有 IP 在本地客户端与任何 SkyPilot 节点之间进行通信。这要求正确设置网络堆栈。
当设置为 true
时,SkyPilot 将仅使用私有子网启动节点。私有子网定义为同时满足以下两个属性的子网:
路由表没有指向互联网网关 (IGW) 的路由的子网;
默认配置为不分配公有 IP 的子网(
map_public_ip_on_launch
属性为false
)。
此标志通常与上面的 vpc_name
和下面的 ssh_proxy_command
一起设置。
默认值:false
。
aws.ssh_proxy_command
#
SSH 代理命令(可选)。
对于使用跳转服务器与托管在没有公有 IP 的私有 VPC/子网中的 SkyPilot 节点进行通信非常有用。通常与上面的 vpc_name
和 use_internal_ips
一起设置。
如果设置此项,它将作为 -o ProxyCommand
选项传递给用于本地客户端与任何 SkyPilot 节点之间通信的任何 SSH 连接(包括 rsync)。(此选项不在 SkyPilot 节点之间使用,因为它们位于代理之后/可能没有设置此类代理。)
默认值:null
。
- 格式 1
字符串;所有区域使用相同的代理命令。
- 格式 2
一个字典,将区域名称映射到特定于区域的代理命令。注意:这将 SkyPilot 在此云中的搜索范围限制为仅使用指定的区域,而不是此云中的任何其他区域。
示例
aws:
# Format 1
ssh_proxy_command: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no ec2-user@<jump server public ip>
# Format 2
ssh_proxy_command:
us-east-1: ssh -W %h:%p -p 1234 -o StrictHostKeyChecking=no [email protected]
us-east-2: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no ec2-user@<jump server public ip>
aws.security_group_name
#
安全组(可选)。
用于 AWS 实例的安全组名称。如果未指定,SkyPilot 将使用安全组的默认名称:sky-sg-<hash>
注意:请确保指定的安全组名称在实例将要启动的区域中存在,或 AWS 账户具有创建安全组的权限。
下面显示了一些示例用例。所有字段都是可选的。
<string>
:将指定名称的服务账户应用于所有实例。<list of single-element dict>
:一个单元素字典列表,将集群名称(模式)映射到要使用的安全组名称。集群名称的匹配顺序与列表相同。注意:如果字典中的通配符表达式都不匹配集群名称,SkyPilot 将使用上面提到的默认安全组名称:
sky-sg-<hash>
。要指定您的默认值,请使用*
作为通配符表达式。
示例
aws:
# Format 1
security_group_name: my-security-group
# Format 2
security_group_name:
- my-cluster-name: my-security-group-1
- sky-serve-controller-*: my-security-group-2
- "*": my-default-security-group
aws.disk_encrypted
#
加密的启动盘(可选)。
设置为 true
以加密 SkyPilot 启动的所有 AWS 实例的启动盘。这对于遵守数据保护法规非常有用。
默认值:false
。
aws.prioritize_reservations
#
预留容量(可选)。
是否在优化器中优先考虑容量预留(视为零成本)。
如果您的 AWS 项目中有容量预留:将其设置为 true
可确保优化器将在所有区域内选取任何匹配的预留,并且 AWS 将自动消耗您的预留,实例匹配条件为“开放”;而设置为 false
则意味着优化器在优化中使用常规的非零价格(如果碰巧存在任何匹配的预留,AWS 仍将消耗该预留)。
注意:出于性能原因,此设置默认为 false
,因为当设置为 true
时,从 AWS 检索预留可能需要半分钟。
默认值:false
。
aws.specific_reservations
#
在 AWS 上配置集群时要考虑的目标容量预留(CapacityReservationId
)。如果请求的资源与预留匹配,SkyPilot 将自动优先考虑此预留容量(视为零成本)。
参考:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-launch.html
示例
aws:
specific_reservations:
- cr-a1234567
- cr-b2345678
aws.remote_identity
#
用于 AWS 实例的身份(可选)。
支持的值:
LOCAL_CREDENTIALS:用户的本地凭证文件将上传到 SkyPilot 创建的 AWS 实例。这些凭证用于:
访问云资源(例如,私有存储桶)。
启动新实例(例如,用于作业/服务控制器)。
SERVICE_ACCOUNT:本地凭证文件不上传到 AWS 实例。而是:- SkyPilot 将为 AWS 实例自动创建并重用一个服务账户 (IAM role)。
NO_UPLOAD:不会上传任何凭证到实例。这对于避免覆盖集群上可能已自动挂载的任何现有凭证非常有用。
自定义服务账户 (IAM 角色):将其指定为
<string>
或<list of single-element dict>
<string>:将指定名称的服务账户应用于所有实例。
<list of single-element dict>:一个单元素字典列表,将集群名称(模式)映射到服务账户名称。
集群名称的匹配顺序与列表相同。
如果没有通配符表达式匹配集群名称,将使用
LOCAL_CREDENTIALS
。要指定默认值,请使用
*
作为通配符表达式。
—
多云用户使用 SERVICE_ACCOUNT 的注意事项
此设置仅影响 AWS 实例。本地 AWS 凭证仍将上传到非 AWS 实例(因为这些实例可能需要访问 AWS 资源)。要完全禁用凭证上传,请设置
remote_identity: NO_UPLOAD
。如果 SkyPilot 作业/服务控制器在 AWS 上: - 非 AWS 托管作业或非 AWS 服务副本将无法访问 AWS 资源。 - 这是因为控制器没有 AWS 凭证文件可分配给这些非 AWS 实例。
—
示例配置
aws:
# Format 1
remote_identity: my-service-account-name
# Format 2
remote_identity:
- my-cluster-name: my-service-account-1
- sky-serve-controller-*: my-service-account-2
- "*": my-default-service-account
gcp
#
高级 GCP 配置(可选)。
应用于所有新实例,但不应用于现有实例。
gcp.labels
#
要分配给 SkyPilot 启动的所有实例的标签(可选)。
示例用例:按用户/团队/项目进行成本跟踪。
用户应确保这些键值是有效的 GCP 标签,否则将显示来自云提供商的错误。
示例
gcp:
labels:
Owner: user-unique-name
my-label: my-value
gcp.vpc_name
#
要使用的 VPC(可选)。
默认值:null
,这意味着以下行为:将检查项目中的所有现有 VPC 是否满足 SkyPilot 正常运行的最低推荐防火墙规则。如果任何 VPC 满足这些规则,则使用该 VPC。否则,将自动创建一个名为 skypilot-vpc
的新 VPC,并附带最低推荐防火墙规则,然后使用该 VPC。
如果设置此字段,SkyPilot 将使用此名称的 VPC。该 VPC 必须具有必要的防火墙规则。这对于用户希望手动设置 VPC 并精确控制其防火墙规则的情况非常有用。如果未给出区域限制,SkyPilot 将仅在存在此 VPC 子网的区域中进行配置。如果找不到此名称的 VPC,将抛出错误。除了开放端口(例如,通过 resources.ports
)时会添加允许公共流量访问这些端口的新防火墙规则之外,VPC 不会以任何方式被修改。
默认情况下,仅使用当前项目中的 VPC。
gcp:
vpc-name: my-vpc
要使用来自另一个 GCP 项目的共享 VPC,请将名称指定为 <项目 ID>/<VPC 名称>
。例如:
gcp:
vpc-name: my-project-123456/default
gcp.use_internal_ips
#
实例是否只分配私有 IP?(可选)。
设置为 true
以使用私有 IP 在本地客户端与任何 SkyPilot 节点之间进行通信。这要求正确设置网络堆栈。
此标志通常与上面的 vpc_name
和下面的 ssh_proxy_command
一起设置。
默认值:false
。
gcp.force_enable_external_ips
#
在通过内部 IP 通信的 VPC 中的实例是否仍应具有外部 IP?(可选)。
设置为 true
可强制为虚拟机分配外部 IP,即使已设置 vpc_name
和 use_internal_ips
。
默认值:false
。
gcp.ssh_proxy_command
#
SSH 代理命令(可选)。
有关详细信息,请参阅上面的 aws.ssh_proxy_command 部分。
- 格式 1
字符串;所有区域使用相同的代理命令。
- 格式 2
一个字典,将区域名称映射到特定于区域的代理命令。注意:这将 SkyPilot 在此云中的搜索范围限制为仅使用指定的区域,而不是此云中的任何其他区域。
示例
gcp:
# Format 1
ssh_proxy_command: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no gcpuser@<jump server public ip>
# Format 2
ssh_proxy_command:
us-central1: ssh -W %h:%p -p 1234 -o StrictHostKeyChecking=no [email protected]
us-west1: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no gcpuser@<jump server public ip>
gcp.prioritize_reservations
#
预留容量(可选)。
是否在优化器中优先考虑预留的实例类型/位置(视为零成本)。
- 如果您的 GCP 项目中有“自动消耗”的预留
将其设置为
true
可确保优化器将选取任何匹配的预留,并且 GCP 将自动消耗您的预留;而设置为false
则意味着优化器在优化中使用常规的非零价格(如果碰巧存在任何匹配的预留,GCP 仍将自动消耗该预留)。
- 如果您有“特定目标”预留(由下面的
specific_reservations
字段设置) 此字段将自动设置为
true
。
注意:出于性能原因,此设置默认为 false
,因为当设置为 true
时,从 GCP 检索预留可能需要半分钟。
默认值:false
。
gcp.specific_reservations
#
在 GCP 上配置集群时要考虑的“特定目标”预留。如果请求的资源与预留匹配,SkyPilot 将自动优先考虑此预留容量(视为零成本)。
参考:https://cloud.google.com/compute/docs/instances/reservations-overview#consumption-type
示例
gcp:
specific_reservations:
- projects/my-project/reservations/my-reservation1
- projects/my-project/reservations/my-reservation2
gcp.managed_instance_group
#
托管实例组 / DWS(可选)。
SkyPilot 支持在托管实例组 (MIG) 中启动实例,MIG 通过 DWS 调度 GPU 实例创建,从而提供更好的可用性。此功能仅在资源请求包含 GPU 实例时应用。
run_duration
:创建的实例保持活动状态的持续时间(秒,必需)。这对于 DWS 正常工作是必需的。在指定持续时间后,实例将终止。
provision_timeout
:DWS 配置实例的超时时间(秒,可选)。此超时时间决定了 SkyPilot 在放弃、删除 MIG 并故障转移到其他位置之前,将等待托管实例组创建请求资源的时长。更长的超时时间可能会增加获取资源的机会,但会阻止故障转移到其他区域/区域/云。
默认值:900
。
示例
gcp:
managed_instance_group:
run_duration: 3600
provision_timeout: 900
gcp.remote_identity
#
用于 GCP 实例的身份(可选)。
有关详细信息,请参阅上面的 aws.remote_identity 部分。
默认值:LOCAL_CREDENTIALS
。
gcp.enable_gvnic
#
启用 gVNIC 网络接口(可选)。
设置为 true 以启用 SkyPilot 启动的所有 GCP 实例的 gVNIC 网络接口。这对于提高网络性能非常有用。
默认值:false
。
gcp.enable_gpu_direct
#
启用 GPUDirect-TCPX,这是一种高性能网络技术,可在 SkyPilot 启动的 a3-highgpu-8g 或 a3-edgegpu-8g 实例的 GPU 和网络接口之间建立直接通信。启用后,此配置会自动激活 gVNIC 网络接口以获得最佳性能。
默认值:false
。
gcp.placement_policy
#
GCP 实例的放置策略。此设置控制实例在数据中心内的物理放置方式,以优化性能和资源利用。
当启用 gcp.enable_gpu_direct 时,放置策略将自动设置为 compact,以确保最佳通信性能。如果禁用 gcp.enable_gpu_direct,则不应用默认放置策略。
有关放置策略的更多信息,请参阅 GCP 文档。
azure
#
高级 Azure 配置(可选)。
azure.resource_group_vm
#
虚拟机资源的资源组(可选)。
用于虚拟机资源的资源组名称。如果未指定,SkyPilot 将创建具有默认名称的新资源组。
azure.storage_account
#
存储账户名称(可选)。
要使用的存储账户名称。如果未指定,SkyPilot 将创建具有默认名称的新存储账户。
示例
azure:
resource_group_vm: user-resource-group-name
storage_account: user-storage-account-name
kubernetes
#
高级 Kubernetes 配置(可选)。
kubernetes.ports
#
端口配置模式(可选)。
可选项包括:
loadbalancer
:使用 LoadBalancer 服务暴露端口。nodeport
:使用 NodePort 服务暴露端口。
默认值:loadbalancer
。
kubernetes.remote_identity
#
用于远程认证的服务账户(可选)。
用于远程认证的服务账户名称。
kubernetes.allowed_contexts
#
允许的 Kubernetes 上下文列表(可选)。
SkyPilot 允许使用的上下文名称列表。
kubernetes.custom_metadata
#
Kubernetes 资源的自定义元数据(可选)。
要应用于所有 Kubernetes 资源的自定义标签和注解。
kubernetes.provision_timeout
#
资源配置超时时间(可选)。
资源配置的超时时间(分钟)。
默认值:10
。
kubernetes.autoscaler
#
自动扩缩容类型(可选)。
底层 Kubernetes 集群使用的自动扩缩容类型。用于配置 SkyPilot 提交的 Pod 使用的 GPU 标签。
可选项包括:
gke
:Google Kubernetes Enginekarpenter
:Karpentergeneric
:通用自动扩缩容器,假定节点使用skypilot.co/accelerator
标签。
kubernetes.pod_config
#
Pod 配置设置(可选)。
要应用于所有 Pod 的附加 Pod 配置设置。
示例
kubernetes:
networking: portforward
ports: loadbalancer
remote_identity: my-k8s-service-account
allowed_contexts:
- context1
- context2
custom_metadata:
labels:
mylabel: myvalue
annotations:
myannotation: myvalue
provision_timeout: 10
autoscaler: gke
pod_config:
metadata:
labels:
my-label: my-value
spec:
runtimeClassName: nvidia
imagePullSecrets:
- name: my-secret
containers:
- env:
- name: HTTP_PROXY
value: http://proxy-host:3128
volumeMounts:
- mountPath: /foo
name: example-volume
readOnly: true
volumes:
- name: example-volume
hostPath:
path: /tmp
type: Directory
- name: dshm
emptyDir:
medium: Memory
sizeLimit: 3Gi
oci
#
高级 OCI 配置(可选)。
oci_config_profile
~/.oci/config
中用于启动实例的配置文件名称。默认值:DEFAULT
compartment_ocid
用于启动实例的区室的 OCID。如果未设置,将使用根区室(可选)。
image_tag_general
如果未指定
image_id
参数,则用于启动通用实例 (CPU) 的默认镜像标签。默认值:skypilot:cpu-ubuntu-2204
image_tag_gpu
如果未指定
image_id
参数,则用于启动 GPU 实例的默认镜像标签。默认值:skypilot:gpu-ubuntu-2204
配置可以在 default
部分(应用于所有区域,除非被覆盖)或特定于区域的部分中指定。
示例
oci:
# Region-specific configuration
ap-seoul-1:
# The OCID of the VCN to use for instances (optional).
vcn_ocid: ocid1.vcn.oc1.ap-seoul-1.amaaaaaaak7gbriarkfs2ssus5mh347ktmi3xa72tadajep6asio3ubqgarq
# The OCID of the subnet to use for instances (optional).
vcn_subnet: ocid1.subnet.oc1.ap-seoul-1.aaaaaaaa5c6wndifsij6yfyfehmi3tazn6mvhhiewqmajzcrlryurnl7nuja
us-ashburn-1:
vcn_ocid: ocid1.vcn.oc1.ap-seoul-1.amaaaaaaak7gbriarkfs2ssus5mh347ktmi3xa72tadajep6asio3ubqgarq
vcn_subnet: ocid1.subnet.oc1.iad.aaaaaaaafbj7i3aqc4ofjaapa5edakde6g4ea2yaslcsay32cthp7qo55pxa
nebius
#
高级 Nebius 配置(可选)。
project_id
Nebius 项目标识符(可选)默认值:如果未指定,则使用第一个可用的项目
fabric
GPU 集群配置标识符(可选)可选:如果未指定,则禁用 GPU 集群
配置必须在特定于区域的部分中指定。
示例
nebius:
:ref:`use_internal_ips <config-yaml-nebius-use-internal-ips>`: true
:ref:`ssh_proxy_command <config-yaml-nebius-ssh-proxy-command>`: ssh -W %h:%p user@host
eu-north1: ssh -W %h:%p -p 1234 -o StrictHostKeyChecking=no [email protected]
eu-west1: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no nebiususer@<jump server public ip>
# Region-specific configuration
eu-north1:
# Project identifier for this region
# Optional: Uses first available project if not specified
project_id: project-e00......
# GPU cluster fabric identifier
# Optional: GPU cluster disabled if not specified
fabric: fabric-3
eu-west1:
project_id: project-e01...
fabric: fabric-5
nebius.use_internal_ips
#
实例是否只分配私有 IP?(可选)。
设置为 true
以使用私有 IP 在本地客户端与任何 SkyPilot 节点之间进行通信。这要求正确设置网络堆栈。
此标志通常与下面的 ssh_proxy_command
一起设置。
默认值:false
。
nebius.ssh_proxy_command
#
SSH 代理命令(可选)。
有关详细信息,请参阅上面的 aws.ssh_proxy_command 部分。
- 格式 1
字符串;所有区域使用相同的代理命令。
- 格式 2
一个字典,将区域名称映射到特定于区域的代理命令。注意:这将 SkyPilot 在此云中的搜索范围限制为仅使用指定的区域,而不是此云中的任何其他区域。
示例
nebius:
# Format 1
ssh_proxy_command: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no nebiususer@<jump server public ip>
# Format 2
ssh_proxy_command:
eu-north1: ssh -W %h:%p -p 1234 -o StrictHostKeyChecking=no [email protected]
eu-west1: ssh -W %h:%p -i ~/.ssh/sky-key -o StrictHostKeyChecking=no nebiususer@<jump server public ip>