Pricing

(Document status: wip)

A Pricing Table defines the terms under which a given provider is willing to rent its compute resources for running pods. The Pricing Table is typically represented using a Protobuf object encoding the prices for reserving or using certain resources.

resourcetypical usagesuggested/example metrics
cpureserve (while application is running)kube_pod_resource_request{pod, resource=cpu}
memoryreserve (while application is running)kube_pod_resource_request{pod, resource=memory}
storagereserve (incl. while application is stopped)kubelet_volume_stats_available_bytes{namespace}
nvidia.com/gpu(|shared)reservekube_pod_resource_request{pod, resource=nvidia.com/gpu(|.shared)}
apocryph.network/ipreservekube_service_spec_type{namespace, type=NodePort}
kubernetes.io/(in|e)gress-bandwidthusagenginx_ingress_controller_nginx_process_(read|write)_bytes_total

The pricing table must encompass all essential billing details for clients, and it might be as straightforward as this:

ResourceDescriptionPrice
CPUN° of Cores/ N° of vCPUs$0.0001 VCPU(min/s/ms)
RAM CapacityCapacity (ex: GB)$0.00001 GB/(min/s/ms)
StorageType (e.g., Block, Object)$0.00001 GB/(min/s/ms)
GPU (Optional)Model$0.0001 per Execution (min/s/ms)

Or it could be split into categories with more detailed information:

Compute Pricing

  • CPU

    ResourceDescriptionNumber of CoresvCPUsModelTEE TypePrice per Unit
    CPUProcessing powerCoresvCPUsIntel, AMD, ARM, ...etcEnclaves, CVMs, ..etc$0.0001 VCPU(min/s/ms)
  • Ram

    ResourceDescriptionCapacityPrice
    RAMMemory capacityCapacity (ex: 1GB)$0.00001 GB/(min/s/ms)

Storage Pricing

ResourceDescriptionCapacityStorage TypePrice per Unit
StorageStorage resourcesCapacity (ex: 10GB)Block, Object, ...etc$000001 per GB(min/s/ms)

References: