cncf / demo

Demo of CNCF technologies
https://cncf.io
Apache License 2.0
77 stars 39 forks source link

Resource Quality of Service in Kubernetes #137

Open namliz opened 7 years ago

namliz commented 7 years ago

Background reading:

https://github.com/kubernetes/kubernetes/blob/master/docs/devel/scheduler_algorithm.md https://github.com/kubernetes/kubernetes/blob/master/docs/design/resource-qos.md

This issue is to discuss what were dealing with in the context of the demo.

namliz commented 7 years ago

Additional reference:

https://aws.amazon.com/ec2/virtualcores/ Kuberentes Docs: Managing Compute Resources

Meaning of CPU

Limits and requests for cpu are measured in cpus. One cpu, in Kubernetes, is equivalent to: 1 AWS vCPU 1 GCP Core 1 Azure vCore 1 Hyperthread on a bare-metal Intel processor with Hyperthreading


The simple stratagem:

That's it. A full core per node is dedicated to boinc/distcc, to switch, simply edit the node labels ad watch as the controller does the right thing (destroys the no longer matching daemoset pods, create the newly matching ones).

Since its possible to access the kubernetes API from a pod the distcc sidecar that polls for new commits can also do the node relabeling to promote distcc.

This is a fair benchmark overall, it sets the floor at atleast 50% cluster utilization but I'm not yet entirely sure how excess CPU resources will get distributed.