• Yu-Ju Hong's avatar
    kubelet: trigger pod workers independently · b906e345
    Yu-Ju Hong authored
    Currently, whenever there is any update, kubelet would force all pod workers to
    sync again, causing resource contention and hence performance degradation.
    
    This commit flips kubelet to use incremental updates (as opposed to snapshots).
    This allows us to know what pods have changed and send updates to those pod
    workers only. The `SyncPods` function has been replaced with individual
    handlers, each handling an operation (ADD, REMOVE, UPDATE). Pod workers are
    still triggered periodically, and kubelet performs periodic cleanup as well.
    
    This commit also spawns a new goroutine solely responsible for killing pods.
    This is necessary because pod killing could hold up the sync loop for
    indefinitely long amount of time now user can define the graceful termination
    period in the container spec.
    b906e345
runonce.go 4.36 KB