ServiceDisruptor
ServiceDisruptor
类可以将不同类型的故障注入到支持 Kubernetes service 的 pod 中。
要构造 ServiceDisruptor
,请使用 ServiceDisruptor() 构造函数。
方法
方法 | 描述 |
---|---|
ServiceDisruptor.injectGrpcFaults() | 在目标 Pod 中注入 gRPC 故障 |
ServiceDisruptor.injectHTTPFaults() | 在目标 Pod 中注入 HTTP 故障 |
ServiceDisruptor.targets() | 返回 ServiceDisruptor 的目标 Pod 列表 |
ServiceDisruptor.terminatePods() | 在目标 Pod 中执行 Pod 终止故障 |
示例
以下示例
- 为
nginx
service 创建一个 disruptor - 注入 100ms 的延迟,并使 10% 的请求返回 HTTP 响应码 500。
import { ServiceDisruptor } from 'k6/x/disruptor';
const fault = {
averageDelay: '100ms',
errorRate: 0.1,
errorCode: 500,
};
export default function () {
const disruptor = new ServiceDisruptor('nginx', 'default');
disruptor.injectHTTPFaults(fault, '30s');
}
注意
你可以通过先创建一个运行 nginx 的 pod 并使用以下命令将其暴露为 service 来测试此脚本,前提是你的环境中已安装 kubectl
> kubectl run nginx --image=nginx > kubectl expose pod nginx --port 80
你也可以使用 xk6-kubernetes 扩展从你的测试脚本创建这些资源。