配置混沌实验的命名空间
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
本章将指导您如何配置混沌实验,使其仅在指定命名空间中生效,并保护其他未指定的命名空间免受故障注入影响。
控制混沌实验生效范围
Chaos Mesh 提供两种方式控制混沌实验的生效范围:
-
要将混沌实验限制在指定命名空间生效,您需要启用 FilterNamespace 功能(默认关闭)。该功能具有全局作用域,启用后只需在允许混沌实验生效的命名空间上添加注解,未添加注解的命名空间将受到保护,免受故障注入。
-
若需为单个混沌实验指定生效范围,请参考定义混沌实验范围。
启用 FilterNamespace
若尚未安装 Chaos Mesh,可通过在 Helm 安装命令中添加 --set controllerManager.enableFilterNamespace=true 参数启用该功能。以下是在 Docker 容器中的命令示例:
使用 Helm 安装时,不同容器的命令和参数存在差异。更多信息请参阅使用 Helm 安装 Chaos Mesh。
若已通过 Helm 安装 Chaos Mesh,可使用 helm upgrade 命令升级配置来启用此功能,例如:
执行 helm upgrade 时,可通过添加多个 --set 参数设置多项配置,后设置的参数会覆盖先前的值。例如当命令中包含 --set controllerManager.enableFilterNamespace=false -set controllerManager.enableFilterNamespace=true 时,最终仍会启用该功能。
您也可通过 -f 参数指定 YAML 文件描述配置。更多信息请参考 Helm 升级文档。
为混沌实验添加命名空间注解
启用 FilterNamespace 后,Chaos Mesh 仅会向包含 chaos-mesh.org/inject=enabled 注解的命名空间注入故障。因此开始混沌实验前,需在目标命名空间添加此注解,其他命名空间将自动获得故障注入保护。
可通过以下 kubectl 命令为 namespace 添加注解:
kubectl annotate ns $NAMESPACE chaos-mesh.org/inject=enabled
上述命令中 $NAMESPACE 为命名空间名称(例如 default)。注解添加成功时将显示:
namespace/$NAMESPACE annotated
如需删除此注解,可使用以下命令:
kubectl annotate ns $NAMESPACE chaos-mesh.org/inject-
注解删除成功时将显示:
namespace/$NAMESPACE annotated
查看混沌实验生效的命名空间
可通过以下命令列出所有允许混沌实验的命名空间:
kubectl get ns -o jsonpath='{.items[?(@.metadata.annotations.chaos-mesh\.org/inject=="enabled")].metadata.name}'
该命令会输出所有包含 chaos-mesh.org/inject=enabled 注解的命名空间,例如:
default