주제 : 카오스 엔지니어링

 

해당 온라인 밋업을 듣고 나서 카오스 엔지니어링이 필요한 이유 및 다양한 툴이 있는 사실에 알게 되었습니다. 

 

카오스 엔지니어링을 하려면 모니터링 설정에서 다양한 정보를 수집하고 분석하는 지식이 필요할 것 같습니다.

 

현재는 공부하기 힘들지만 추후 테스트 해보려고 합니다!

 

이해되는 내용을 정리하자면 

 

카오스 엔지니어링의 구현 :

 

 - 가설 수립 -> 결함 주입 -> 관찰 -> 개선

 - 정상 상태와 비정상 상태를 명확하게 구분을 지어야 한다.

 - 장애가 발생하면 대조군과  실험군의 데이터로 정상 상태 차이를 찾아서 가설을 반증 한다.

 - 필요한것 IaC <-> CI/CD <-> 테스트 자동화 <-> 마이크로 서비스<-> 클라우드 네이티브 <-> ㅜNoSql (Nosql의 필요성은 아직 잘 이해하지 못했습니다.)

 - 작은 단위 부터 테스트 : 인스턴스 -> 클러스터 그룹 -> 가용영역 ->  리전 ->  클라우드 서비스

 

 

사용되는 서비스 or tool

 AWS : Cloudwatch , Fault Injection Simulator 
 오픈 소스 : Chaos Mesh, Litmus Chaos 등등

 

k8s 를 공부하면서 배포가 실패해서 내용을 찾아보니 오브젝트 리소스 이름 유형 틀려서 발생한 문제 였습니다. 

CI / CD 를 구축하면 자동으로 검사 및 알람 설정이 필요한 것 같습니다. (github actions에서 구현?)

 

참고 : https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/names/

 

오브젝트 이름과 ID

클러스터의 각 오브젝트는 해당 유형의 리소스에 대하여 고유한 이름 을 가지고 있다. 또한, 모든 쿠버네티스 오브젝트는 전체 클러스터에 걸쳐 고유한 UID 를 가지고 있다. 예를 들어, 이름이 mya

kubernetes.io

 

 

docker 강의 수강하면서 gradle 로 빌드 하는 경우 많아졌습니다.

 

전에는 gradle bootBuildImage 진행을 하면 정상 동작했지만 gradlew bootBuildImage 할 경우 Unsupported class file major version 61가 발생 했습니다. 

 

해당이슈를 해결하려고 현재 서버 확인 :  java 버전 (17), gralde 버전(7.5.1)

 

gralde 공식 사이트에 호환성을 확인했습니다. 

https://docs.gradle.org/current/userguide/compatibility.html#header

[해결]

1. build.gradle에서 sourceCompatibility = '17' 로 수정하고 다시 bootBuildImage 했지만 동일한 에러가 발생했습니다.

2. ./gradle/wrapper/gradle-wrapper.properties 안에서 gralde 버전(7.5.1)으로 변경 후 bootBuildImage 진행 시 정상 동작

 

[이유 추정]

1. 듣는 강의 git을 clone 하면서 ./gradle 가 같이 들어왔고 /gradle/wrapper/gradle-wrapper.properties 파일에 gralde 버전(7.1) 로 기입되어 있었고 $gradle bootBuildImage 로 실행할 경우 7.5.1 버전으로 동작하였고, $./gradlew bootBuildImage으로 실행하면 7.1 버전으로 동작하지 않았을까 생각합니다.

 

java, gradle에 깊은 지식이 없어서 오류는 해결 했지만 정확한 원인 분석은 하지 못했습니다.

 

잘못된 정보가 있으면 댓글 부탁드립니다!!!

 

 

 

 

'troubleshooting' 카테고리의 다른 글

가용영역에서 인스턴스 타입 이슈 -1  (0) 2022.11.28

+ Recent posts