Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-2326

Memory manager requires capital "S" Static policy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • 4.9
    • Node / Memory manager
    • Moderate
    • None
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      When configuring memory manager in a KubeletConfig, it errors when using lower case "static" policy (like CPUManager uses), ex:
      
      apiVersion: machineconfiguration.openshift.io/v1
      kind: KubeletConfig
      metadata:
        name: pin
      spec:
        machineConfigPoolSelector:
          matchLabels:
            custom-kubelet: cpumanager-enabled
        kubeletConfig:
           cpuManagerPolicy: static
           cpuManagerReconcilePeriod: 5s
           reservedSystemCPUs: "0,1,2,3,112,113,114,115"
           topologyManagerPolicy: single-numa-node
           memoryManagerPolicy: static
           reservedMemory:
             - numaNode: 0
               limits:
                 memory: "1124Mi"
      
      Resulted in the node not starting kubelet due to:
      Oct 13 16:13:02 worker-perf52 hyperkube[17970]: E1013 16:13:02.747246   17970 container_manager_linux.go:360] "Failed to initialize memory manager" err="unknown policy: \"static\""
      Oct 13 16:13:02 worker-perf52 hyperkube[17970]: E1013 16:13:02.747255   17970 server.go:294] "Failed to run kubelet" err="failed to run Kubelet: unknown policy: \"static\""
      Oct 13 16:13:02 worker-perf52 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
      
      This was only resolved by changing the policy to upper case "Static"
      
      Ideally it could accept "static" or "Static", but at least it would be less confusing if it matched the example CPUManager lower case "static" syntax, ex: https://docs.openshift.com/container-platform/4.11/scalability_and_performance/using-cpu-manager.html

      Version-Release number of selected component (if applicable):

      4.9

      How reproducible:

      Every time "static" is used for memory manager policy the node will not become Ready due to kubelet failure.

      Steps to Reproduce:

      1. oc create -f KubeletConfig.yaml (from above)
      2. check node journal logs to confirm why kubelet is failing
      3. recover by manually editing the policy to be "Static"
      

      Actual results:

      Kubelet fails to start

      Expected results:

      Policy is not case sensitive or at least matches the long used CPUManager lower case

      Additional info:

      Also OpenShift docs showing an example memory manager KubeletConfig could be very helpful!

       

       

              mburke@redhat.com Michael Burke
              jhopper@redhat.com Jenifer Abrams
              Mallapadi Niranjan Mallapadi Niranjan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: