
[kubernetes] Storageclass Longhorn vs Kadalu
2024. 10. 12. 21:04
엔지니어링/Kubernetes
올해 1년간 on-prem 쿠버네티스를 운영 프로젝트를 진행하고 있다. 특별히 RKE(Rancher Kubernetes Engine)에서는 Longhorn 이라는 스토리지클래스를 사용하도록 가이드 하고 있어 Rancher Cluster 들은 모두 Longhorn을 사용하고 있다. 그리고 kubespray로 구축된 클러스터는 Kadalu 라는 스토리지클래스를 사용하고 있는데 두 스토리지클래스의 사용 후기를 짧게 나마 적어놓으려 한다.LonghornKadalu분산 블록 스토리지분산 파일 스토리지Longhorn롱혼은 분산 블록 스토리지 솔루션으로, Blob Storage를 제공한다.이로 인해 볼륨 기반의 고가용성과 복제 기능에 중점을 둘 수 있다.주요기능볼륨 복제 : 데이터를 여러 노드에 복제하여, 하나의 노..

Elastic APM으로 VUE Application 모니터링
2024. 10. 9. 00:12
엔지니어링/Kubernetes
지난번 Go Application 모니터링을 Elastic APM으로 적용하였고, 그 애플리케이션과 연결된 VUE(frontend) 프로젝트도 간단히 개발해놨었다. 그래서 이번엔 VUE에 RUM Agent를 적용해보려한다. 먼저 적용된 화면이다. 리소스 다운로드 시간에 대한 것들이 벌써부터 내 눈을 즐겁게 해준다.ㅋㅋ작업 순서npm installrum agent js 파일을 다운 받아 public/js/ 안에 복사.환경변수 설정.main.js 에 javascript load 및 init 설정 NPM installnpm install @elastic/apm-rum --saveRum Agent JS 파일 다운아래 공식 github 에 들어가 Release 버전 확인 후 다운로드하자. GitHub - elas..

Elastic APM으로 Go Application 모니터링
2024. 10. 9. 00:00
엔지니어링/Kubernetes
진행하고 있는 프로젝트의 개발팀에서 Golang 기반 Backend API를 개발하는게 있어서 연초에 VUE, GO Application 샘플을 개발해놓았다. (매우 간단하게...) 이후 Application Performance Monitoring을 어떻게 할 것인가?에 대한 질문들로 Elastic APM을 사용해보기로 했다. 지금까지 java APM만을 셋업했었는데 golang은 어떻게 다른지 파악해보자.Java와의 차이java application은 javaagent 로 올리면 바이트코드를 읽어 자동으로 수집하지만 go application은 아니다. 그래도 http route, gorm 을 통해 어느정도 요청에 대한 그래프를 볼 수 있다.필자는 라우터 라이브러리로 고릴라, 데이터베이스는 gorm으..

Kubernetes Korea Community Day 2024 후기
2024. 9. 24. 23:31
엔지니어링/Kubernetes
24년 9월 24일 서울 백범김구기념관에서 Kubernetes Korea Community Day 2024를 개최하여 다녀왔다.각 세션 제목을 보고 너무 듣고 싶어서 기대가 많았고, 도전의 깊이를 넓혀 온 후기를 써본다.어떻게 알게되었나?직장동료가 페이스북 kubernetes korea group 에 수시로 들어가며 확인하던 중 발견하여 Join.참가방법?9월6일에 입장료 80,000원을 결제했고, 9월23일(행사 1일전) QR 코드가 문자로 날아왔다.오전 세션행사는 09시20분부터 QR을 찍어 네임카드를 발급받고, 10시부터 시작되었다.약 800명 정도가 참여하였고, 오전은 전체가 한 자리에서 Akamai, F5, CNAI 세션을 들었다. Kubernetes 10년, 그 너머의 항해: 살아남은 자의 인..

