菜单
开源 RSS

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。
JavaScript
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

bash
> kubectl run nginx --image=nginx
> kubectl expose pod nginx --port 80

你也可以使用 xk6-kubernetes 扩展从你的测试脚本创建这些资源。