Verify the descheduler deployment

After enabling the descheduler, confirm that the deployment, Pods, ConfigMap, and arguments are all in the expected state.

  1. Check that the deployment is ready and that the Pods are running:

    kubectl get deployment -n kube-system ucp-descheduler -o wide
    kubectl get pods -n kube-system \
      -l app.kubernetes.io/name=ucp-descheduler
    

    The deployment Ready count must match replicas and all Pods must display as Running.

  2. Inspect the policy ConfigMap:

    kubectl get configmap -n kube-system ucp-descheduler-policy \
      -o yaml | head -80
    

    The data.policy.yaml must be present. Until you customize the policy, profiles may be an empty list.

  3. Verify the arguments passed to the descheduler container:

    kubectl get deployment -n kube-system ucp-descheduler \
      -o jsonpath='{.spec.template.spec.containers[0].args}{"\n"}'
    

    Arguments must start with --policy-config-file and /etc/descheduler/policy.yaml, followed by your extra_flags values or the default interval.

  4. Check recent log output for errors:

    kubectl logs -n kube-system \
      -l app.kubernetes.io/name=ucp-descheduler --tail=50
    

    No crash loop must be present. With an empty policy, log output between intervals is minimal.