How-To Implement CPU and Memory System Reservation for Kubernetes Nodes
Problem
You are observing CPU or memory constraints on your Kubernetes nodes and would like to implement systemReserved parameter to reserve some resources for the system processes.
Environment
- Platform9 Managed Kubernetes - All Versions
- Kubelet
Procedure
- Identify the worker kubelet configuration within the cluster.
# kubectl get cm -n kube-systemNAME DATA AGEcalico-config 4 11dcoredns 1 11ddns-autoscaler 1 11dextension-apiserver-authentication 6 11dkube-root-ca.crt 1 11dmaster-default-kubelet-config 1 11dmetrics-server-config 1 11dworker-default-kubelet-config 1 11d- Backup the original kubelet configuration configmap.
# kubectl get cm worker-default-kubelet-config -n kube-system -o yaml > <path_to_backup>- Modify the default__kubelet configmap and add the systemReserved parameter.
# kubectl edit cm worker-default-kubelet-config -n kube-system authorization: mode: AlwaysAllow systemReserved: memory: "1Gi" cpu: "1" clusterDNS: - "10.21.0.10"..Additional Information
- As soon as the file is saved, the changes are automatically applied to all the existing worker nodes.
- As a part of this change, the kubelet service on the worker node gets restarted.
Was this page helpful?