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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
chaos-operator — 클라우드 네이티브 워크로드에 카오스 실험을 주입하고, 선언적 CRD를 통해 복원력 테스트와 워크로드 강화를 자동화하는 Kubernetes Operator. | Kitploit
도구/GitHubGitHub/litmuschaos/chaos-operator
Cloud Infrastructure SecurityCloud SecurityDevSecOpsChaos Engineering
GitHublitmuschaos/chaos-operator

chaos-operator

클라우드 네이티브 워크로드에 카오스 실험을 주입하고, 선언적 CRD를 통해 복원력 테스트와 워크로드 강화를 자동화하는 Kubernetes Operator.

저장소 보기
1571061개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

쿠버네티스에 카오스 실험을 주입하기 위한 Litmus chaos-operator

Slack Channel GitHub Workflow Docker Pulls GitHub issues Twitter Follow Codacy Badge Go Report Card CII Best Practices FOSSA Status codecov YouTube Channel

Litmus chaos operator는 Kubernetes 애플리케이션 개발자와 SRE가 관리되는 방식으로 애플리케이션과 Kubernetes 인프라에 카오스를 주입하는 데 사용됩니다. 그 목적은 카오스 실험 실행을 자동화하여 Kubernetes에서 애플리케이션 워크로드의 검증 및 하드닝(강화) 과정을 쉽게 만드는 것입니다. 간단한 카오스 주입 워크플로의 예는 다음과 같습니다:

  • 운영자 매니페스트를 통해 Litmus 인프라 구성 요소(RBAC, CRD), Operator 및 Experiment 사용자 정의 리소스 번들을 설치합니다
  • 테스트 대상 애플리케이션(AUT)에 어노테이션을 추가하여 카오스를 활성화합니다
  • AUT에 연결된 ChaosEngine 사용자 정의 리소스를 생성하여 실행할 실험을 설명합니다

Chaos Operator가 제공하는 이점은 다음과 같습니다:

  • 표준화된 카오스 실험 스펙
  • stateless/stateful/벤더별로 분류된 카오스 번들
  • 테스트 실행 탄력성
  • 어노테이션에 따라 카오스를 백그라운드 서비스로 실행할 수 있는 기능

카오스 Operator란 무엇이며 어떻게 구축되나요?

Chaos Operator는 Kubernetes API에 직접 액세스할 수 있는 사용자 정의 컨트롤러(custom-controller)에 불과한 Kubernetes Operator입니다. 특정 리소스나 애플리케이션의 수명 주기를 관리하면서 리소스가 항상 "원하는 상태(desired state)"에 있도록 보장합니다. 이를 보장하는 로직은 일반적으로 "reconcile" 함수라고 합니다.

Chaos Operator는 널리 사용되는 Operator-SDK 프레임워크를 기반으로 구축되었습니다. 이 프레임워크는 새로운 Operator 프로젝트를 위한 부트스트랩 지원을 제공하여 팀이 비즈니스/운영 로직에 집중할 수 있게 해줍니다.

Litmus Chaos Operator는 특정 stateless/stateful Kubernetes 배포에 대해 개발자/DevOps 엔지니어가 지정한 카오스 의도를 담고 있는 사용자 정의 리소스인 ChaosEngine의 상태를 reconcile하는 데 도움을 줍니다. Operator는 기본 리소스인 ChaosEngine의 CRUD 시 특정 작업을 수행합니다. 또한 Operator는 reconcile 함수를 구현하기 위해 생성 및 관리되는 보조 리소스(엔진 러너 파드, engine runner pod)를 정의합니다.

카오스 엔진이란 무엇인가요?

ChaosEngine은 주어진 애플리케이션에 대한 카오스 워크플로를 정의하는 핵심 스키마입니다. 현재 다음을 정의합니다:

  • 기본(AUT) 및 보조(종속) 애플리케이션의 애플리케이션 정보(네임스페이스, 레이블, kind)
  • 실험 실행에 사용되는 ServiceAccount
  • 애플리케이션에 대한 카오스 어노테이션 검사를 켜거나 끄는 플래그
  • 애플리케이션에서 실행할 카오스 실험
  • 실험 속성(실험 CR에 지정된 기본값 재정의)
  • 실험 실행 후 카오스 리소스를 유지/정리할지 결정하는 플래그

ChaosEngine은 보조(reconcile) 리소스의 소유자로 참조되며, Kubernetes deletePropagation을 통해 ChaosEngine CR이 삭제될 때 이러한 리소스도 함께 제거되도록 보장합니다.

참고용 샘플 ChaosEngineSpec은 다음과 같습니다: https://v1-docs.litmuschaos.io/docs/getstarted/#prepare-chaosengine

Litmus 카오스 차트란 무엇이며 어떻게 사용할 수 있나요?

Litmus Chaos Chart는 "카오스 실험 번들(Chaos Experiment Bundles)"을 설치하는 데 사용되며, 실험의 특성에 따라 분류됩니다(일반 Kubernetes 카오스, OpenEBS와 같은 벤더/공급자별 카오스, NuoDB와 같은 애플리케이션별 카오스). 이 차트는 Operator가 실험을 실행하기 위해 조회하는 저수준 카오스(테스트) 매개변수를 담고 있는 사용자 정의 리소스로 구성됩니다. spec.definition의 fields 와 해당 values 는 카오스 실험을 실행하는 최종 실행 아티팩트(일반적으로 K8s Job 리소스인 litmusbook)를 구성하는 데 사용됩니다. 또한 실험을 실행하는 데 필요한 권한도 정의합니다.

참고용 샘플 ChaosEngineSpec은 다음과 같습니다:

root@kitploit:~
apiVersion: litmuschaos.io/v1alpha1
description:
  message: |
    Deletes a pod belonging to a deployment/statefulset/daemonset
kind: ChaosExperiment
metadata:
  name: pod-delete
  labels:
    name: pod-delete
    app.kubernetes.io/part-of: litmus
    app.kubernetes.io/component: chaosexperiment
    app.kubernetes.io/version: latest
spec:
  definition:
    scope: Namespaced
    permissions:
      - apiGroups:
          - ""
          - "apps"
          - "batch"
          - "litmuschaos.io"
        resources:
          - "deployments"
          - "jobs"
          - "pods"
          - "configmaps"
          - "chaosengines"
          - "chaosexperiments"
          - "chaosresults"
        verbs:
          - "create"
          - "list"
          - "get"
          - "patch"
          - "update"
          - "delete"
    image: "litmuschaos/go-runner:latest"
    imagePullPolicy: Always
    args:
    - -c
    - ./experiments -name pod-delete
    command:
    - /bin/bash
    env:

    - name: TOTAL_CHAOS_DURATION
      value: '15'

    # Period to wait before/after injection of chaos in sec
    - name: RAMP_TIME
      value: ''

    - name: FORCE
      value: 'true'

    - name: CHAOS_INTERVAL
      value: '5'

    ## percentage of total pods to target
    - name: PODS_AFFECTED_PERC
      value: ''

    - name: LIB
      value: 'litmus'    

    - name: TARGET_PODS
      value: ''

    ## it defines the sequence of chaos execution for multiple target pods
    ## supported values: serial, parallel
    - name: SEQUENCE
      value: 'parallel'
    labels:
      name: pod-delete
      app.kubernetes.io/part-of: litmus
      app.kubernetes.io/component: experiment-job
      app.kubernetes.io/version: latest

시작하려면 어떻게 해야 하나요?

LitmusChaos 문서 Litmus 문서를 참조하세요

어떻게 기여할 수 있나요?

이슈를 제기하거나, 문서를 개선하거나, 핵심 프레임워크 및 도구에 기여하는 등의 방법으로 기여할 수 있습니다.

기여 가이드를 확인하세요

라이선스

FOSSA Status

도구 다운로드