Skip to content
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

UPSTREAM: 47806: kubelet: fix inconsistent display of terminated pod IPs by using events instead #16464

Merged
merged 1 commit into from
Sep 28, 2017

Commits on Sep 20, 2017

  1. UPSTREAM: 47806: kubelet: fix inconsistent display of terminated pod …

    …IPs by using events instead
    
    PLEG and kubelet race when reading and sending pod status to the apiserver.  PLEG
    inserts status into a cache, and then signals kubelet.  Kubelet then eventually
    reads the status out of that cache, but in the mean time the status could have
    been changed by PLEG.
    
    When a pod exits, pod status will no longer include the pod's IP address because
    the network plugin/runtime will report "" for terminated pod IPs.  If this status
    gets inserted into the PLEG cache before kubelet gets the status out of the cache,
    kubelet will see a blank pod IP address.  This happens in about 1/5 of cases when
    pods are short-lived, and somewhat less frequently for longer running pods.
    
    To ensure consistency for properties of dead pods, copy an old status update's
    IP address over to the new status update if (a) the new status update's IP is
    missing and (b) all sandboxes of the pod are dead/not-ready (eg, no possibility
    for a valid IP from the sandbox).
    
    Fixes: kubernetes/kubernetes#47265
    Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1449373
    dcbw committed Sep 20, 2017
    Configuration menu
    Copy the full SHA
    3ca93e7 View commit details
    Browse the repository at this point in the history