{"action":"created","issue":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/367","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/367/labels{/name}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/367/comments","events_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/367/events","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/367","id":37306685,"number":367,"title":"Consider more general scheduling constraints","user":{"login":"thockin","id":5595220,"avatar_url":"https://avatars.githubusercontent.com/u/5595220?v=3","gravatar_id":"","url":"https://api.github.com/users/thockin","html_url":"https://github.com/thockin","followers_url":"https://api.github.com/users/thockin/followers","following_url":"https://api.github.com/users/thockin/following{/other_user}","gists_url":"https://api.github.com/users/thockin/gists{/gist_id}","starred_url":"https://api.github.com/users/thockin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thockin/subscriptions","organizations_url":"https://api.github.com/users/thockin/orgs","repos_url":"https://api.github.com/users/thockin/repos","events_url":"https://api.github.com/users/thockin/events{/privacy}","received_events_url":"https://api.github.com/users/thockin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/area/scheduling","name":"area/scheduling","color":"ab6420"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/kind/enhancement","name":"kind/enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/labels/priority/P3","name":"priority/P3","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":42,"created_at":"2014-07-07T20:24:52Z","updated_at":"2015-02-23T20:06:04Z","closed_at":null,"body":"There have been a few folks who have asked about machine constraints for scheduling.  Let's use this issue as a place to gather ideas and requirements.\r\n\r\n@timothysc\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/comments/75620779","html_url":"https://github.com/GoogleCloudPlatform/kubernetes/issues/367#issuecomment-75620779","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/kubernetes/issues/367","id":75620779,"user":{"login":"abhgupta","id":1211613,"avatar_url":"https://avatars.githubusercontent.com/u/1211613?v=3","gravatar_id":"","url":"https://api.github.com/users/abhgupta","html_url":"https://github.com/abhgupta","followers_url":"https://api.github.com/users/abhgupta/followers","following_url":"https://api.github.com/users/abhgupta/following{/other_user}","gists_url":"https://api.github.com/users/abhgupta/gists{/gist_id}","starred_url":"https://api.github.com/users/abhgupta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhgupta/subscriptions","organizations_url":"https://api.github.com/users/abhgupta/orgs","repos_url":"https://api.github.com/users/abhgupta/repos","events_url":"https://api.github.com/users/abhgupta/events{/privacy}","received_events_url":"https://api.github.com/users/abhgupta/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T20:06:04Z","updated_at":"2015-02-23T20:06:04Z","body":"@pires @jbeda @brendanburns @bgrant0607 Am a bit late to this discussion, but in case this issue is still relevant, here is my take. The \"avoid co-schedule\" functionality is now easier to implement in a more generic manner, while also being closer to what the user actually intended. \r\n\r\nThe user could either want to avoid co-scheduling on a per-minion basis, or for a rack/zone/etc. https://github.com/GoogleCloudPlatform/kubernetes/pull/2906 implemented the priority functions for the scheduler that spreads pods across, for lack of a better word, \"node groups\" that are defined based on node labels. We could easily add a configuration parameter to this priority function that specified the maximum number of pods that can be placed on a single \"node group\". If co-scheduling is to be avoided on a per-minion basis, then there is a service spreading priority function that can be modified to accept the max-pods-per-minion parameter. \r\n\r\nIf a proper fit is not available, the pod would fail to be scheduled and this is an area where we don't currently have visibility (error being surfaced to the user properly). I would suggest going for these simple enhancements once we have the mechanism to bubble up scheduling constraint violations to the user/admin.\r\n\r\nhttps://github.com/GoogleCloudPlatform/kubernetes/pull/4674 deals with accepting the scheduler configuration via a JSON file."}}