cicd 9

10. Jenkins와 ArgoCD 연동

이제 CI/CD 마지막 chapter 이다.이번 chapter에서는 Jenkins와 ArgoCD 연동하여 CI/CD를 완성시킬 것이다.앞선 지시대로 이행하며 잘 따라왔다면, 이번 chapter 에서는 특별히 할 게 없다. 각 모듈(Jenkinsfile, GitOps, ArgoCD) 을 잘 연결해서 올바르게 동작하는 지 확인할 것이다.  아래의 CI/CD flow를 참고하면 Jenkinsfile을 이해하는데 도움이 될 것이다.   1. Jenkinsfile에 stage 추가 1) Jenkinsfile 작성import java.text.SimpleDateFormat;import java.util.Date;def microServiceName = "ezapprovalg"def packageName = "ezA..

09. Kubernetes에 ArgoCD 로 App 배포

지난 chapter에서 Kubernetes에 ArgoCD를 설치하였다.이번 chapter에서는 GitOps menifest Repo를 구성하고,  ArgoCD server Web UI 를 통해 Kubernetes cluster에 App을 배포 할 것이다. 바로 본론으로 들어가자.   1. GitOps 구성매니페스트가 있는 Git 리포지토리 구성은 Argo CD와 같은 GitOps 도구에서 매니페스트를 관리하는 표준 방식으로 설정할 수 있다. 일반적인 디렉토리 구조는 아래와 같다.    1) GitOps Repo 생성GIT 저장소에서 'gitops'  Group을 생성하고, gitops 그룹 아래 Project를 생성한다.     2) GitOps Repo 구성위와 같은 구조로 repo를 구성한다.(본인 ..

08. Kubernetes에 ArgoCD 설치

이번 chapter 부터는 CD 에 대해 다룰 것이다. 필자는 Gitops, ArgoCD 를 통한 Kubernetes 배포 자동화를 구축했다. 아래 그림을 보자Jenkins pileline에서 새로운 Docker Image를 buil가 완료하면,  Nexus에 해당 Image를 push한다.새로운 Docekr Image가 생성되었으니, 해당 이미지를 가져와서 쿠버네티스 클러스터에서 새롭게 deploy 해야할 것이다. 이는, deployment.yaml에서 docker image의 Tag를 직접 변경해줘야 함을 의미한다. 만일 Docker Image가 N번 바뀌면, docker Image의 Tag도 N번 바꿔주어야 할 것이다. 이것이 여간 번거로운 작업이 아니다.  때문에 GitOps 패턴과 ArgoCD를..

07. Jenkins와 SonarQube 연동

이전 chapter에서 SonarQube를 설치했다면, 이젠 Jenkins와 연동할 차래다.앞서 언급하였듯, Jenkins pipeline의 build 과정에 SonaQube의 코드품질검사 stage를 추가했다.CI process 에 Security를 첨가한 샘이다. 바로 본론으로 들어가자.   1. SonarQube Token 발급  1) Sonarqube token 생성위 계정 아이콘 클릭 >  MyAccount  클릭   Security 클릭   Name = jenkinsxsonar 입력  (혹은 [token_name])Type = User Token 선택Expires in = 90 days 선택  (필자는 No expiration 선택) 우측 Generate 클릭  Token이 생성되었다.아래 클..

05. Jenkins Pipeline 구축

앞서 Jenkins를 설치했다면, 이번 chapter에서는 Jenkins pipeline에 대해 기술하겠다.다소 복잡하고 어렵게 느껴질 수 있으니, 침착하게 잘 따라오길 바란다. 아래의 CI/CD flow를 참고하면 Jenkinsfile을 이해하는데 도움이 될 것이다.      1. Jenkinsfile 과 Dockerfile 1) gitlab repo 구성Jenkinsfile : script  for Jenkins pipeline Dockerfile : script for Docker build ezApprovalG : App source Code Packagebuild : Docker build에 필요한 lib package   2) Jenkinsfile@Library('jenkins-lib') _i..

04. Kubernetes에 Jenkins 설치

앞서 GITLAB 과 NEXUS를 설치했다면, 이제는 CI의 핵심 Jenkins를 설치/구성할 차래다.CI는 process가 logic이 복잡하고 여러 과정이 얽혀있기 때문에, 아래와 같이 chapter를 여러개로 끊어서 호흡을 짧게 가져가려 한다. [CI CD] 04. Jenkins 설치[CI CD] 05. Jenkins Pipeline 구축[CI CD] 06. Sonarqube 설치[CI CD] 07. Jenkins와 SonarQube 연동[CI CD] 08. ArgoCD 설치 [CI CD] 09. ArgoCD 배포 [CI CD] 10. Jenkins와 ArgoCD 연동   Devsops (Devops + security) 의 과정이 본격 시작되었다.이번 chapter에서는 Jenkins 설치에  대..

03. Kubernetes에 NEXUS 설치

이번 chapter에서는 CI 의 두번째 단계인 NEXUS 설치 및 Repository 구성에 대해 기술하겠다. 아래는 KAONI CLOUD 아키텍쳐 구성도 이다.Namespace CICD 에 NEXUS, JENKINS, ArgoCD를 구성할 것이다.type이 cicd, cicd2인 WORKER NODE가 2개가 보일 것이다. 각각의 NODE를 NODE cicd  01, NODE cicd  02라 부르겠다.CI 에 관련된 Pod (NEXUS, JENKINS)는 NODE cicd 02번에,CD에 관련된 Pod (ArgoCD)는 NODE cicd 01번에 올라가도록 지정할 것이다.   1. NEXUS 설치  1) write menifestapiVersion: v1kind: PersistentVolumemet..

02. Ubuntu에 GITLAB 설치

이번 chapter에서는 CI 의 첫 단계인 GIT 설치에 대해 기술하겠다. 필자의 OS spec은 아래와 같다.ubuntu  22.04.4 LTS 여기에 docker container를 올리는 형태로 GITLAB을 설치할 것이다.또한 nginx를 설치하여 reverse poryx를 진행할 것이다.   1. Docker 설치  1) update ubuntu system package sudo apt-get update   2) install package necessary sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common   3) add Docker GPG key curl -..

01. 개요

이번 chapter에서는 KAONI CLOUD에 구축한 CICD에 대해 기술하고자 한다.모든 개발을 완료 후 회고하며 작성하기에, 디테일에 미흡할 수 있는 점 양해 부탁한다. 아래는  KAONI CLOUD의 아키텍쳐 구성도 이다. 2개의 Cluster(Kaoni Cloud 01, Kaoni Cloud 02)를 구축한 이유에 대해선, 앞서 언급하였지만 간단히 설명하고 넘어가겠다. 기존의 Monolithic APP을 MSA로 전환하는 과정에서 2가지 버전이 개발되었다.초기 버전인 MSA1.0과  내가 개발한 MSA2.0.  2가지 버전의 MicroService app을 개발/운영하기 위해 2개의 Cluster 를 설계하게 되었고MSA1.0의 app은 KAONI CLOUD 01 에,  MSA2.0의 app은 ..