
pingcap/chaos-operatorpingcap chaos-operator是基于Kubernetes Operator模式开发的混沌工程工具,旨在帮助用户在Kubernetes集群中进行可控的故障注入实验,以验证系统在异常条件下的稳定性和弹性。通过声明式API定义混沌实验,实现对K8s集群中各类资源(如Pod、网络、节点等)的故障注入和管理,是保障分布式系统可靠性的关键工具。
部署CRD和Operator
通过kubectl apply部署官方提供的部署清单:
bashkubectl apply -f [***] kubectl apply -f [***]
验证部署状态
检查operator Pod是否正常运行:
bashkubectl get pods -n chaos-testing # 预期输出类似:chaos-operator-xxxxxx-xxxx 1/1 Running 0 5m
通过创建ChaosExperiment自定义资源定义实验,以下是Pod删除故障的示例:
yamlapiVersion: pingcap.com/v1alpha1 kind: ChaosExperiment metadata: name: pod-delete-example namespace: chaos-testing spec: target: kind: Pod selector: namespaces: ["default"] labelSelectors: app: my-app # 匹配标签为app=my-app的Pod action: name: pod-delete params: count: 1 # 一次删除1个Pod duration: "30s" # 故障持续时间 scheduler: cron: "@every 2m" # 每2分钟执行一次
应用上述配置:
bashkubectl apply -f pod-delete-experiment.yaml -n chaos-testing
bashkubectl get chaosexperiments -n chaos-testing
bashkubectl describe chaosexperiment pod-delete-example -n chaos-testing
bashkubectl delete chaosexperiment pod-delete-example -n chaos-testing
operator部署时可通过环境变量调整行为,常用配置如下:
CHAOS_CONTROLLER_MANAGER_LOG_LEVEL:日志级别,默认info,可选debug、warn、error。CHAOS_CONTROLLER_MANAGER_RECONCILE_PERIOD:控制器调和周期,默认30s。CHAOS_METRICS_PORT: metrics暴露端口,默认8080。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务