gitlab 4

EKS에 EFS Mount하기

0. 개요 Amazon Elastic File System(Amazon EFS)은 AWS 클라우드 서비스와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장 가능하며 탄력적인 완전 관리형 탄력적 NFS 파일 시스템을 제공한다. 아래의 내용에서는 helm을 이용하여 생성한 EFS 볼륨을 pod에 붙여 Gitlab Runner를 통해 자동 배포하는 과정을 기술한다. 1. EFS 생성하기 1.1 보안 그룹 생성 EFS에 적용할 보안 그룹을 생성한다. EC2 - Security Group - 'Create security group'을 클릭한다. 보안 그룹의 이름과 Description을 기입하고, VPC를 선택한 후, Inbound rule을 추가한다. Inbound는 EKS의 Worker Node 보안 그..

Kubernetes 2021.08.31

두개의 Git Repository를 하나의 CI/CD Pipeline으로 관리하기

특징 1. 개발과 운영의 project가 분리된 환경 2. feature branch의 생성은 master branch에서 checkout 받아서 생성 3. DEV 환경에서 PROD 환경으로 Push하는 branch가 추가됨 1. CI/CD 파이프라인 구성 1.1 Gitlab User 생성 시작 전 Gitlab CI에 Gitlab Runner가 최소 하나는 등록이 된, CI/CD가 실행 가능한 환경이라고 가정하고 설명한다. Prod와 Dev Gitlab 모두에 새로운 User를 생성한다. 이 User는 git clone이나 push시 해당 git project에 인증하는 용도로 사용하는 계정이다. Admin Area에서 'New User'버튼을 통해 git 인증용 user를 생성한다. sample use..

CICD 2021.08.31

Gitlab Runner 컨테이너 이미지를 AWS ECR에서 가져오기

0. 개요 Gitlab Runner는 Job을 수행 시 Docker Conatiner를 띄워서 작업한다. 러너의 Job 실행 소스는 .gitlab-ci.yml에 정의가 되는데, 이 파일에 image를 설정한다. Job을 실행할 때 미리 설치해야 하는 패키지들을 before-script 부분에서 정의하지만, 매번 Job을 수행할 때마다 설치하는 것은 효율적이지 않다. 그래서 미리 패키지들을 설치한 이미지를 ECR에 올린 후 사용하면 보다 효율적인 Pipeline을 구축할 수 있다. 1. Gitlab 설정 방법 1.1 작업 환경 현재 프로젝트에서는 CI 서버인 EC2 인스턴스에 OS는 Ubuntu 18.04 버전이 설치되어 있는 환경이다. 1.2 Docker ECR Credential Helper 설치 우선..

CICD 2021.08.31

Blue/Green Deployment with Istio

1. 목적 이 글은 Kubernetes 기반 시스템에서 Istio를 이용하여 Blue/Green 배포를 구성하는 방법을 설명하고 있다. 구성 환경은 GCP GKE 1.18.20-gke.501 버전과 Istio 1.10.0 버전으로 Kubernetes Service mesh 환경을 구현하였다. CI/CD 툴은 Gitlab, Gitlab runner를 사용한다. 2. Blue/Green Deployment Blue/Green Deployment는 현재 운영중인 버전(Blue)과 새로운 버전(Green)의 서버들을 동시에 나란히 구성하고 배포 시점이 되면 트래픽을 일제히 전환시키는 배포 방식이다. 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능하고, 빠른 롤백이 가능하다는 것이 장점..

Kubernetes 2021.08.31