【发布时间】:2020-08-28 08:44:03
【问题描述】:
为了在多 pod 系统上进行一些稳健性测试,我需要以某种方式模拟 pod 故障。 我不想在部署中使用缩减,因为它不太现实。 在我的情况下,删除 pod 也不是很实用,因为 pod 会在短时间内恢复。
我检查了以下方面的回复: How to simulate Power Failure In Kubernetes 而且不符合我的需要。 有什么建议吗?
【问题讨论】:
标签: kubernetes robustness
为了在多 pod 系统上进行一些稳健性测试,我需要以某种方式模拟 pod 故障。 我不想在部署中使用缩减,因为它不太现实。 在我的情况下,删除 pod 也不是很实用,因为 pod 会在短时间内恢复。
我检查了以下方面的回复: How to simulate Power Failure In Kubernetes 而且不符合我的需要。 有什么建议吗?
【问题讨论】:
标签: kubernetes robustness
你可以查看这个名为Chaos Mesh的工具。
这有 Pod 故障、网络故障、创建压力、IO 混沌等选项。混沌网格专为 Kubernetes 及其开源设计。
还有另一个很棒的工具叫做Litmus。这也是专门为 Kubernetes 设计的。
【讨论】:
为了模拟网络问题,我建议关闭其中一个节点或弄乱它的 IP 地址,使其无法访问。
另一种方法是模拟 max out resources 。你可以exec 进入一个 pod 并运行一些会消耗大量资源(CPU、RAM)的东西,同时为它们设置了限制。或者,您可以设置低于实际使用量的限制。
您还可以设置探针并模拟它们的故障。失败的Liveness 探测将强制重新启动 pod。
最后,您也可以查看Chaos Controller。它为混沌测试提供控制器,并支持一系列故障场景。
【讨论】:
也许你可以强调内存使用,这样它就会因为 OOM 问题而被杀死。并尝试杀死容器内运行的主进程,该进程也将重新启动 pod。我建议的最后一个选项是配置错误的 liveness 和 readiness probe。
【讨论】: