高级配置#

您可以在 ~/.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 将仅使用私有子网启动节点。私有子网定义为同时满足以下两个属性的子网:

  1. 路由表没有指向互联网网关 (IGW) 的路由的子网;

  2. 默认配置为不分配公有 IP 的子网(map_public_ip_on_launch 属性为 false)。

此标志通常与上面的 vpc_name 和下面的 ssh_proxy_command 一起设置。

默认值:false

aws.ssh_proxy_command#

SSH 代理命令(可选)。

对于使用跳转服务器与托管在没有公有 IP 的私有 VPC/子网中的 SkyPilot 节点进行通信非常有用。通常与上面的 vpc_nameuse_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 实例的身份(可选)。

支持的值:

  1. LOCAL_CREDENTIALS:用户的本地凭证文件将上传到 SkyPilot 创建的 AWS 实例。这些凭证用于:

    • 访问云资源(例如,私有存储桶)。

    • 启动新实例(例如,用于作业/服务控制器)。

  2. SERVICE_ACCOUNT:本地凭证文件上传到 AWS 实例。而是:- SkyPilot 将为 AWS 实例自动创建并重用一个服务账户 (IAM role)。

  3. NO_UPLOAD:不会上传任何凭证到实例。这对于避免覆盖集群上可能已自动挂载的任何现有凭证非常有用。

  4. 自定义服务账户 (IAM 角色):将其指定为 <string><list of single-element dict>

    • <string>:将指定名称的服务账户应用于所有实例。

    • <list of single-element dict>:一个单元素字典列表,将集群名称(模式)映射到服务账户名称。

      • 集群名称的匹配顺序与列表相同。

      • 如果没有通配符表达式匹配集群名称,将使用 LOCAL_CREDENTIALS

      • 要指定默认值,请使用 * 作为通配符表达式。

多云用户使用 SERVICE_ACCOUNT 的注意事项

  1. 此设置仅影响 AWS 实例。本地 AWS 凭证仍将上传到非 AWS 实例(因为这些实例可能需要访问 AWS 资源)。要完全禁用凭证上传,请设置 remote_identity: NO_UPLOAD

  2. 如果 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_nameuse_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-8ga3-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 Engine

  • karpenter:Karpenter

  • generic:通用自动扩缩容器,假定节点使用 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>