PodDisruptor
PodDisruptor
类可以将不同类型的故障注入到符合选择条件的 Pod 中。
要构造一个 PodDisruptor
,请使用 PodDisruptor() 构造函数。
方法
方法 | 描述 |
---|---|
PodDisruptor.injectGrpcFaults() | 在目标 Pod 中注入 gRPC 故障 |
PodDisruptor.injectHTTPFaults() | 在目标 Pod 中注入 HTTP 故障 |
PodDisruptor.targets() | 返回 PodDisruptor 的目标 Pod 列表 |
PodDisruptor.terminatePods() | 在目标 Pod 中执行 Pod 终止故障 |
示例
此示例
- 创建一个选择器,匹配
default
命名空间中带有run=nginx
标签的所有 Pod - 注入 100 毫秒的延迟,并使 10% 的请求返回 http 响应码
500
。
import { PodDisruptor } from 'k6/x/disruptor';
const selector = {
namespace: 'default',
select: {
labels: {
run: 'nginx',
},
},
};
const fault = {
averageDelay: '100ms',
errorRate: 0.1,
errorCode: 500,
};
export default function () {
const disruptor = new PodDisruptor(selector);
disruptor.injectHTTPFaults(fault, '30s');
}
注意
您可以通过先创建一个运行 nginx 的 Pod 来测试此脚本,假设您的环境中已安装 kubectl
kubectl run nginx --image=nginx
您还可以使用 xk6-kubernetes 扩展从您的测试脚本中创建这些资源。