Explorar el Código

Update README.md

Webb Brown hace 6 años
padre
commit
ec0310a319
Se han modificado 1 ficheros con 11 adiciones y 10 borrados
  1. 11 10
      README.md

+ 11 - 10
README.md

@@ -64,33 +64,34 @@ Kubernetes.
 
 ## Questions
 
-***How do you measure the cost of a CPU/RAM/GPU for a container, pod, deployment, etc.***
+***How do you measure the cost of CPU/RAM/GPU/storage for a container, pod, deployment, etc.***
 
-The Kubecost model collects pricing data from major cloud providers, e.g. GCP, Azure and AWS, to provide the real-time cost of running workloads. Based on data from these APIs, each container/pod inherits a cost per CPU hour, GPU hour, and cost per RAM Gb hour based on the node where it was running. This means containers of the same size, as measured by the max of requests or usage, could be charged different resource rates if they are scheduled in seperate regions, on nodes with different usage types (on-demand vs preemptible), etc. 
+The Kubecost model collects pricing data from major cloud providers, e.g. GCP, Azure and AWS, to provide the real-time cost of running workloads. Based on data from these APIs, each container/pod inherits a cost per CPU-hour, GPU-hour, Storage Gb-hour and cost per RAM Gb-hour based on the node where it was running or the class of storage provisioned. This means containers of the same size, as measured by the max of requests or usage, could be charged different resource rates if they are scheduled in seperate regions, on nodes with different usage types (on-demand vs preemptible), etc. 
 
-For on-prem clusters, these resource prices can be configred directly with custom pricing sheetsc (more below).
+For on-prem clusters, these resource prices can be configred directly with custom pricing sheets (more below).
 
 Measuring the CPU/RAM/GPU cost of a deployment, service, namespace, etc is the aggregation of its individual container costs.
 
 ***How do you determine RAM/CPU costs for a node when this data isn’t provided by a cloud provider?***
 
-The Kubecost model starts by pegging to a default CPU price when this information is not supplied by a cloud provider or when Kubecost is deployed into an on-prem cluster. This CPU price value is configuable and supplied via json. The price of RAM is then determined by the total node cost less the combined price of all CPUs (i.e. # of CPUs attached to the node multiplied by the per CPU price). The value of both are then normalized to ensure RAM + CPU costs are never greater than the total price of the node when a cloud provider is able to provide total node cost.
+When explicit RAM or CPU prices are not provided by your cloud provider, the Kubecost model falls back to the base CPU and RAM price inputs supplied. These defaults are based on recent GCP rates but can be easily customized via json or in product Settings depending on your installation path. 
 
-    CPUHourlyCost = CONFIGURABLE_CPU_PRICE (if not directly supplied by Cloud provider)
+These base RAM/CPU prices are normalized to ensure the sum of each component is equal to the total price of the node provisioned, based on billing rates from your provider. When the sum of RAM/CPU costs is greater (or less) than the price of the node, then the ratio between the two input prices are held constant.  
 
-    RAMGBHourlyCost = TOTAL_NODE_COST - CPUHourlyCost * # of CPUS
+As an example, let's say you have a node with 1 CPU and 1 Gb of RAM that costs $20/mo. If your base CPU price is $30 and your RAM Gb price is $10, then these inputs will be normlized to $15 for CPU and $5 for RAM so that the sum equals the cost of the node. Note that the price of a CPU remains 3x the price of one Gb of RAM. 
+
+    NodeHourlyCost = NORMALIZED_CPU_PRICE * # of CPUS + NORMALIZED_RAM_PRICE * # of RAM Gb
 
 ***How do you allocate a specific amount of RAM/CPU to an individual pod or container?***
 
 Resources are allocated based on the time-weighted maximum of resource Requests and Usage over the measured period. For example, a pod with no usage and 1 CPU requested for 12 hours out of a 24 hour window would be allocated 12 CPU hours. For pods with BestEffort quality of service (i.e. no requests) allocation is done solely on resource usage. 
 
-***How do I set my AWS spot bids for allocation?***
+***How do I set my AWS Spot bids for accurate allocation?***
 
-Modify [spotCPU](https://github.com/kubecost/cost-model/blob/master/cloud/default.json#L5) and  [spotRAM](https://github.com/kubecost/cost-model/blob/master/cloud/default.json#L7) in default.json to the price of your bid. Allocation will use these bid prices, but does not take into account what you are actually charged.
+Modify [spotCPU](https://github.com/kubecost/cost-model/blob/master/cloud/default.json#L5) and  [spotRAM](https://github.com/kubecost/cost-model/blob/master/cloud/default.json#L7) in default.json to the price of your bid. Allocation will use these bid prices, but it does not take into account what you are actually charged by AWS. Alternatively, you can provide an AWS key to allow access to the Spot data feed. This will provide accurate Spot prices. 
 
 ***Do I need a GCP billing API key?***
 
-We supply a global key with a low limit for evaluation, but you will want to supply your own before moving to production.
-  
+We supply a global key with a low limit for evaluation, but you will want to supply your own before moving to production.  
   
 Please reach out with any additional questions on  [Slack](https://join.slack.com/t/kubecost/shared_invite/enQtNTA2MjQ1NDUyODE5LTg0MzYyMDIzN2E4M2M5OTE3NjdmODJlNzBjZGY1NjQ3MThlODVjMGY3NWZlNjQ5NjIwNDc2NGU3MWNiM2E5Mjc) or via email at [team@kubecost.com](team@kubecost.com).