[Kubernetes] 손쉽게 CI/CD 환경을 구축하는 방법

2025. 6. 8. 23:21·Kubernetes
목차
  1. 개요
  2. Vagrant 설치 스크립트
  3. CI/CD 환경 구축 전 사전 준비
  4. Jenkins Item 구성
  5. 출처
반응형

개요

쿠버네티스를 통한 DevOps 인프라 환경을 구축할 때,

Application 빌드와 배포 자동화를 위해 CI/CD 환경은 필수로 갖춰져야 한다.

 

이를 위한 대표적인 기술인 Jenkins를 VM에 설치하고, 이를 이용하여 CI/CD 환경을 구축해 보자.

 

참고로 본 글은 Virtualbox, Vagrant를 이용하여 만들어진 아래 스크립트를 기준으로 세부 내용을 설명한다.
해당 스크립트는 크게 VirtualBox로 OS를 생성하는 파트와 CI/CD를 위한 프로그램들을 설치하는 파트로 구분된다.
https://raw.githubusercontent.com/k8s-1pro/install/main/ground/cicd-server/vagrant-2.4.3/Vagrantfile

 

Vagrant 설치 스크립트

참고로 VM 접속을 위한 Host-Only Network는 필수로 인프라 환경의 VM과 다른 IP를 구성해야 한다.

또한 해당 VM이 외부 인터넷에 접속하기 위한 NAT는 IP가 자동으로 할당되는데,

인터넷만 사용하기 위한 용도여서 인프라 환경의 NAT와 IP가 같아도 문제는 없다.

 

스크립트의 기본 구성과 절차는 아래와 같다.

  1. Linux 기본 설정
  2. Jenkins에서 배포할 때 사용할 kubectl 설치
  3. Jenkins에서 컨테이너 빌드 및 Docker Hub로 이미지를 업로드할 Docker 설치
  4. 소스 빌드를 위한 OpenJDK 설치
  5. 소스 빌드를 위한 Gradle 설치
  6. 빌드에 사용할 소스 코드 및 릴리즈 파일을 가져오기 위한 Git 설치
  7. CI/CD에 사용할 Jenkins 설치

 

CI/CD 환경 구축 전 사전 준비

CI/CD 환경 구축을 위해서는 아래와 같은 사전 준비가 필요하다.

  1. CI/CD 서버 설치
  2. 서버 접속
  3. Jenkins 초기 세팅(사용자 생성, 플러그인 설치 등)
  4. Jenkins 전역 설정 (직접 설치한 Gradle 및 JDK 등을 Jenkins에서 사용할 수 있도록 설정)
  5. 빌드된 컨테이너 이미지 저장을 위한 Docker Hub 가입
  6. Docker Hub 사용 설정
    1. Docker Hub로 이미지를 업로드할 수 있도록 CI/CD 서버에서 Docker Login
    2. Jenkins에서 Docker를 사용할 수 있도록 권한 부여
  7. 인프라 서버에 존재하는 인증서를 CI/CD 서버에 복사
  8. GitHub 가입 및 설정
    1. 빌드할 Application의 소스 코드가 있는 GitHub Repository 구성
    2. 컨테이너 빌드를 위한 Dockerfile, 쿠버네티스 배포에 필요한 yaml 파일을 저장할 GitHub Repository 구성
  9. 빌드/배포 설정 및 실행

 

Jenkins Item 구성

준비가 되었으면 아래 절차가 되도록 Jenkins로 CI/CD 환경을 구축해 보자.

각 절차 당 하나의 Jenkins Item으로 구성할 수 있다.

  1. 브라우저에서 Jenkins 대시보드에 접속하여 소스 빌드 실행
    • 빌드할 Application의 소스 코드가 있는 GitHub Repository와 연동하여 소스 다운로드
  2. Jenkins에서 컨테이너 빌드를 통해 위에서 만들어진 jar 파일을 포함한 이미지 빌드 및 Docker Hub에 업로드
    • 컨테이너 빌드를 위한 Dockerfile이 존재하는 GitHub Repository와 연동하여 이미지 빌드
  3. Jenkins에서 배포 명령 실행하여 해당 이미지를 기반으로 쿠버네티스 배포
    • 쿠버네티스 배포에 필요한 yaml 파일이 존재하는 GitHub Repository와 연동하여 배포

출처

https://inf.run/Ncohz
 

쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2 강의 | 일프로 - 인프런

일프로 | ⚓쿠버네티스(Kuberentes, Containerd, Docker Hub, Helm, Jenkins, Kustomize, ArgoCD) 🙇‍♀️아직 망설이시나요? 🙋‍♂️저만 믿고 따라오세요! 이론과 실습으로 당신의 실력을 ⭐어나더 레벨로 만

www.inflearn.com

반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Jenkins를 활용한 Blue/Green 배포  (0) 2025.06.14
[Kubernetes] 배포를 시작하기 전에 반드시 알아야 할 것들  (0) 2025.06.12
[Kubernetes] DevOps 한 방 정리  (4) 2025.06.08
[Kubernetes] Component 동작으로 이해하기  (1) 2025.06.06
[Kubernetes] Application 기능으로 이해하는 PV/PVC, Deployment, Service, HPA  (1) 2025.06.05
  1. 개요
  2. Vagrant 설치 스크립트
  3. CI/CD 환경 구축 전 사전 준비
  4. Jenkins Item 구성
  5. 출처
'Kubernetes' 카테고리의 다른 글
  • [Kubernetes] Jenkins를 활용한 Blue/Green 배포
  • [Kubernetes] 배포를 시작하기 전에 반드시 알아야 할 것들
  • [Kubernetes] DevOps 한 방 정리
  • [Kubernetes] Component 동작으로 이해하기
hojun-dev
hojun-dev
개발과 함께하는 일상을 그리는 블로그입니다.
개발 일상개발과 함께하는 일상을 그리는 블로그입니다.
  • hojun-dev
    개발 일상
    hojun-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • Java & Spring (15)
      • Kubernetes (17)
      • Javascript (2)
      • Linux (2)
      • Setting (16)
      • Work (4)
      • 일상 (10)
      • 항해플러스 (3)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
hojun-dev
[Kubernetes] 손쉽게 CI/CD 환경을 구축하는 방법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.