본문 바로가기
반응형

CI/CD5

[CI/CD 프로젝트] ArgoRollout로 canary배포하기 Canary 배포이전 광부들이 광산에 들어갈 때 이 canary 새를 풀어봐 광산이 안전한지 위험도 테스트를 진행했다.유래와 같이 Canary 배포는 새로운 애플리케이션 버전을 점진적으로 배포하여, 작은 사용자 그룹에게 먼저 제공한 뒤 안정성이 확인되면 전체로 확대하는 배포 방식이다. 이 방식은 배포 시 위험을 줄이고, 문제가 발생했을 때 신속히 롤백할 수 있다는 장점이 있다.Canary 배포Canary 릴리즈: 새로운 버전의 애플리케이션을 소수의 Pod 또는 인스턴스에 배포합니다. 초기에는 전체 트래픽 중 일부만 새로운 버전에 전달한다.( EX. 회사 내부 인력, 베타 테스트 등..) header, cookie로 트래픽을 조절할 수 있어 베타테스트 등에 유용하다.모니터링 및 검증: 새로운 버전이 소수의.. 2024. 11. 20.
[CI/CD 프로젝트] ArgoRollout로 Blue/Green 배포하기 K8S RollingUpdate 한계점k8s는 이미 rolling update를 지원하고 있지만, 배포 속도가 느리고 새버전으로의 트래픽 조절을 하지 못한다. 또한 상태확인이 Readiness Probe로만 이루어 지고 있어 운영환경에 적합하지 않는다. 자동 롤백 기능도 지원하지 않는다.ArgoRolloutArgo Rollouts는 Kubernetes 애플리케이션의 배포를 점진적으로 관리하기 위한 오픈소스 툴이다.Argo 프로젝트의 일부로, Canary 및 Blue-Green 방식과 같은 다양한 롤아웃 전략을 지원하며, 이를 통해 배포 과정에서 안정성을 높이고 리스크를 줄일 수 있습니다. 주로 CD(Continuous Delivery) 환경에서 Kubernetes 네이티브 방식으로 애플리케이션 배포를 세.. 2024. 11. 20.
[CI/CD 프로젝트] ArgoCD를 통한 CD 구성 Argocd 구성 요소1. Application여러 팀에서 사용할 때 어플리케이션의 논리적 그룹을 제공한다.항목:Source: Git 리포지토리와 브랜치, 디렉토리 경로를 설정하여 어떤 Kubernetes 매니페스트를 사용할지를 정의합니다.Destination: 리소스가 배포될 Kubernetes 클러스터와 네임스페이스를 설정한다.Sync Policy: 애플리케이션이 어떻게 배포되고 업데이트될지를 정의하는 정책으로, 자동 또는 수동으로 동기화할 수 있다.2. ProjectProject는 여러 Application을 논리적으로 그룹화하여 관리할 수 있다.특정 클러스터 내에서 리소스를 체계적으로 관리하기 위해 애플리케이션을 논리적으로 묶는 역할을 한다.application은 무조건 한 project에는 포함.. 2024. 11. 20.
[CI/CD 프로젝트] GitAction을 통한 CI 구성 GitHub Actions이란GitHub Actions는 코드 변경 사항에 따라 자동으로 워크플로우(빌드, 테스트, 배포 등)를 실행하는 GitHub의 CI/CD 도구입니다.2. GitHub Actions의 기본 구성 요소Workflow: 하나 이상의 작업을 포함하는 프로세스.Job: 병렬 또는 순차적으로 실행되는 작업의 묶음.Step: 각 Job 안에서 실행되는 개별 명령어 또는 스크립트.Runner: 워크플로우가 실행되는 환경(가상 머신 또는 컨테이너).다양한 CI 도구가 있지만, 접근의 편의성이 높은 Git Action으로 먼저 CI를 구축해보고자 한다.실습💡github action을 통해서 정적 분석을 진행하고, docker build를 진행한다.아래 와 같이 동작하는 CI 구조를 만들어 본다... 2024. 11. 20.
[CI/CD 프로젝트] K8S - Containerd 내부 구조 이해 1. 컨테이너를 위한 리눅스 네트워크※ 1.2이상 버전에서 K8S는 컨테이너 런타임으로 Docker 의 사용 중단한다.컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행될 수 있도록 코드와 모든 종속성을 패키지화하는 소프트웨어의 표준 단위이다.컨테이너를 수행하게 되면 네트워크 네임스페이스 별로 격리화되어, 고유의 네트워크 구성을 가지게 된다.서로 다른 네트워크 네임스페이스는 서로 “고립된” 환경으로 존재하게 된다.echo "# Network devices"ip link listecho -e "\n# Route table"ip route listecho -e "\n# iptables rules"iptables --list-rules리눅스 네트워크 시스템은 기본적으로 이.. 2024. 11. 19.
반응형