K8s 限制节点内存使用率,内存不足时自动驱逐POD

K8s 限制节点内存使用率,内存不足时自动驱逐POD

限制前内存如下

bash 复制代码
# 1. 停止 kubelet
sudo systemctl stop kubelet

# 2. 备份当前配置
sudo cp /var/lib/kubelet/config.yaml /var/lib/kubelet/config.yaml.backup

# 3. 创建或编辑配置文件
sudo tee /var/lib/kubelet/config.yaml << 'EOF'
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
address: 0.0.0.0
port: 10250
clusterDomain: cluster.local

# ========== 内存保护核心配置 ==========
evictionHard:
  memory.available: "500Mi"        # 可用内存低于500MB时立即驱逐
  nodefs.available: "10%"          # 磁盘低于10%
  imagefs.available: "15%"         # 镜像存储低于15%
  nodefs.inodesFree: "5%"          # inode低于5%

evictionSoft:
  memory.available: "1Gi"          # 可用内存低于1GB时触发警告
  nodefs.available: "15%"          # 磁盘低于15%

evictionSoftGracePeriod:
  memory.available: "2m"           # 内存警告后2分钟才驱逐
  nodefs.available: "2m"

evictionMaxPodGracePeriod: 60      # Pod最长60秒优雅退出
evictionMinimumReclaim:
  memory.available: "300Mi"        # 每次至少回收300MB内存
  nodefs.available: "500Mi"        # 每次至少回收500MB磁盘

# ========== 预留配置 ==========
systemReserved:
  memory: "1.5Gi"                  # 为系统进程预留1.5GB
  cpu: "500m"
  ephemeral-storage: "5Gi"

kubeReserved:
  memory: "1Gi"                    # 为K8s组件预留1GB
  cpu: "250m"
  ephemeral-storage: "2Gi"

# ========== 其他重要配置 ==========
maxPods: 110                       # 每节点最多Pod数
podPidsLimit: 4096                 # 限制Pod的PID数量
cgroupDriver: systemd
failSwapOn: true
serializeImagePulls: true
EOF

# 4. 重启 kubelet
sudo systemctl daemon-reload
sudo systemctl start kubelet

# 5. 检查状态
sudo systemctl status kubelet

4. 重启 kubelet

sudo systemctl daemon-reload

sudo systemctl start kubelet

5. 检查状态

sudo systemctl status kubelet

增加配置后的内存情况

相关推荐
阿里云云原生19 小时前
研发视角的新突破:当 AI Coding 工具集成全域运维诊断,排查线上故障只需 3 分钟
云原生
小猿姐1 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
阿里云云原生2 天前
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
云原生·agent
阿里云云原生3 天前
Higress v2.2.3 发布:正式入驻 CNCF Sandbox,AI Gateway 与 Ingress 迁移能力双向加固
云原生
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生4 天前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生4 天前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事6 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes