Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
chaosblade — An easy to use and powerful chaos engineering experiment toolkit.(알리바바가 오픈소스로 공개한 간단하고 사용하기 쉬우며 강력한 카오스 엔지니어링 실험 주입 도구) | Kitploit
도구/GitHubGitHub/chaosblade-io/chaosblade
Cloud Infrastructure SecurityContainer SecurityDevSecOpsChaos Engineering
GitHubchaosblade-io/chaosblade

chaosblade

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

저장소 보기
6.5k1.0k6일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

logo

Chaosblade: 사용하기 쉽고 강력한 카오스 엔지니어링 툴킷

Build Status Financial Contributors on Open Collective codecov license CII Best Practices

중국어 버전 README
Wiki: DeepWiki

🔥🔥🔥 주요 업데이트:Chaosblade 에이전트 출시 - Blade AI

image Blade AI는 ChaosBlade 생태계 내에서 지능형 에이전트 계층 역할을 합니다. 기반 계층에서는 ChaosBlade를 호출하여 장애 주입을 실행하고, 상위 계층에서는 의도 이해, 보안 감사, 효과 검증, 안전한 복구, 구조화된 보고와 같은 오케스트레이션 기능을 통합합니다. 이를 통해 장애 훈련을 "명령을 수동으로 작성하는" 과정에서 "대화형 상호작용"을 통해 완료되는 과정으로 전환합니다.

자세한 내용은 Blade AI README를 참조하세요.

  • 릴리스: blade-ai-v0.1.0
  • 코드 브랜치: blade-ai-v0.1.0

소개

ChaosBlade는 카오스 엔지니어링 및 카오스 실험 모델의 원칙을 따르는 알리바바 오픈소스 실험 주입 도구로, 기업이 분산 시스템의 내결함성을 개선하고 클라우드 전환 또는 클라우드 네이티브 시스템으로의 이전 과정에서 비즈니스 연속성을 보장할 수 있도록 돕습니다.

Chaosblade는 MonkeyKing의 내부 오픈소스 프로젝트입니다. 알리바바의 약 10년간의 장애 테스트 및 훈련 실무를 기반으로 하며, 그룹 비즈니스의 최고의 아이디어와 사례를 결합합니다.

ChaosBlade는 사용하기 쉬울 뿐만 아니라 풍부한 실험 시나리오를 지원합니다. 시나리오는 다음과 같습니다:

  • 기본 리소스: CPU, 메모리, 네트워크, 디스크, 프로세스 등의 실험 시나리오;
  • Java 애플리케이션: 데이터베이스, 캐시, 메시지, JVM 자체, 마이크로서비스 등. 또한 특정 클래스 메서드를 지정하여 다양한 복잡한 실험 시나리오를 주입할 수 있습니다;
  • C ++ 애플리케이션: 임의의 메서드 또는 코드 라인을 지정하여 지연을 주입하고 변수 및 반환값을 변조하는 등의 실험 시나리오;
  • 컨테이너: 컨테이너 강제 종료, 컨테이너 내 CPU, 메모리, 네트워크, 디스크, 프로세스 등의 실험 시나리오;
  • 클라우드 네이티브 플랫폼: 예를 들어 Kubernetes 플랫폼 노드의 CPU, 메모리, 네트워크, 디스크, 프로세스 실험 시나리오, Pod 네트워크 및 Pod 자체(Pod 강제 종료 등) 실험 시나리오, 그리고 앞서 언급한 Docker 컨테이너 실험 시나리오와 같은 컨테이너 실험 시나리오;

시나리오를 도메인별로 개별 프로젝트로 캡슐화하면 해당 도메인의 시나리오를 표준화할 수 있을 뿐만 아니라 시나리오의 수평적·수직적 확장도 용이해집니다. 카오스 실험 모델을 따르므로 chaosblade cli를 통일된 방식으로 호출할 수 있습니다. 현재 포함된 항목은 다음과 같습니다:

  • chaosblade: 카오스 실험 관리 도구로, 실험 생성, 실험 삭제, 실험 조회, 실험 환경 준비, 실험 환경 취소 명령을 포함합니다. 카오스 실험을 실행하는 도구이며, 실행 방식에는 CLI와 HTTP가 있습니다. 완전한 명령, 실험 시나리오 및 시나리오 파라미터 설명을 제공하며, 조작이 간단하고 명확합니다.
  • chaosblade-spec-go: 카오스 실험 모델의 Golang 언어 정의로, Golang 언어로 구현된 시나리오는 이 명세를 기반으로 쉽게 구현할 수 있습니다.
  • chaosblade-exec-os: 기본 리소스 실험 시나리오 구현.
  • chaosblade-exec-docker: Docker API 호출을 통해 표준화된 Docker 컨테이너 실험 시나리오 구현.
  • chaosblade-exec-cri: CRI 호출을 통해 표준화된 컨테이너 실험 시나리오 구현.
  • chaosblade-operator: Kubernetes 플랫폼 실험 시나리오 구현으로, 카오스 실험을 Kubernetes 표준 CRD 방식으로 정의합니다. kubectl, client-go 등을 포함한 Kubernetes 리소스 운영 방식을 사용하여 실험 시나리오를 생성, 업데이트, 삭제하는 것이 매우 편리하며, 앞서 설명한 chaosblade cli 도구도 사용할 수 있습니다.
  • chaosblade-exec-jvm: Java 애플리케이션 실험 시나리오 구현으로, Java Agent 기술을 사용하여 동적으로 마운트되며 별도의 연동 없이 제로 비용으로 사용할 수 있습니다. 또한 제거(언인스톨)를 지원하며 Agent가 생성한 다양한 리소스를 완전히 회수합니다.
  • chaosblade-exec-cplus: C ++ 애플리케이션 실험 시나리오 구현으로, GDB 기술을 사용하여 메서드 및 코드 라인 수준의 실험 시나리오 주입을 구현합니다.
  • chaosblade-box: 카오스 엔지니어링 플랫폼 및 복원력 테스트 플랫폼 기능을 보유하고 있습니다. 복원력 테스트 플랫폼 기능에 대한 자세한 내용은 main2 브랜치를 참조하세요.

빠른 시작

이 가이드는 ChaosBlade를 사용하여 5분 이내에 Kubernetes에서 첫 번째 장애 주입을 실행할 수 있도록 안내합니다. 최소 예제로 Pod에 CPU 부하 장애를 주입해 보겠습니다.

사전 요구사항

시작하기 전에 다음 사항을 확인하세요:

  • 실행 중인 Kubernetes 클러스터에 대한 kubectl 액세스 (kubectl cluster-info가 정상적으로 반환됨)
  • 실행 중인 Pod가 하나 이상 있는 대상 네임스페이스 (기본값: default)
  • ChaosBlade 설치:
    • chaosblade CLI 툴킷을 다운로드하여 압축 해제 (blade 바이너리가 PATH에 있어야 함)
    • chaosblade-operator를 클러스터에 배포 (Kubernetes 시나리오에 필요)

Helm으로 운영자(operator)를 설치합니다:

root@kitploit:~
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace

운영자가 실행 중인지 확인합니다:

root@kitploit:~
kubectl get pods -n chaosblade

첫 번째 장애 주입 (CPU 부하)

default 네임스페이스의 Pod에 CPU 전체 부하 장애를 실행합니다:

root@kitploit:~
blade create k8s pod-cpu fullload   --cpu-percent 80   --kubeconfig ~/.kube/config   --names <pod-name>   --namespace default

주입에 성공하면 ChaosBlade는 실험 uid가 포함된 JSON 결과를 반환합니다. 이 uid를 저장해 두면 나중에 상태를 확인하거나 실험을 삭제할 수 있습니다:

root@kitploit:~
{"code":200,"success":true,"result":"<experiment-uid>"}

실험 상태 확인

root@kitploit:~
blade status <experiment-uid>

복구 (장애 삭제)

훈련 후에는 항상 복구를 실행하여 대상을 정상 상태로 되돌리세요:

root@kitploit:~
blade destroy <experiment-uid>

끝입니다! 주입-검증-복구 전체 사이클을 완료했습니다. 더 많은 시나리오를 살펴보려면 blade create k8s -h를 실행하거나 클라우드 네이티브 환경에서의 카오스 엔지니어링 실무를 참조하세요.

