场景:腾讯云 TKE 标准集群,Kubernetes 1.28,节点是 CVM,容器运行时为 containerd,系统盘 50GB。业务以 Deployment 部署,镜像更新比较频繁。 现象: 1. 个别节点磁盘使用率超过 85%,云监控触发告警,之后出现 Pod 被驱逐,事件里有 DiskPressure 和 ephemeral-storage 相关信息。 2. 登录节点后 df -h 看 /var/lib/containerd 所在分区占用很高,但不清楚主要是镜像层、容器可写层还是容器日志。 3. 清理后一两周又会涨回去。 已尝试: 1. 手动执行 crictl rmi --prune 清理未使用镜像,能释放一部分空间。 2. 查看了 kubelet 参数,不确定镜像垃圾回收的阈值是否在 TKE 上可以自定义。 3. 没有给 Pod 设置 ephemeral-storage 的 requests 和 limits。 想请教: 1. 如何区分镜像层、容器可写层和容器日志各自的占用?在 containerd 下有哪些命令可用? 2. kubelet 的 imageGCHighThresholdPercent 和 imageGCLowThresholdPercent 在 TKE 节点上如何查看和修改,修改后是否会随节点重建丢失? 3. 为 Pod 设置 ephemeral-storage 限制,以及容器日志轮转的参数 containerLogMaxSize 和 containerLogMaxFiles,应该怎样配置才能避免单个 Pod 把节点盘写满? 4. 是否有推荐的做法,例如单独挂载数据盘给 containerd 使用,以及这样做对已有节点的迁移成本?
相似问题