-
Notifications
You must be signed in to change notification settings - Fork 40k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Write proposal for controller pod management: adoption, orphaning, ownership, etc. (aka controllers v2) #14961
Comments
A wrinkle: updating a selector in Deployment #14894 |
Some use cases for orphaning and/or adoption of pods:
|
If we had an imperative API, a With our declarative API, we can't get rid of the labels and selector since those identify which pods should be adopted -- there needs to be some known unique set of attributes to select on. Will also include nominal services #260, splitting out the template #170, and nominal jobs #14188 in the proposal. See also #12450. Ref #8190, since this is a "next-gen" API proposal. |
Demo of Kelsey removing a label in order to orphan a pod for debugging: https://www.youtube.com/watch?feature=player_detailpage&v=-8aUxpVrD40#t=2193 |
@kubernetes/rh-cluster-infra |
Maybe it's a semantic quibble, but I don't think the issue is imperative vs. declarative -- it's implicit vs. explicit encoding of which controller owns a pod. I see the as both being declarative. Do we have any examples/uses cases of adoption yet? I think it would be great if we could allow people to write controllers that only support the explicit model, i.e. don't have a Selector. (The controller would fill in controllerRef for the pods it creates.) |
By imperative, I meant operations like "transfer pods from controller X to controller Y". Adoption requests: #11209 |
/sub |
/sub |
Having a backpointer from pod to controller will greatly simplify scheduler code, consider for example the hoops we jump through to determine if a pod is controlled by a particular RC in CalculateSpreadPriority() and CalculateAntiAffinityPriority() (both in selector_spreading.go). A backpointer to the service would also be nice (would simplify CalculateSpreadPriority(), which spreads on both RC and service). |
Back pointer to service has other undesirable characteristics - like On Dec 1, 2015, at 5:28 AM, David Oppenheimer notifications@github.com Having a backpointer from pod to controller will greatly simplify scheduler — |
For 1.3, we're working on:
|
Note that unique label/selector generation similar to what we do for Job will require changes to kubectl expose, if will want users to be able to do a rolling update to an RC/RS with auto-generated labels. #17902 |
Make controllers aware of namespace termination: #38612 |
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or |
/remove-lifecycle stale |
Write a comprehensive proposal for how controllers should manage sets of pods. The main goal is to make controller APIs more usable and less error-prone.
We've discussed a number of changes:
We may want to split the following into separate issues:
Changes that would facilitate static work/role assignment:
Long-standing idea to improve security and reusability around templates:
Reusability could also be addressed by:
Also need to make it easier to update existing pods:
The text was updated successfully, but these errors were encountered: