Container/Devops

※ Argo Rollout 설치는 이전 글 참고 [Devops] Argo Rollouts를 이용한 Blue/Green 배포 1. Argo Rollouts 소개 1) Argo Rollouts 이란? Argo rollouts은 Progressive Delivery를 지원하는 툴이다. 쿠버네티스에서 롤아웃 관리를 위한 오픈소스 도구 중 하나로, Kubernetes에서 Blue/Green, Canary 등 배포를 지원 lilylabs.tistory.com 1. Canary 배포 테스트 1) Canary Manifest 배포 spec.strategy를 canary로 지정한다. maxSurge: 새롭게 배포되는 Pod 비율 (기본값: 25%) maxUnavailable: 업데이트 중에 사용할 수 없는 최대 Pod ..
1. Argo Rollouts 소개1) Argo Rollouts 이란?Argo rollouts은 Progressive Delivery를 지원하는 툴이다. 쿠버네티스에서 롤아웃 관리를 위한 오픈소스 도구 중 하나로, Kubernetes에서 Blue/Green, Canary 등 배포를 지원한다.2) Argo Rollouts을 사용하는 이유Kubernetes의 기본 배포 전략은 RollingUpdate이나, RollingUpdate는 여러 가지 제약 사항이 있다. 이를 해결하기 위해 Blue/Green 또는 Canary 배포 방식을 사용한다. 하지만, Blue/Green 또는 Canary 배포 방식을 직접 구성하려면 Deployment를 2개 운영하고, Service에서 Selector를 변경해야 함으로 번거..
1. 롤링 배포 (Rolling Update Deployment) 클러스터 가동 중지 시간 없이 새 버전을 배포하면서, 새 버전 파드를 하나씩 늘려가고 기존 버전의 파드를 하나씩 줄여나가는 방식이다. Kubernetes의 기본 배포 전략으로 spec.strategy.type으로 RollingUpdate, Recreate을 지정할 수 있다. RollingUpdate 옵션 maxSurge : 업데이트 중 원래 Pod 수 이상으로 예약할 수 있는 최대 Pod 수 (기본값: 25%) maxUnavailable : 업데이트 중 사용할 수 없는 최대 Pod 수 (기본값: 25%) 장점 많은 서버 자원을 확보하지 않아도 무중단 배포가 가능함으로 서버 수의 제약이 있을 경우 유용하다. 서비스의 지속적인 가용성을 제공하..
1. 테스트 사전 설명 이번 글에서는 ⑥ , ⑦ 번 CD 과정을 설정하는 과정을 설명하였습니다. 전체적인 테스트 구성 및 ① ~ ⑤ CI 과정은 이전 글을 참고하시길 바랍니다. [Devops] Jenkins, ArgoCD를 통한 CI/CD 구성 - (1) Jenkins 구성 1. 아키텍처 CI 과정 ① Push codes to the repository 애플리케이션 코드 수정 후 dockerimage repository로 git commit 및 push 한다. ② Trigger Job - build image dockerimage repository로 push되면 github webhook을 통해 build image Jo lilylabs.tistory.com 2. CD 과정 ⑥ Sync kubernet..
1. 아키텍처 CI 과정 ① Push codes to the repository 애플리케이션 코드 수정 후 dockerimage repository로 git commit 및 push 한다. ② Trigger Job - build image dockerimage repository로 push 되면 github webhook을 통해 build image Job이 Trigger 된다. ③ Build docker container image and save it in the ACR build image Job을 통해 Docker Container Image가 Build 되고 해당 이미지가 Azure Container Registry에 저장된다. ④ Trigger Job - update manifest build..
1. Jenkins에서 Docker pipeline 플러그인 설치 Docker를 사용하여 pipeline을 구축하기 위해서는 Docker pipeline 플러그인 설치가 필요하다. 1) Dashboard → Jenkins 관리 → Plugins → Available plugins → docker pipeline 검색 후 설치 2. Jenkins에서 Github Credentials 구성 Jenkins 에는 미리 Credential 을 설정해놓고 빌드시 사용 할 수 있다. Github에서 Token을 발급받아 Jenkins Credential에 등록한다. 1) Github personal access token 생성 Github personal access token 생성하는 방법 token에 repo, ..
1. 사전 준비 Jenkins는 Java 개발 키트의 오픈 소스 버전 응용 프로그램으로 Java Platform의 오픈 소스 구현인 OpenJDK 11을 설치한다. sudo apt update sudo apt install openjdk-11-jdk OpenJDK 11 설치가 완료되면 Java 버전을 확인한다. java -version # openjdk version "11.0.7" 2020-04-14# OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) # OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing) 2. Jenkins 설치 wg..
1. Gitlab이란? GitLab은 소프트웨어 개발 라이프사이클을 지원하는 통합 DevOps 플랫폼으로, 버전 관리, CI/CD, 이슈 트래킹, 협업 등을 제공한다. Git 기반의 코드 저장소와 함께 프로젝트 관리 및 지속적 통합과 배포 기능을 제공하여 개발자들이 효과적으로 협업하고 소프트웨어를 효율적으로 개발할 수 있도록 지원한다. 오픈 소스 및 기업 버전이 제공되며, GitLab은 웹 기반의 사용자 친화적인 환경에서 전체적인 개발 프로세스를 관리한다. GitLab 패키지는 3가지가 있다. GitLab CE : Community Edition으로 설치형, 아무런 제한 없이 무료 GitLab EE : Enterprise Edition으로 설치형, 매월 유저당 과금 GitLab.com : 클라우드형, 개..
1. ArgoCD란? ArgoCD는 GitOps로 관리되는 Kubernetes manifests의 변경사항을 Monitoring 하며 실제 Cluster에 배포된 형태를 이와 동일하게 계속 유지시키는 역할을 한다. 애플리케이션의 상태를 Git Repository에 저장하고, Git Repository의 내용이 업데이트 되면 변경 사항을 기반으로 Kubernets 클러스터에 동기화 시켜주는 방식으로 동작한다. ArgoCD는 Kubernetes와 같이 선언적으로 동작한다. Git Repository의 특정 경로를 지정하고, 해당 경로에 원하는 Kubernetes의 상태가 기술된 manifest 파일들을 위치시키면 ArgoCD가 해당 파일에 선언한 상태들과 동일하게 Object들을 배포해준다. 2. ArgoC..
pepe_
'Container/Devops' 카테고리의 글 목록