编辑kubernetes的 kube-reserved 和 system-reserved

本文介绍了如何在Kubernetes集群中,通过编辑kubelet配置文件,预留CPU、内存和存储资源,以防止节点资源耗尽导致集群性能下降。作者详细描述了如何设置kubelet预留值、驱逐策略等,确保集群的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果Kubernetes集群部署了大量的应用,负载跑满了每个node节点的CPU和Memory后,可能会导致Kubernetes集群自身的运行出问题。所以编辑 kubelet 的配置,预留集群和系统的资源。这里用 kubeadm 部署的1.28.2 k8s 集群。

编辑 kubelet.service 的配置文件,添加下面配置

vim /usr/lib/systemd/system/kubelet.service
[Unit]
Description=kubelet: The Kubernetes Node Agent
Documentation=https://kubernetes.io/docs/
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/bin/kubelet
Restart=always
StartLimitInterval=0
RestartSec=10

[Install]
WantedBy=multi-user.target

# /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

编辑 kubelet 的配置文件,追加以下内容

cat <<EOF | sudo tee -a /var/lib/kubelet/config.yaml
kubeReserved:  #集群预留
  cpu: "0.5"
  memory: "1Gi"
  ephemeral-storage: "1Gi"
systemReserved:  #系统预留,集群外跑了服务才预留这么多。
  cpu: "74"
  memory: "266Gi"
  ephemeral-storage: "1Gi"
evictionHard:  #剩余资源驱逐的硬性阈值
  memory.available: "250Mi"
  nodefs.available: "10%"
  imagefs.available: "10%"
  nodefs.inodesFree: "5%"
EOF

修改好配置,重启 kubelet

systemctl daemon-reload && systemctl restart kubelet && systemctl status kubelet

查看工作节点的详细信息,

kubectl describe node c01n01|grep -A 13 Capacity

可以看到  系统资源总容量-预留资源=可分配资源,资源预留成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值