run-chaos-experiment
О программе
Этот навык позволяет разработчикам проектировать и выполнять эксперименты по хаос-инжинирингу с использованием Litmus или Chaos Mesh в Kubernetes. Он осуществляет контролируемое внедрение сбоев для проверки устойчивости системы, валидации гипотез об отказах и улучшения процессов восстановления. Используйте его перед крупными запусками, после изменений в архитектуре или во время учений по отказоустойчивости, чтобы проактивно повышать надежность вашей системы.
Быстрая установка
Claude Code
Рекомендуетсяnpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/run-chaos-experimentСкопируйте и вставьте эту команду в Claude Code для установки этого навыка
Документация
行混驗
控注故以測且改系韌也。
用
- 大釋前(負測)→用
- 構改後(驗韌)→用
- GameDay 或災復演→用
- 驗故模假→用
- SRE 熟度計畫→用
入
- 必:Kubernetes 叢(Litmus 或 Chaos Mesh)
- 必:穩態定(「常」貌)
- 必:假設(如「一 pod 死,API 仍可用」)
- 可:察棧(Prometheus、Grafana)量影
- 可:回退計
行
一:定穩態與假
文錄常態:
## Steady State Definition
### Service: API Gateway
- **Availability**: 99.9% (< 0.1% error rate)
- **Latency**: p95 < 200ms
- **Throughput**: 1000 req/s
## Hypothesis
"If one API pod is killed, the remaining pods will handle the load with <5s
disruption and no increase in error rate."
得:明、可量之常與成準。
敗:穩態不可定→察不足,先增指。
二:限爆徑
縮驗以減險:
# chaos-config.yaml
apiVersion: v1
kind: Namespace
metadata:
name: chaos-testing
設護:
## Blast Radius Controls
### Environment
- **Scope**: Staging only (first 5 runs)
- **Production**: Only after 5 successful staging runs
- **Timing**: Business hours (09:00-17:00 local)
### Auto-Abort Conditions
- Error rate >10% for >30 seconds
得:驗有界、不傾全系。
敗:徑過大→縮範。一非關服始。
三:裝 Chaos Mesh
# Add Chaos Mesh Helm repo
helm repo add chaos-mesh https://charts.chaos-mesh.org
helm repo update
# Install Chaos Mesh
helm install chaos-mesh chaos-mesh/chaos-mesh \
--namespace chaos-mesh \
--create-namespace \
--set dashboard.create=true \
--set controllerManager.replicaCount=1
# Verify
kubectl get pods -n chaos-mesh
# Dashboard
kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333
替:Litmus(中立):
kubectl apply -f https://litmuschaos.github.io/litmus/litmus-operator-v2.14.0.yaml
kubectl get pods -n litmus
得:Chaos Mesh 或 Litmus 行、面板可達。
敗:查 RBAC。混工需叢級權。
四:建行驗
例:Pod Kill(Chaos Mesh):
# pod-kill-experiment.yaml
apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
name: api-pod-kill-test
namespace: chaos-testing
spec:
action: pod-kill
mode: one
selector:
namespaces:
- production
labelSelectors:
app: api-gateway
chaos-enabled: "true"
duration: "30s"
施驗:
kubectl apply -f pod-kill-experiment.yaml
kubectl get podchaos -n chaos-testing -w
kubectl describe podchaos api-pod-kill-test -n chaos-testing
察影於 Grafana:
rate(http_requests_total{status=~"5..", job="api"}[1m])
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job="api"}[1m]))
rate(kube_pod_container_status_restarts_total{pod=~"api-.*"}[5m])
得:pod 死、k8s 重啟、服續微擾。
敗:誤率躍或服衰→停驗、查。
五:析果迭
書驗報:
# Chaos Experiment Report
**Hypothesis**: API stays available if one pod crashes
**Tool**: Chaos Mesh
## Results
- **Error Rate**: 0.1% → 2.3% (8s)
- **Recovery Time**: 8 seconds
## Hypothesis Outcome
**FAILED**: Error rate exceeded 1% threshold
## Improvements Made
1. Reduced readiness probe interval: 10s → 2s
2. Added pre-stop hook: 5-second sleep
記驗於日誌:
date,experiment,environment,status,error_rate_peak,recovery_time_s,outcome
2025-02-09,pod-kill-api,staging,complete,2.3%,8,failed
得:習得記、修施、後驗約。
敗:驗後無動→混工程為戲。優先修。
六:升至產(慎)
預驗常過後:
apiVersion: chaos-mesh.org/v1alpha1
kind: PodChaos
metadata:
name: api-pod-kill-prod
spec:
action: pod-kill
duration: "10s"
scheduler:
cron: "0 10 * * 2"
產護:
kubectl create configmap chaos-killswitch \
-n chaos-testing \
--from-literal=enabled=true
得:產驗於低險窗、急停備。
敗:產驗致事故→立禁、覆盤。
驗
- 穩態與假明定
- 爆徑限(境、範、時)
- 混工裝測
- 預驗成
- 果文錄附指析
- 修施
- 後驗驗修
- 產驗僅於 ≥ 5 預成後
忌
- 無假:「看何發」費時。必有假
- 範過廣:殺諸 pod 為災復測,非韌測。始小
- 產先:勿首於產。預先恆
- 忽果:無動之混為戲。修所學
- 警疲:混驗觸警。Grafana 註或靜期警
- 無停計:失控時需急停。備之
參
setup-prometheus-monitoringconfigure-alerting-rulesdefine-slo-sli-sla
GitHub репозиторий
Похожие навыки
evaluating-llms-harness
ТестированиеЭтот навык Claude запускает lm-evaluation-harness для тестирования LLM на более чем 60 стандартизированных академических задачах, таких как MMLU и GSM8K. Он предназначен для разработчиков, чтобы сравнивать качество моделей, отслеживать прогресс обучения или сообщать академические результаты. Инструмент поддерживает различные бэкенды, включая модели HuggingFace и vLLM.
cloudflare-cron-triggers
ТестированиеЭтот навык предоставляет обширные знания по реализации Cloudflare Cron Triggers для планирования запуска Workers с помощью cron-выражений. Он охватывает настройку периодических задач, заданий технического обслуживания и автоматизированных рабочих процессов, а также решение распространенных проблем, таких как неверные cron-выражения и ошибки часовых поясов. Разработчики могут использовать его для настройки планировщиков обработчиков, тестирования cron-триггеров и интеграции с Workflows и Green Compute.
webapp-testing
ТестированиеЭтот навык Claude предоставляет инструментарий на базе Playwright для тестирования локальных веб-приложений с помощью Python-скриптов. Он позволяет проводить проверку фронтенда, отладку интерфейса, создание скриншотов и просмотр логов, одновременно управляя жизненным циклом сервера. Используйте его для задач автоматизации браузера, но запускайте скрипты напрямую, вместо чтения их исходного кода, чтобы избежать загрязнения контекста.
finishing-a-development-branch
ТестированиеЭтот навык помогает разработчикам завершать готовую работу, проверяя прохождение тестов и предлагая структурированные варианты интеграции. Он направляет рабочий процесс по слиянию, созданию пул-реквестов или очистке веток после завершения реализации. Используйте его, когда ваш код готов и протестирован, чтобы систематически завершать процесс разработки.
