Uploaded image for project: 'OpenShift Node'
  1. OpenShift Node
  2. OCPNODE-835

Instead of frequent relisting Kubelet PLEG should use events from the runtime to optimize the performance

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Done
    • Icon: Critical Critical
    • openshift-4.13
    • None
    • None
    • Leverage Runtime Container Events in the Kubelet PLEG
    • False
    • False
    • To Do
    • OCPSTRAT-406 - Improve pod density in a baremetal node
    • OCPSTRAT-406Improve pod density in a baremetal node
    • 100
    • 100% 100%

      Epic Goal

      • Instead of relying on relisting, PLEG can leverage container events from the runtime, and translate these events into pod lifecycle events. This will further improve Kubelet's responsiveness and reduce the resource usage caused by frequent relisting.

      Why is this important?

      • Frequent relisting by the Kubelet creates resource pressure on the node. The runtime on the host already knows about the container lifecycle. So if this runtime can generate and forward these events to the kubelet, it will result in much lower footprint for the kubelet. This is especially important for high pod density nodes. 

      Scenarios

      1. High pod density node can benefit from kubelet not doing frequent relisting but instead relying on already known information to the runtimes.

      Acceptance Criteria

      • CI - MUST be running successfully with tests automated
      • Release Technical Enablement - Provide necessary release enablement details and documents.

      Dependencies (internal and external)

      1. Upstream CRI interface needs to adapt to allow events to flow from the runtime to the Kubelet.
      2. Runtime, such as crio, need to generate the required events. 
      3. Kubelet needs to process these events in PLEG

      Previous Work (Optional):

      1. https://github.com/kubernetes/community/blob/4026287dc3a2d16762353b62ca2fe4b80682960a/contributors/design-proposals/node/pod-lifecycle-event-generator.md#leverage-upstream-container-events

      Open questions::

      Done Checklist

      • CI - CI is running, tests are automated and merged.
      • Release Enablement <link to Feature Enablement Presentation>
      • DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>
      • DEV - Upstream documentation merged: <link to meaningful PR or GitHub Issue>
      • DEV - Downstream build attached to advisory: <link to errata>
      • QE - Test plans in Polarion: <link or reference to Polarion>
      • QE - Automated tests merged: <link or reference to automated tests>
      • DOC - Downstream documentation merged: <link to meaningful PR>

            harpatil@redhat.com Harshal Patil
            harpatil@redhat.com Harshal Patil
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: