Kubernetes 이야기

Chaos Mesh 에서 Physical Machines 카오스 엔지니어링 본문

Kubernetes/일반

Chaos Mesh 에서 Physical Machines 카오스 엔지니어링

kmaster 2023. 2. 8. 20:14
반응형

Chaos Mesh 에서 물리서버에 결함을 주입하고 결함 복구 기능을 제공하기 위해서는 별도의 배포 (Chaosd)가 필요하다.

 

Chaosd는 다음과 같은 핵심 이점을 제공한다.

  • 사용 편의성: 간단한 Chaosd 명령을 입력하여 혼란스러운 실험을 만들고 관리할 수 있다.
  • 풍부한 결함 유형: 결함 주입은 프로세스, 네트워크, 압력, 디스크, 호스트 등 물리적 기계의 다양한 수준과 유형에서 제공되며 더 많은 기능이 확장되고 있다.
  • 다중 모드 지원: Chaosd는 다양한 시나리오의 사용 요구 사항을 충족하는 명령줄 도구 및 서비스로 모두 사용할 수 있다.

 

Chaosd를 사용하여 다음 유형의 실패를 시뮬레이션할 수 있다.

  • 프로세스: 프로세스에 오류 주입.  Systemd를 사용하여 프로세스를 관리할 때 Systemd는 프로세스가 종료된 후 자동으로 서비스를 재개할 수 있다.
    • kill: 지정된 프로세스에 SIGKILL, SIGTERM, SIGSTOP 신호를 보낸다.
    • stop: SIGSTOP지정된 프로세스에 신호를 보낸다.
  • 네트워크: 네트워크 대기 시간 증가, 패킷 손실 및 손상된 패킷과 같은 작업을 지원하는 물리적 시스템의 네트워크에 결함 주입. 오류 주입 시나리오는 컨테이너와 유사하지만 장치 지정과 같은 보다 풍부한 사용자 지정을 지원
  • 부하: 물리적 시스템의 CPU 또는 Memory에 부하를 가한다.
    • CPU
    • Memory
  • 디스크: 읽기/쓰기 디스크 로드 증가 및 디스크 채우기와 같은 작업을 지원하는 물리적 시스템의 디스크에 오류 주입
  • 호스트: 물리적 시스템 자체에 결함 주입, 종료 및 기타 작업을 지원
    • shutdown: 호스트 종료 종료 프로세스를 시뮬레이션
  • JVM: Byteman 을 통해 JVM 애플리케이션 실패를 시뮬레이션
  • 시간: 시간 이동 시나리오를 시뮬레이션
  • 파일:  Chaosd는 파일 추가, 파일 쓰기, 파일 삭제, 파일 권한 수정, 파일 이름 바꾸기, 파일 데이터 바꾸기 등을 포함한 파일 오류 시나리오를 시뮬레이션

 

Chaosd 설치

 

공식적으로 Chaos Mesh와 Chaosd Server는 HTTPS를 기반으로 서로 통신하도록 권장되며 사용자는 chaosctl을 사용하여 Chaosd 인증서를 생성할 수 있다.

 

Chaosd 설치

curl -fsSL -o chaosd-latest-linux-amd64.tar.gz https://mirrors.chaos-mesh.org/chaosd-latest-linux-amd64.tar.gz
tar zxvf chaosd-latest-linux-amd64.tar.gz
mv ./chaosd-latest-linux-amd64 /usr/local/chaosd
export PATH=$PATH:/usr/local/chaosd

설정

mkdir -p /etc/chaosd/pki
kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-testing -o "jsonpath={.data['ca\.crt']}" | base64 -d > /etc/chaosd/pki/ca.crt
kubectl get secret chaos-mesh-chaosd-client-certs -n chaos-testing -o "jsonpath={.data['ca\.key']}" | base64 -d>  /etc/chaosd/pki/ca.key
chaosctl pm generate --cacert=/etc/chaosd/pki/ca.crt --cakey=/etc/chaosd/pki/ca.key
chaosctl 은 curl -sSL https://mirrors.chaos-mesh.org/latest/chaosctl -O 로 설치한다.

 

Chaosd Server 서비스 시작

chaosd server --https-port 31768 --CA=/etc/chaosd/pki/ca.crt --cert=/etc/chaosd/pki/chaosd.crt --key=/etc/chaosd/pki/chaosd.key

 

샘플

 

CPU 부하를 50% 로 설정한다.

Address 에 Chaosd 서버를 실행한 IP와 포트를 입력한다.

 

[결과]

반응형

'Kubernetes > 일반' 카테고리의 다른 글

Dex와 OIDC 인증  (0) 2023.02.13
OAuth2 Proxy와 Keycloak 연동  (0) 2023.02.11
KubeVela  (0) 2023.01.26
Impersonation (Kubernetes Authentication)  (0) 2023.01.26
GitOps의 장단점  (0) 2023.01.10
Comments