【问题标题】:kubernetes pod does not use space even when there is space on the node即使节点上有空间,kubernetes pod 也不使用空间
【发布时间】:2021-05-07 15:51:34
【问题描述】:

我有一个 zookeeper pod,不知何故去了 Crashloopbackoff,现在无论我做什么,即使节点上有足够的空间,它也不会出现。

节点剩余空间:46G

我的 pod 请求的空间:2000Mi

我可以在 pod 的日志中看到这一点

===> 正在配置... [Errno 28] 设备上没有剩余空间 命令 [/usr/local/bin/dub 模板 /etc/confluent/docker/myid.template /var/lib/zookeeper/data/myid] 失败!

我试过了

kubectl delete pod zookeeper

之后它只是回到 crashloopbackoff

有没有办法在不终止和重新部署的情况下恢复 pod(statefulset)?

请帮忙。

【问题讨论】:

  • 不确定这是否是这里的原因,但文件系统上的一些空间是为 root 保留的(通常为 5%)。
  • 嗯,是的。但是,如果这是导致问题的原因,那么即使我终止并重新部署 pod 也不应该出现,对吗?
  • 另一个原因可能是文件系统上的 inode 用完了(我认为在这种情况下错误消息是相同的,但我可能错了)。能不能登陆节点看看能不能手动创建文件?
  • @WytrzymałyWiktor ,没有任何进展问题。豆荚仍然没有出现。我找到了解决方法。如果我更改 statefulset 的副本并将 statefulset 作为一个整体升级,zookeeper pod 就会按预期出现。
  • @darthsithius 我明白了。您能否尝试使用docker image prune -f 和/或docker container prune -f?这些将删除未使用的数据并释放一些磁盘空间。

标签: kubernetes apache-zookeeper kubernetes-helm kubernetes-statefulset


【解决方案1】:

这很可能是剩余 docker 图像的问题。你应该检查:

  • df -h的可用空间

  • df -i 的可用 inode

此问题最常见的解决方案是remove unused docker imagesdocker image prune -a

WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N] y

您还可以使用docker system prune 删除所有已停止的容器以及所有未由任何容器使用的卷和网络。它还将删除所有悬空的图像。

【讨论】:

  • 由于我不再有设置来检查这个,我无法确认。正如我在之前的评论中所说,我更改了副本集。在遇到进一步的问题时,我终止了发布并重新发布。
猜你喜欢
  • 1970-01-01
  • 2022-11-27
  • 2019-06-06
  • 2023-03-14
  • 1970-01-01
  • 2019-12-17
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多