k8s系统预留资源
2020-11-13 本文已影响0人
Firetheworld
k8s的节点调度按照Capacity调度,默认情况下pod 使用节点的全部可用容量。
计算节点的进程分为:
- Pod 进程:容器进程
- 非Pod进程:系统进程。
需要对k8s进行资源预留,k8s把所有的资源都分配给Pod会导致计算节点出现Not Ready
,导致发生雪崩效应。k8s集群不在状态中。
k8s的计算资源共有四部分
kube-reserved:预留给 K8S 管理进程的资源,如 Kubelet,Docker Daemon 等
system-reserved:预留给系统资源
eviction-threshold:eviction 的阈值
allocatable(available for pods):pods 可以使用的资源
为了简化管理,建议不对 kube-reserved/system-reserved 做区分,预留给二者内存的总和为 4 GB。启动 kubelet 时,设置如下参数
ubuntu系统:
sudo vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --cgroups-per-qos=true --kube-reserved=cpu=500m,memory=2Gi"
centos系统:
系统资预留源前查看:
[root@k8s-10-192-43-203 ~]# kubectl describe node k8s-10-192-43-204
...
...
...
InternalIP: 10.192.43.204
Hostname: k8s-10-192-43-204
Capacity:
cpu: 16
ephemeral-storage: 296855940Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32851920Ki
pods: 110
Allocatable:
cpu: 16
ephemeral-storage: 273582433852
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32749520Ki
pods: 110
资源限制:
[root@k8s-10-192-43-204 ~]# vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --kube-reserved=cpu=500m,memory=1Gi"
[root@k8s-10-192-43-204 ~]# systemctl daemon-reload
[root@k8s-10-192-43-204 ~]# systemctl restart kubelet
系统资预留源后查看:
[root@k8s-10-192-43-203 ~]# kubectl describe node k8s-10-192-43-204
...
...
...
Addresses:
InternalIP: 10.192.43.204
Hostname: k8s-10-192-43-204
Capacity:
cpu: 16
ephemeral-storage: 296855940Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 32851920Ki
pods: 110
Allocatable:
cpu: 15500m
ephemeral-storage: 273582433852
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 31700944Ki
pods: 110