菜单
开源 RSS

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

bash
kubectl run nginx --image=nginx

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