
An easy to use and powerful chaos engineering experiment toolkit.(알리바바가 오픈소스로 공개한 간단하고 사용하기 쉬우며 강력한 카오스 엔지니어링 실험 주입 도구)

Blade AI는 ChaosBlade 생태계 내에서 지능형 에이전트 계층 역할을 합니다. 기반 계층에서는 ChaosBlade를 호출하여 장애 주입을 실행하고, 상위 계층에서는 의도 이해, 보안 감사, 효과 검증, 안전한 복구, 구조화된 보고와 같은 오케스트레이션 기능을 통합합니다. 이를 통해 장애 훈련을 "명령을 수동으로 작성하는" 과정에서 "대화형 상호작용"을 통해 완료되는 과정으로 전환합니다.
자세한 내용은 Blade AI README를 참조하세요.
ChaosBlade는 카오스 엔지니어링 및 카오스 실험 모델의 원칙을 따르는 알리바바 오픈소스 실험 주입 도구로, 기업이 분산 시스템의 내결함성을 개선하고 클라우드 전환 또는 클라우드 네이티브 시스템으로의 이전 과정에서 비즈니스 연속성을 보장할 수 있도록 돕습니다.
Chaosblade는 MonkeyKing의 내부 오픈소스 프로젝트입니다. 알리바바의 약 10년간의 장애 테스트 및 훈련 실무를 기반으로 하며, 그룹 비즈니스의 최고의 아이디어와 사례를 결합합니다.
ChaosBlade는 사용하기 쉬울 뿐만 아니라 풍부한 실험 시나리오를 지원합니다. 시나리오는 다음과 같습니다:
시나리오를 도메인별로 개별 프로젝트로 캡슐화하면 해당 도메인의 시나리오를 표준화할 수 있을 뿐만 아니라 시나리오의 수평적·수직적 확장도 용이해집니다. 카오스 실험 모델을 따르므로 chaosblade cli를 통일된 방식으로 호출할 수 있습니다. 현재 포함된 항목은 다음과 같습니다:
이 가이드는 ChaosBlade를 사용하여 5분 이내에 Kubernetes에서 첫 번째 장애 주입을 실행할 수 있도록 안내합니다. 최소 예제로 Pod에 CPU 부하 장애를 주입해 보겠습니다.
시작하기 전에 다음 사항을 확인하세요:
kubectl cluster-info가 정상적으로 반환됨)default)blade 바이너리가 PATH에 있어야 함)Helm으로 운영자(operator)를 설치합니다:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
운영자가 실행 중인지 확인합니다:
kubectl get pods -n chaosblade
default 네임스페이스의 Pod에 CPU 전체 부하 장애를 실행합니다:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
주입에 성공하면 ChaosBlade는 실험 uid가 포함된 JSON 결과를 반환합니다. 이 uid를 저장해 두면 나중에 상태를 확인하거나 실험을 삭제할 수 있습니다:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
훈련 후에는 항상 복구를 실행하여 대상을 정상 상태로 되돌리세요:
blade destroy <experiment-uid>
끝입니다! 주입-검증-복구 전체 사이클을 완료했습니다. 더 많은 시나리오를 살펴보려면 blade create k8s -h를 실행하거나 클라우드 네이티브 환경에서의 카오스 엔지니어링 실무를 참조하세요.
최신 chaosblade 툴킷은 Releases에서 다운로드하여 압축을 풀고 사용할 수 있습니다. Kubernetes 관련 장애 시나리오를 주입하려면 chaosblade-operator를 설치해야 합니다. 자세한 중국어 사용 문서는 chaosblade-help-zh-cn 을 참조하세요.
chaosblade는 CLI 및 HTTP 호출 방식을 지원합니다. 지원되는 명령은 다음과 같습니다:
blade p jvm --process business를 실행합니다. attach에 성공하면 상태 조회 또는 agent 해제(revoke)를 위한 uid를 반환합니다.blade revoke UID입니다.blade create [TARGET] [ACTION] [FLAGS]입니다. 예를 들어 Dubbo consumer가 xxx.xxx.Service 인터페이스를 호출할 때 3초 지연을 구현하려면 blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service를 실행합니다. 주입에 성공하면 상태 조회 및 실험 삭제를 위한 실험 uid를 반환합니다.blade destroy UID를 실행합니다.blade status UID 또는 blade status --type create입니다.blade server start -p 9526을 실행하여 CPU 전체 부하 실험을 수행합니다: curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload" blade help [COMMAND] 또는 blade [COMMAND] -h 명령을 사용하여 도움말을 확인할 수 있습니다.
chaosblade 데모 이미지를 다운로드하여 blade 툴킷 사용을 체험해 보세요.

이미지 다운로드 명령:
docker pull chaosbladeio/chaosblade-demo
데모 컨테이너 실행:
docker run -it --privileged chaosbladeio/chaosblade-demo
컨테이너에 진입한 후 README.txt 파일을 읽고 카오스 실험을 수행할 수 있습니다. 즐거운 체험 되세요.
chaosblade-operator 프로젝트는 클라우드 네이티브 플랫폼을 위한 카오스 실험 주입 도구입니다. 카오스 실험 모델을 따라 실험 시나리오를 표준화하고 실험을 Kubernetes CRD 리소스로 정의하여 실험 모델을 Kubernetes 리소스 속성에 매핑함으로써, 카오스 실험 모델과 Kubernetes의 선언적 설계를 매우 자연스럽게 결합합니다. 카오스 실험 모델에 기반하여 시나리오를 편리하게 개발하는 동시에 Kubernetes 설계 개념도 잘 통합할 수 있으며, kubectl을 통해 또는 코드를 작성하여 Kubernetes API를 직접 호출함으로써 카오스 실험을 생성, 업데이트, 삭제할 수 있습니다. 또한 리소스 상태를 통해 실험의 실행 상태를 명확히 파악할 수 있어 Kubernetes 장애 주입을 표준화합니다. 위의 방법 외에도 chaosblade cli 방식으로 Kubernetes 실험 시나리오를 실행하고 실험 상태를 매우 편리하게 조회할 수 있습니다. 자세한 내용은 중국어 문서 클라우드 네이티브 환경에서의 카오스 엔지니어링 실무를 참조하세요.
자세한 내용은 BUILD.md를 참조하세요.
버그 신고, 질문 및 토론은 GitHub Issues에 제출해 주세요.
다음 채널로도 연락할 수 있습니다:
우리는 문장 부호 하나라도 모든 기여를 환영합니다. 자세한 내용은 CONTRIBUTING을 참조하세요. 커뮤니티 참여 학생들을 위한 승진 사다리에 대해서는 (Contributor Ladder)를 참조하세요.
저희 오픈소스 프로젝트의 원래 목적은 기업에서 카오스 엔지니어링을 도입하는 진입 장벽을 낮추는 것이므로, 기업에서의 프로젝트 사용을 매우 중요하게 생각합니다. 모두 이곳 ISSUE에 참여해 주세요. 등록 후에는 기업 메일 그룹에 초대되어 카오스 엔지니어링이 기업에 안착하면서 겪는 문제를 논의하고 안착 경험을 공유하게 됩니다.
이 프로젝트는 기여해 주신 모든 분들 덕분에 존재합니다. [기여하기].
Chaosblade는 Apache License, Version 2.0에 따라 라이선스가 부여됩니다. 전체 라이선스 전문은 LICENSE를 참조하세요.