1. 개요최근 Github Action 포스팅 이후, 이번에는 GitLab CI/CD를 간단하게나마 사용해볼 기회가 생겨 정리글을 남기게 되었다. 이번 포스팅에서는 GitLab CI/CD의 기본적인 사용 방법을 간단히 소개하고, 실습을 통해 CI/CD 워크플로우 파일을 작성하고 실행하는 과정을 다뤄보겠다.2. GitLab CICD 란GitLab CI/CD는 GitLab에서 제공하는 강력한 DevOps 도구로, 프로젝트 내에서 코드 변경 사항을 자동으로 테스트, 빌드, 배포할 수 있도록 지원한다. GitLab CI/CD는 GitLab과 통합되어 동작하기 때문에, GitLab 리포지토리와 직접 연결되어 프로젝트 관리와 배포 프로세스를 단순화한다. 또한 Github Actions와 다르게 파이프라인을 작성하고..
개요ArgoCD는 Kubernetes 리소스를 코드화하여 GitOps 방식으로 관리할 수 있는 도구이다. 그러나 정작 ArgoCD 자체를 프로비저닝 하거나 GitOps 환경을 구성하는 과정은 여전히 수작업이 필요하다. 이러한 불편함을 해소하기 위해 등장한 도구가 바로 ArgoCD Autopilot이다. 이를 통해 ArgoCD를 자동 프로비저닝하고 GitOps 환경까지 표준화된 구조로 구성할 수 있다.이번 포스팅에서는 ArgoCD Autopilot의 주요 기능과 사용법을 알아보자.ArgoCD Autopilot 소개ArgoCD Autopilot은 GitOps 기반 배포 도구인 ArgoCD를 간편하게 설치하고 관리할 수 있도록 설계된 도구로 Argo 프로젝트에 포함되어 있다. 단순히 ArgoCD 설치를 자동화..
1. 개요Jenkins나 Tekton 같은 별도의 CI 도구만 사용해 왔고, Github Actions나 GitLab CI/CD와 같은 레포지토리 기반의 통합 CICD 도구는 존재만 알고 있었다. 이번 스터디를 통해 Github Actions 사용법에 간단히 알아보고, 이를 활용하여 CI/CD 파이프라인을 구성하는 방법을 살펴본다. GitHub Actions는 GitHub 사용자들에게 직관적이고 통합적인 CI/CD 환경을 제공하며, Github 페이지에서 Actions 탭을 통해 제공하기 때문에 GitHub Actions를 사용하면 코드 관리와 자동화를 한 플랫폼에서 수행할 수 있어, 팀 협업과 효율적인 소프트웨어 개발 프로세스를 구현할 수 있다.2. 주요 컴포넌트GitHub Actions는 아래와 ..
jib 소개jib는 Google에서 제공하는 Maven/Gradle 플러그인으로, Dockerfile 없이 Java 애플리케이션을 컨테이너 화할 수 있는 도구이다.Jib(지브)라는 의미에 단어의 의미처럼 돛이 배의 방향을 조정하고 민첩성을 높이듯이, jib 플러그인은 Java 애플리케이션 컨테이너화에서 유연성과 속도를 제공한다는 점에서 이름의 상징성과 기능이 일치한다. 주요 특징은 다음과 같다. • Docker 환경 불필요: Docker 데몬 없이 컨테이너 이미지를 생성하고, 바로 Docker 레지스트리에 푸시할 수 있음• 최적화된 이미지 생성: Java 애플리케이션의 디펜던시, 리소스, 코드를 별도 레이어로 관리해 빌드 효율성 극대화.• 간단한 설정: Maven/Gradle 설정 파일에 몇 줄 추가로 ..
오랜만에 동료가 Docker 빌드를 하다가 에러가 나서 잠깐 봐주게 되었는데, 도커파일에서 실행한 명령어 결과들이 나오지 않았다. ( 순식간에 떴다가 사라졌다..) 분명히 기억하기로는 과거에는 도커파일에서 실행하는 명령어 결과를 통해서 디버깅을 하곤 했었는데 말이다. 최신 버전의 도커 버전으로 업데이트되면서 변경된 건가 해서, 구버전의 도커로 다시 수행해 보니 역시 빌드 명령어 결과가 보였다. ( 한번 수행한 태스크는 cache로 스킵되기 때문에 명령어 결과를 다시 보기 위해 --no-cache 명령어 추가하였다.) 최신버전: 25.0.3, 구버전 : 20.10.3 찾아보니 --progress라는 옵션을 통해 명령어 결과를 전달 하는데 버전이 업데이트 올라가면서 기본 설정에서 옵션으로 변경된 듯 하다. ..
목표 ArgoCD Image Updater를 이용해서 GitOps가 아닌 RegistryOps CD를 구축합니다. Harbor(Private Registry)와 연동하여 Helm Application을 배포 해봅니다. ECR의 경우 포스팅을 잘해주셔서 아래 글을 참고하시면 될 것 같습니다 https://velog.io/@junsugi/Argo-CD-Image-Updater-사용하기-with.-AWS-EKS#결론 설치 argocd image updater를 설치합니다. kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/stable/manifests/install.yaml # 설치 확인 ..
ArgoCD의 클러스터 연결은 아래 2가지 방식을 지원합니다. 1. 명령어(CLI) 2. 시크릿(Declarative) ArgoCD 클러스터에 외부 EKS 클러스터를 연동하여 애플리케이션을 배포해보겠습니다. 실습에 나오는 설정 정보들은 보안을 위해서 임의로 작성하였습니다. 1. 명령어 1.1 AWS 인증 및 EKS 클러스터 추가 ArgoCD가 동작하는 쿠버네티스마스터 노드에 접속합니다 aws 명령어가 없을 시 apt-get install awscli 로 설치합니다. # aws 인증 aws configure # aws_access_key_id: aws_secret_access_key: region: ap-northeast-2 # eks 클러스터 추가 aws eks --region ap-n..
개요 Harbor와 같은 사설 이미지 저장소에 컨테이너 이미지를 푸시하는 방법을 간단하게 소개하겠다. Harbor가 설치되었다는 가정이며, 다른 이미지 저장소를 사용하여도 된다. ( 추 후에 설치방법도 다루겠다. ) 이미지 빌드도구는 가장 많이 사용하는 도커로 예시를 작성할 것이다. 다른 이미지 도구들(containerd,nerdctl, podman 등)도 방법은 비슷하기 하다. 이미지 다운로드 먼저 푸시할 예시 이미지를 도커 허브에서 pull 한다. ( 준비한 이미지를 사용해도 무방하다 ) docker pull ${이미지명} 이미지 확인 dokcer images 이미지명 변경 컨테이너 이미지명을 통해 레지스트리로 푸시되기 때문에 Harbor의 엔드포인트가 추가된 정보로 이미지명을 변경한다. docker..