Let’s say we have a physical machine running N jobs at the same time. Suppose the machine only have a large disk. And suppose all the jobs are IO-intensive and needs to read different pieces of data from the disk. Then each job will have different IO performance with different N, because the disk has limited IO throughput.
When N is large, each job’s IO throughput will be small.
When N is small, say 1, then that single job will have a very nice IO throughput.
How does Kubernetes deal with it to guarantee the job’s disk throughput?
In Kubernetes users can request for CPU # and memory size for a guaranteed performance. But how can users request for a guaranteed disk performance?