Is there a particular density you are targeting? 1. pods per node 2. over-commit ratio for cpu 3. over-commit ratio for memory 4. do you want to allow for BestEffort pods to consume slack resources
Answers to your questions: 1. If you create a per-project quota, you can quota requests separate from limits -see example 3 [1]. In this setup, a client is required to specify a request and limit, but they can improve their QOS by setting the limit closer to their request. I imagine many users would want a better QOS on memory, and would be ok with a lower QOS for CPU depending on the application. 2. If you create a per-project quota and limit range, you have a mechanism to control for the shape of a pod (min/max), as well as the default resource consumption, and the ability to mandate a particular overcommit ratio using limitRequestRatio. For example, if you want a project with the highest possible QOS, you could set limitRequestRatio to 1 for both cpu and memory. The client is able to tune both the request and limit on a per pod basis without issue. The limit range defaults are only applied if the pod omits a resource requirement. 3. Since I wrote both the Kubernetes/OpenShift documentation, I am not surprised they are similar. I am happy to improve those documents though based on use cases which I think are largely tied to the above questions. [1] https://docs.openshift.org/latest/admin_guide/quota.html On Wed, Aug 10, 2016 at 2:26 PM, Srinivas Naga Kotaru (skotaru) < [email protected]> wrote: > Need some clarity on quotas and limits > > As a platform team, we want control quotas on cpu and memory and put upper > bounds and same time provide more flexibility to app team to control or > decide what is limits for their apps. > > Our clients come to our own UI and ask for project. They don’t’ have right > to create projects. We disabled it. Our robot account will create > project, setup initial project admin, and appropriate roles ( edit, view, > admins etc) > > One activity we want to control from UI is set quotas and put limits. > Robot account will be used to create quota and limit range on every > project. These numbers different project to project depending on client > type or apps types. We want to optimize better density + best QOS so both > infra and apps will be happier in terms of better utilization of resources. > > Documentation is good but not answering real time scenarios or examples > unless you understood big picture. > > Questions: > > > 1. What if we just define per project quota but don’t create limitrange? > Can client control request and limits by himself at pod level subject to > with in the upper controls of cpu/memory? > > 2. What if if we create both quota and limit range with defaults values > for better density ( scheduler to place pods with decent default request) > but later client to control both request and limits subject to quota > limitations. Can they able to do or limitrange defaults always take > precedence? > > default: > cpu: “500m" > memory: “1Gi" > defaultRequest: > cpu: “300m" > memory: “512Mi” > > 3. Any decent documentation which explain real use cases rather high level > which is available from project docs. ( I think it is cut and paste from > official Kubernetes docs) > > > -- > *Srinivas Kotaru* > > _______________________________________________ > dev mailing list > [email protected] > http://lists.openshift.redhat.com/openshiftmm/listinfo/dev > >
_______________________________________________ dev mailing list [email protected] http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
