Quick-start
The following describes the minimum number of steps to get started with CRI Resource Manager.
Pre-requisites
containerd container runtime installed and running
kubelet installed on your nodes
Setup CRI-Resmgr
First, install and setup cri-resource-manager.
Install package
Fedora*, and SUSE*
CRIRM_VERSION=`curl -s "https://api.github.com/repos/intel/cri-resource-manager/releases/latest" | \
jq .tag_name | tr -d '"v'`
source /etc/os-release
[ "$ID" = "sles" ] && export ID=opensuse-leap
sudo rpm -Uvh https://github.com/intel/cri-resource-manager/releases/download/v${CRIRM_VERSION}/cri-resource-manager-${CRIRM_VERSION}-0.${ID}-${VERSION_ID}.x86_64.rpm
Ubuntu* and Debian*
CRIRM_VERSION=`curl -s "https://api.github.com/repos/intel/cri-resource-manager/releases/latest" | \
jq .tag_name | tr -d '"v'`
source /etc/os-release
pkg=cri-resource-manager_${CRIRM_VERSION}_${ID}-${VERSION_ID}_amd64.deb; curl -LO https://github.com/intel/cri-resource-manager/releases/download/v${CRIRM_VERSION}/${pkg}; sudo dpkg -i ${pkg}; rm ${pkg}
Setup and verify
Create configuration and start cri-resource-manager
sudo cp /etc/cri-resmgr/fallback.cfg.sample /etc/cri-resmgr/fallback.cfg
sudo systemctl enable cri-resource-manager && sudo systemctl start cri-resource-manager
See that cri-resource-manager is running
systemctl status cri-resource-manager
Kubelet setup
Next, you need to configure kubelet to use cri-resource-manager as it’s container runtime endpoint.
Existing cluster
When integrating into an existing cluster you need to change kubelet to use cri-resmgr instead of the existing container runtime (expecting containerd here).
Fedora, and SUSE
sudo sed '/KUBELET_EXTRA_ARGS/ s!$! --container-runtime-endpoint=/var/run/cri-resmgr/cri-resmgr.sock!' -i /etc/sysconfig/kubelet
sudo systemctl restart kubelet
Ubuntu and Debian
sudo sed '/KUBELET_EXTRA_ARGS/ s!$! --container-runtime-endpoint=/var/run/cri-resmgr/cri-resmgr.sock!' -i /etc/default/kubelet
sudo systemctl restart kubelet
New Cluster
When in the process of setting up a new cluster you simply point the kubelet to use the cri-resmgr cri sockets on cluster node setup time. Here’s an example with kubeadm:
kubeadm join --cri-socket /var/run/cri-resmgr/cri-resmgr.sock \
...
What Next
Congratulations, you now have cri-resource-manager running on your system and policying container resource allocations. Next, you could see:
Installation for more installation options and detailed installation instructions
Setup for details on setup and usage
Node Agent for setting up cri-resmgr-agent for dynamic configuration and more
Webhook for setting up our resource-annotating webhook
Support for Kata Containers* for setting up CRI-RM with Kata Containers