Configuring Pricing#

By default, Kubernetes virtual instance types report a cost of $0.00 in sky launch, sky status, and sky gpus list because SkyPilot has no way to know the true cost of on-prem or self-managed clusters.

To display meaningful cost estimates, add hourly rates in your ~/.sky/config.yaml:

kubernetes:
  pricing:
    cpu: 0.05        # $/vCPU/hr  (CPU-only instances)
    memory: 0.01     # $/GB/hr    (CPU-only instances)
    accelerators:
      A100: 3.50     # $/accelerator/hr (all-in, includes cpu/memory)
      H100: 5.00

Pricing uses two mutually exclusive tiers: CPU-only instances (no accelerator) use the cpu and memory rates, while accelerator instances use only the per-accelerator rate (an all-in price that includes cpu and memory). All fields are optional; unset fields contribute $0.00.

Per-context overrides#

When using multiple Kubernetes clusters, you can set different pricing for each context using context_configs. Context-level pricing is deep-merged with the cloud-level default — only the keys you specify are overridden, and unmentioned accelerators are inherited:

kubernetes:
  pricing:
    cpu: 0.05
    memory: 0.01
    accelerators:
      A100: 3.50
      H100: 5.00
  context_configs:
    on-prem-cluster:
      pricing:
        # Overrides only the cpu rate; memory and accelerators
        # are inherited from the cloud-level pricing above.
        cpu: 0.08

See kubernetes.pricing in the advanced configuration reference for full details on all supported fields.