소통하는 개발자 Sean
article thumbnail
CI/CD Pipeline 그리기 by draw.io
DevOps/CI & CD 2024. 3. 12. 17:15

최근 jsvill 프로젝트에는 Kubernetes, Monitoring, Argo CD 시스템이 구축되었습니다. 이로써 기존에 있던 AWS EC2 기반의 CI/CD 파이프라인이 크게 변경되었는데요. 새로 도입한 Kubernetes를 GitHub Actions와 Argo CD를 사용하여 CI/CD Pipeline를 많은 시련?끝에 구축했습니다. 위에 올린 그림처럼 어떤 시퀀스로 동작하는지 설명해줄 수 있는 그림이 필요했습니다. 여태까지는 다른 개발자분들이 만들어 두신 그림으로도 충분히 설명이 가능했는데, 요번에 구축한 Pipeline에 맞는 그림이 없어서 제가 만들기로 했습니다. 예~전에 DB 처음 배울 때 정규화를 이해하려고 써봤던 draw.io를, Pipeline 만들 때도 많이 사용한다고 해서 오래만..

article thumbnail
GKE-Argo CD failed to provision volume, QUOTA_EXCEEDED 오류
DevOps/CI & CD 2024. 2. 25. 03:16

argo CD사용해서 배포를 하던중에 계속해서 Degraded 상태였던 문제가 있었습니다. 이벤트를 확인해보면 대부분 pv의 용량이 초과해서 나는 오류였는데요 argo CD의 작업하고 있는 어플리케이션을 삭제해버려 스크린샷은 못찍었지만 chat gpt한테 질문한 로그를 확인해보면 아래와 같습니다. (combined from similar events): failed to provision volume with StorageClass "standard-rwo": rpc error: code = ResourceExhausted desc = CreateVolume failed to create single zonal disk pvc-3baed11b-3372-4580-a77b-282d66bb8f3f: faile..

article thumbnail
Docker Compose 실습 (일단 해보면서 감 잡아보기) + 이론

👻 Docker Compose 실습 (일단 해보면서 감 잡아보기) 이론은 밑에 적어두었습니다. 실습 먼저! 도커 컨테이너 여러개 관리하기 👉 도커 네트워크 리스트 조회 docker network ls bridge : 도커 엔진에 의해 자동으로 생성된 가상 네트워크, 컨테이너끼리 연결되는 기본 host : 호스트 컴퓨터의 네트워크 인터페이스를 그대로 사용하는 네트워크 none : 네트워크를 사용하지 않는 컨테이너 👉 도커 네트워크 생성 docker network create [이름] 🧭 Docker Compose를 사용하지 않고 CLI로 관리한다면? 👉 mysql db container 생성 docker run \\ -d --name "db" \\ -v "$(pwd)/db_data:/var/lib/mysq..

article thumbnail
Docker CLI 명령어 실습 (한번씩 따라해보세요)

🧭 Dockerfile 간단한 실습 👉 1. 레지스트리에서 이미지 다운로드 사용법/예제 docker pull [OPTIONS] NAME[:TAG|@DIGEST] docker pull httpd 👉 2. 이미지 리스트 확인 사용법/예제 docker images [OPTIONS] [REPOSITORY[:TAG]] docker images 👉 3. 이미지 실행 (새로운 컨테이너 생성) 사용법/예제 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] docker run httpd 이미지 백그라운드 실행은 docker run -d httpd 👉 4. 현재 실행중인 컨테이너 출력 사용법/예제 docker ps 👉 4-1. 멈춘 컨테이너까지 모두 출력 사용법/예제 docker ps -a..

article thumbnail
우당탕탕 무중단 배포 도전! (boot+Github actions+Code deploy)
DevOps/CI & CD 2023. 11. 17. 16:22

2023.11.17 - [프로젝트 일지] - Spring boot + Github actions + AWS Code deploy 자동화배포 도전! Spring boot + Github actions + AWS Code deploy 자동화배포 도전! 자동화 배포와 무중단배포를 구현하려고 하는 이유 제가 원래 배포하던 방식은 다음과 같았습니다. 인텔리제이에서 jar 파일을 빌드 한 후 FTP인 FileZilla를 사용하여 EC2에 jar 파일을 전송하고 EC2 sean-lets-go.tistory.com 처음 저의 배포방식에 대한 문제점은 다음과 같았습니다. main 브랜치에 푸쉬하고 배포를 하는 시점에 테스트가 진행되지 않는다. 개발자가 수동으로 해줘야 하는 작업들이 많다. (FTP로 jar 전송, EC2..

article thumbnail
스무스한 자동화 배포 도전! (boot+Github actions+Code deploy)
DevOps/CI & CD 2023. 11. 17. 01:13

자동화 배포와 무중단배포를 구현하려고 하는 이유 제가 원래 배포하던 방식은 다음과 같았습니다. 인텔리제이에서 jar 파일을 빌드 한 후 FTP인 FileZilla를 사용하여 EC2에 jar 파일을 전송하고 EC2에서 여러 명령어를 통해 서버를 멈췄다가, 재배포 하는 방식을 사용했었습니다. 위와 같은 방식을 처음 사용했을 때는 문제점을 많이 느끼지 못했습니다. 직관적인 방법이긴 하지만, CI/CD에 대해 공부하다보니 새로운 관점을 가지게 되었고 다시 바라본 저의 배포방식에 여러 문제점이 있다는것을 느꼈습니다. 제가 생각한 문제점은 다음과 같습니다. main 브랜치에 푸쉬하고 배포를 하는 시점에 테스트가 진행되지 않는다. 개발자가 수동으로 해줘야 하는 작업들이 많다. (FTP로 jar 전송, EC2에서의 각..