为什么 Kubernetes 会为我的节点设置磁盘压力污点?
Why Kubernetes sets disk-pressure taint to my node?
如何弄清楚为什么会设置污点?
这是我在 kubelet 配置中的驱逐配置:
Kubelet 配置:
kubeletArguments:
eviction-soft:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
eviction-soft-grace-period:
- memory.available=1m30s
- nodefs.available=1m30s
- nodefs.inodesFree=1m30s
- imagefs.available=1m30s
- imagefs.inodesFree=1m30s
eviction-hard:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
dh -f
输出显示总共 20GiB space 中有 3.8GiB 可用。 (>100Mi 配置),因此既没有达到软驱逐阈值也没有达到硬驱逐阈值。 df -i
表示仅使用了 20% 的 inode。
我试图通过发出 sudo journalctl -u kubelet -b | grep pressure
来找出原因,但没有找到任何有用的信息。也许有人可以建议更好的关键字?
已解决。
原来我使用了错误的语法来配置阈值。这是设置这些的正确方法:
evictionSoft:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
evictionSoftGracePeriod:
memory.available: 5m
nodefs.available: 5m
nodefs.inodesFree: 5m
imagefs.available: 5m
imagefs.inodesFree: 5m
evictionHard:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
(在我的例子中,配置文件位于 /var/lib/kubelet/config.yaml
)
然后kubelet需要重启:
sudo systemctl restart kubelet
这里有一个有用的命令来获取 kubelet 日志以检查它是否正确启动:journalctl -u kubelet --since "1min ago"
如何弄清楚为什么会设置污点?
这是我在 kubelet 配置中的驱逐配置:
Kubelet 配置:
kubeletArguments:
eviction-soft:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
eviction-soft-grace-period:
- memory.available=1m30s
- nodefs.available=1m30s
- nodefs.inodesFree=1m30s
- imagefs.available=1m30s
- imagefs.inodesFree=1m30s
eviction-hard:
- memory.available<100Mi
- nodefs.available<100Mi
- nodefs.inodesFree<1%
- imagefs.available<100Mi
- imagefs.inodesFree<1%
dh -f
输出显示总共 20GiB space 中有 3.8GiB 可用。 (>100Mi 配置),因此既没有达到软驱逐阈值也没有达到硬驱逐阈值。 df -i
表示仅使用了 20% 的 inode。
我试图通过发出 sudo journalctl -u kubelet -b | grep pressure
来找出原因,但没有找到任何有用的信息。也许有人可以建议更好的关键字?
已解决。 原来我使用了错误的语法来配置阈值。这是设置这些的正确方法:
evictionSoft:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
evictionSoftGracePeriod:
memory.available: 5m
nodefs.available: 5m
nodefs.inodesFree: 5m
imagefs.available: 5m
imagefs.inodesFree: 5m
evictionHard:
memory.available: "100Mi"
nodefs.available: "100Mi"
nodefs.inodesFree: "1%"
imagefs.available: "100Mi"
imagefs.inodesFree: "1%"
(在我的例子中,配置文件位于 /var/lib/kubelet/config.yaml
)
然后kubelet需要重启:
sudo systemctl restart kubelet
这里有一个有用的命令来获取 kubelet 日志以检查它是否正确启动:journalctl -u kubelet --since "1min ago"