Make rc manager more responsive to unexpected adds/deletes #7369
Open
Description
Currently the rc manager will not respond to unexpected pod creates/deletes till all the creates/deletes it has sent to the apiserver have been observed by the reflector, or a timeout occurs. There are situations where we could land up with:
- Rc goes to sleep till it sees 1 add
- One pod gets deleted <- we want the rc to wake up here
- One pod is created <- rc really wakes up here
The easy way around this is to use the expectations of the rc to compute how many extra pods to create even when the watch hasn't observed the adds/dels. Eg:
observed + (expected add - expected dels) - status.Replicas
The tricky bit here is locking, since currently the expectations are incremented/decremented via atomic operations. This will matter more in hostile netwoks with high lag, where the watch may not transmit pod add/dels for a while.
Metadata
Assignees
Labels
Type
Projects
Status
Needs Triage