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-system
NAME DATA AGE
calico-config 4 11d
coredns 1 11d
dns-autoscaler 1 11d
extension-apiserver-authentication 6 11d
kube-root-ca.crt 1 11d
master-default-kubelet-config 1 11d
metrics-server-config 1 11d
worker-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?