CLI 명령

최신 chaosblade 툴킷은 Releases에서 다운로드하여 압축을 풀고 사용할 수 있습니다. Kubernetes 관련 장애 시나리오를 주입하려면 chaosblade-operator를 설치해야 합니다. 자세한 중국어 사용 문서는 chaosblade-help-zh-cn 을 참조하세요.

chaosblade는 CLI 및 HTTP 호출 방식을 지원합니다. 지원되는 명령은 다음과 같습니다:

  • prepare: 별칭은 p로, 카오스 엔지니어링 실험 전 준비를 의미합니다. 예를 들어 Java 애플리케이션을 훈련하려면 java agent를 attach해야 합니다. 애플리케이션 이름이 business인 애플리케이션을 훈련하려면 대상 호스트에서 blade p jvm --process business를 실행합니다. attach에 성공하면 상태 조회 또는 agent 해제(revoke)를 위한 uid를 반환합니다.
  • revoke: 별칭은 r로, 이전의 카오스 엔지니어링 실험 준비를 취소합니다(예: java agent 분리). 명령은 blade revoke UID입니다.
  • create: 별칭은 c로, 카오스 엔지니어링 실험을 생성합니다. 명령은 blade create [TARGET] [ACTION] [FLAGS]입니다. 예를 들어 Dubbo consumer가 xxx.xxx.Service 인터페이스를 호출할 때 3초 지연을 구현하려면 blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service를 실행합니다. 주입에 성공하면 상태 조회 및 실험 삭제를 위한 실험 uid를 반환합니다.
  • destroy: 별칭은 d로, 카오스 엔지니어링 실험을 삭제합니다. 예를 들어 위에서 언급한 Dubbo 지연 실험을 삭제하려면 blade destroy UID를 실행합니다.
  • status: 별칭은 s로, 준비 단계 또는 실험 상태를 조회합니다. 명령은 blade status UID 또는 blade status --type create입니다.
  • server: 웹 서버를 시작하고 HTTP 서비스를 노출하여 HTTP 요청을 통해 chaosblade를 호출합니다. 예를 들어 대상 머신 xxxx에서 blade server start -p 9526을 실행하여 CPU 전체 부하 실험을 수행합니다: curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"

blade help [COMMAND] 또는 blade [COMMAND] -h 명령을 사용하여 도움말을 확인할 수 있습니다.

체험 데모

chaosblade 데모 이미지를 다운로드하여 blade 툴킷 사용을 체험해 보세요.

demo.gif

이미지 다운로드 명령:

root@kitploit:~
docker pull chaosbladeio/chaosblade-demo

데모 컨테이너 실행:

root@kitploit:~
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에 제출해 주세요.

다음 채널로도 연락할 수 있습니다:

  • Dingding 그룹 (중국어 사용자에게 권장): 23177705
  • Slack 그룹: chaosblade-io
  • Gitter 룸: chaosblade community
  • 이메일: [email protected]
  • 트위터: chaosblade.io

기여

우리는 문장 부호 하나라도 모든 기여를 환영합니다. 자세한 내용은 CONTRIBUTING을 참조하세요. 커뮤니티 참여 학생들을 위한 승진 사다리에 대해서는 (Contributor Ladder)를 참조하세요.

기업 등록

저희 오픈소스 프로젝트의 원래 목적은 기업에서 카오스 엔지니어링을 도입하는 진입 장벽을 낮추는 것이므로, 기업에서의 프로젝트 사용을 매우 중요하게 생각합니다. 모두 이곳 ISSUE에 참여해 주세요. 등록 후에는 기업 메일 그룹에 초대되어 카오스 엔지니어링이 기업에 안착하면서 겪는 문제를 논의하고 안착 경험을 공유하게 됩니다.

기여자

코드 기여자

이 프로젝트는 기여해 주신 모든 분들 덕분에 존재합니다. [기여하기].

라이선스

Chaosblade는 Apache License, Version 2.0에 따라 라이선스가 부여됩니다. 전체 라이선스 전문은 LICENSE를 참조하세요.

도구 다운로드