スキル一覧に戻る

run-chaos-experiment

pjt222
更新日 6 days ago
17 閲覧
17
2
17
GitHubで表示
テストaitestingdesign

について

このスキルは、開発者がKubernetes上でLitmusまたはChaos Meshを使用してカオスエンジニアリングの実験を設計・実行できるようにします。制御された障害注入を行い、システムの耐障害性をテストし、障害仮説を検証し、回復プロセスを改善します。主要なリリース前、アーキテクチャ変更後、または耐障害性訓練中に使用することで、システムの信頼性を積極的に強化できます。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git 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-monitoring
  • configure-alerting-rules
  • define-slo-sli-sla

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/wenyan-ultra/skills/run-chaos-experiment
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

evaluating-llms-harness

テスト

このClaudeスキルは、lm-evaluation-harnessを実行し、MMLUやGSM8Kなど60以上の標準化学術タスクでLLMをベンチマークします。開発者がモデルの品質を比較し、トレーニングの進捗を追跡し、学術的な結果を報告するために設計されています。このツールはHuggingFaceやvLLMモデルを含む様々なバックエンドをサポートしています。

スキルを見る

cloudflare-cron-triggers

テスト

このスキルは、cron式を使用してWorkersをスケジュールするためのCloudflare Cron Triggersの実装に関する包括的な知識を提供します。定期的なタスクの設定、メンテナンスジョブ、自動化されたワークフローの構築を網羅し、無効なcron式やタイムゾーン問題といった一般的な課題への対処法も含みます。開発者はこれを使用して、スケジュールされたハンドラーの設定、cronトリガーのテスト、WorkflowsやGreen Computeとの連携を構成できます。

スキルを見る

webapp-testing

テスト

このClaude Skillは、Playwrightベースのツールキットを提供し、Pythonスクリプトを通じてローカルWebアプリケーションのテストを可能にします。フロントエンドの検証、UIデバッグ、スクリーンショット撮影、ログ表示を実現し、サーバーライフサイクルを管理します。ブラウザ自動化タスクにご利用いただけますが、コンテキストの汚染を避けるため、スクリプトのソースコードを読むのではなく直接実行してください。

スキルを見る

finishing-a-development-branch

テスト

このスキルは、開発者がテストの合格を確認し、構造化された統合オプションを提示することで、完成した作業を仕上げることを支援します。実装が完了した後のマージ、PR作成、ブランチの整理といったワークフローを案内します。コードが準備できてテスト済みの際に使用し、開発プロセスを体系的に完了させましょう。

スキルを見る