Node Agent

CRI Resource Manager can be configured dynamically using the CRI Resource Manager Node Agent and Kubernetes* ConfigMaps.

Running as a DaemonSet

The agent can be build using the provided Dockerfile. It can be deployed as a DaemonSet in the cluster using the provided deployment file.

When using the provided or a similar deployment, the agent uses a readiness probe to propagate the status of the last configuration update back to the control plane. If the configuration could not be taken into use for any reason, the agent’s probe will fail which eventually marks the agent as not being Ready. In this case, more details about the failure should be present among the latest messages logged by the agent or the probe itself. if the reason for failure is a configuration error, once the error is fixed, the agent should become eventually Ready again.

Running as a Host Service

To run the agent manually or as a systemd service, set the environment variable NODE_NAME to the name of the cluster node the agent is running on. If necessary pass it the credentials for accessing the cluster using the -kubeconfig <file> command line option.

ConfigMap to Node Mapping Conventions

The agent monitors two ConfigMaps for the node, a primary node-specific one and a secondary group-specific or default one, depending on whether the node belongs to a configuration group. The node-specific ConfigMap always takes precedence over the others.

The names of these ConfigMaps are

  1. cri-resmgr-config.node.$NODE_NAME: primary, node-specific configuration

  2. cri-resmgr-config.group.$GROUP_NAME: secondary group-specific node configuration

  3. cri-resmgr-config.default: secondary: secondary default node configuration

You can assign a node to a configuration group by setting the cri-resource-manager.intel.com/group label on the node to the name of the configuration group. You can remove a node from its group by deleting the node group label.

There is a sample ConfigMap spec that contains a node-specific, a group-specific, and a default ConfigMap example. See any available policy-specific documentation for more information on the policy configurations.