[CKA] Certified Kubernetes Administrator 자격 취득 후기
2023. 7. 8. 15:16
엔지니어링/Kubernetes
서론 쿠버네티스를 처음 접했던 것은 대학교 3학년(2019) 졸업작품 때이다. 당시에는 app, db, svc, ing 서비스를 올리고 프로메테우스/그라파나를 통해 클라우드 모니터링부분을 다뤘었다. 이 후 취업을 하고 본격적으로 쿠버네티스 프로젝트를 진행하게 된건 2021년3월부터인데 벌써 2년4개월의 시간이 흘렀고 CKA 자격증이라는 것을 알게 되었다.(회사에서도 클라우드 사업을 위해 어느정도 CKA자격을 가진 인력이 필요로 했음) 무튼, 시험을 본 자로써 어디에 초점을 두고 공부해야하는지 글을 남기려한다. 준비기간 실제 자격증 준비 시간은 약 2.5일 필자는 그동안 프로젝트에서 쿠버네티스를 경험해왔기에 짧은 시간 준비를 하고 시험을 쳤다. (실제 시험 수준은 너무 쉬웠다는거...+영어질문 해석에 오류..

[AzureDevops] Repos / Pipeline 구축기
2023. 1. 5. 11:09
엔지니어링/CI-CD
AzureDevops Pipeline 관련 포스팅을 이전에 했었는데, 당시엔 파이프라인 스크립트 라이브러리 사용에 익숙치 않았기 때문에 파이프라인 작성과 실행을 중심으로 작성하였다면, 오늘은 azure Pipeline 구축 및 사용에 대해 더 초점을 맞춰 글을 쓰려한다. [AzureDevops] CI-CD Pipeline 구축 테스트 11월 3주간 Github Actions 과 AzureDevops 두 개의 CI-CD Pipeline 구축테스트를 진행하였고 Rest API 호출 방법까지 케이스를 정리해보았다. AzureDevops 도 GHES와 같이 Private 용도의 Server를 제공하며, 별도의 Self- flowlog.tistory.com Pipelines Azure Devops 에 접속하여 P..

[TmaxSoft] Jeus Webtob 도커 이미지 보안 개선
2023. 1. 5. 10:42
엔지니어링/CI-CD
이전에 포스팅한 글은 솔루션의 기본 세팅에서 내가 바로 적용할 수 있는 부분까지 확인해보았다. [TmaxSoft] Jeus Webtob 도커 이미지 연동하기 이번에 on-prem을 MSA 클라우드 전환 프로젝트 PoC를 준비하며 Tmaxsoft 사의 Jeus, Webtob를 컨테이너로 옮기는 작업이 필요했다. 필자는 다른 프로젝트를 진행해오면서 React, Vue, Angluer 등의 스크립트언 flowlog.tistory.com 더 나아가서 프로세스 실행 유저와 프로세스 기동 위치 등을 수정하려 Dockerfile을 손보았다. 그럼 함께 확인해보자. Webtob Dockerfile FROM tmaxsoftofficial/webtob:5.0.0.2.217.41.3.2 ####################..

[TmaxSoft] Jeus Webtob 도커 이미지 연동하기
2022. 12. 30. 12:24
엔지니어링/CI-CD
이번에 on-prem을 MSA 클라우드 전환 프로젝트 PoC를 준비하며 Tmaxsoft 사의 Jeus, Webtob를 컨테이너로 옮기는 작업이 필요했다. 필자는 다른 프로젝트를 진행해오면서 React, Vue, Angluer 등의 스크립트언어를 통해 front-end 와 back-end가 명확히 분리된 환경으로 컨테이너를 구성해 왔다. 기존의 Web->WAS 구조는 대학생 때 apache mod_jk를 통한 tomcat 연동을 해보았고, 이번기회에 Webtob와 Jeus 연동테스트를 진행하려한다. Base Image 먼저 Tmax에서 제공하는 이미지를 확인해보니 두 이미지 모두 tmaxsoftofficial 유저에 의해 2년전에 배포가 되어있었다. 2022.12.30 기준으로 가장 마지막 태그 정보는 아..

[Trouble Shooting] Spring HeapDump 설정 및 분석
2022. 12. 12. 21:39
엔지니어링/기타
신규 구축 프로젝트 중 erp application 서비스가 자꾸 죽는다고, .. 환경은 쿠버네티스 기반인데 OOM 떨어지게 개발해놓고 '나'한테 전화가 쏟아진다. 인프라 명목을 단정짓기위해 분석을 시작하고 팩트로 조져보자! dump 경로 및 gc로그 설정 먼저 heapdump 옵션과 gc log 설정을 하여 모니터링 하기 위해 deployment yaml 에 설정을 추가해주었다. spec: template: containers: - args: - -XX:+HeapDumpOnOutOfMemoryError - -XX:HeapDumpPath=/덤프파일경로/ - -XX:+PrintGCDetails - -verbose:gc - -Xloggc:/가비지컬렉터로그경로/gc.log:time,level,tags - -j..

[Gradle] build Error - validity check failed
2022. 12. 10. 23:08
엔지니어링/기타
얼마전에 NCP(Naver Cloud Platform) 프로젝트 중 개발사에서 Gradle 기반의 springMVC 이미지를 빌드 에러가 난다고 연락이 왔다. PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed 개발사 말로는 local 환경에서는 정상적으로 라이브러리를 가져올 수 있으나, Naver 빌드시 보안상 오류가 아니냐고 해서 확인 요청이 온 것이다. 결과적으로는 라이브러리 사이트에서 tls 인증서가 만료가 된 상황이였다. 오픈이 1주일도 안남은 상태에서 정신없다보니 그런거라 생각하며.. 필자도 1시간동안 찾아 해멘 끝에 이 것을 찾을 수 있었다. 보통 개발자들이 로컬환경에서..

[AzureDevops] CI-CD Pipeline 구축 테스트
2022. 12. 6. 21:08
엔지니어링/CI-CD
11월 3주간 Github Actions 과 AzureDevops 두 개의 CI-CD Pipeline 구축테스트를 진행하였고 Rest API 호출 방법까지 케이스를 정리해보았다. AzureDevops 도 GHES와 같이 Private 용도의 Server를 제공하며, 별도의 Self-Hosted Runner를 이용할 수있다. AzureDevops URL은 dev.azure.com/{Organization}/{Project} 로 들어갈 수 있다. 기초적인 파이프라인 생성방법 Pipelines 메뉴에 들어가 repository, 배포위치 등을 손쉽게 선택하여 파이프라인의 뼈대를 쉽게 생성할 수 있다. 사용자의 구독에 운영중인 자원들을 손쉽게 선택할 수 있다. 필자는 AKS 에 배포할 것으로 Deploy to ..

[AzureDevops] Image Tag Not working to Pipeline Create
2022. 12. 5. 14:06
엔지니어링/CI-CD
휴... azureDevops Pipeline 사용 중 이미지버전(Tag)를 변수로 받아와서 배포하는 시나리오에서 자꾸 태그를 가져오지 못하는 현상이 생겼다... 대체 왜이럴까!!!!!!!!!! 계속 찾던 와중에... 발견해버렸따.... azure Devops 에서 pipeline을 생성할 때 데이터를 구독에서 연결되어 있는 자원을 선택할 수 있는데 Image Name 부분에 '-' 가 들어간 경우 실제 pipeline.yml 에서 '-'가 삭제되는 현상.... 이렇게 spring-app 이미지이름을 지정했는데 실제 pipeline.yml 에 선언된 변수는 - 가 자동으로 제거됨;;;

[Github Actions] CI-CD Pipeline 구축 테스트
2022. 12. 3. 23:29
엔지니어링/CI-CD
11월 3주간 Github Actions과 AzureDevop Pipeline 을 테스트 해보았고 Rest API 호출 테스트까지 케이스를 정리해보려 한다. 추가로 Github Enterprise (일명 GHES) 도 구축하여 이것저것 사용해 보았는데 Actions 사용을 위해 별도의 Runner를 기동하는 Host가 필요했고, 기존 Github Marketplace 에서 사용하던 라이브러리를 못 쓰게되어 모든 것을 shell script 로 작성해야했다. (GHES는 폐쇄망 기준으로 만들어져 깃헙 마켓플레이스를 사용하려면 GHES서버, 러너서버 모두 아웃바운드 트래픽을 열어주어야 한다고함) 자 그럼 그동안 했던 내용을 정리해보자. 파일 위치 기본적으로 레파지토리 최상위 경로기준 /.github/work..

[NKS] velero 백업 및 복원하기
2022. 11. 7. 16:03
엔지니어링/NCP
네이버 쿠버네티스 서비스에서 velero를 통한 클러스터 백업&복원을 가이드하고 있다. velero 는 vmware-tanzu에서 업데이트하고 있는 github 링크를 통해 사용하면 된다. 1. VELERO 셋업 1-1. velero 다운로드 22년 11월 7일 기준으로 현재 1.8.1 버전이 최신이다. github 에서 다운로드 받고 압축을 푼뒤 실행할 수 있는 폴더로 이동시켜주자. $ wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz $ tar -xvzf velero-v1.8.1-linux-amd64.tar.gz $ sudo mv velero-v1.8.1-linux-am..

[Kubernetes] docker Desktop Kubernetes PV 붙이기
2022. 10. 26. 16:04
엔지니어링/Kubernetes
도커데스크톱으로 쿠버네티스를 올리고 pv를 붙이려면 hostpath로 하면 된다. 참고로 hostpath는 node의 storeage를 사용하는 것으로, 도커데스크톱은 pc 위에 1개의 노드풀로 올라가 있기 때문에 사용할 수 있다. 필자는 C:/kubernetes/storage/ 경로를 스토리지로 사용하고 샘플 pod에 toolbox 폴더라는 pv를 붙였다. 먼저 deployment.yaml 에 volume을 작성하자. 경로는 /run/desktop/mnt/host/c/ 뒤에 작성하면 된다. apiVersion: apps/v1 kind: Deployment metadata: name: toolbox-deployment spec: selector: matchLabels: app: toolbox replic..