MSA 쿠버네티스 배포 파이프라인
코드너리 | 2022. 03. 07
CI/CD
MSA
사용된 기술:
간단 요약
모든 빌드와 배포는 Spinnaker pipeline을 사용하며, 대부분의 경우 Web UI로 해당하는 pipeline을 trigger 하면서 시작됩니다. HTTP나 git webhook을 사용하는 것도 가능카지노 꽁 머니. 예를 들어, 새로운 데이터를 사용하여 주기적으로 학습시키는 kubeflow 기반의 microservice의 경우 모델 검증 후 webhook을 사용하여 자동으로 pipeline을 trigger 카지노 꽁 머니.
기본적인 pipeline은 다음과 같은 단계로 되어있습니다.
- Trigger: Docker image 버전, source code repo의 branch와 values.yaml이 존재하는 repo의 branch를 입력카지노 꽁 머니. Production의 경우 master branch 외에는 배포할 수 없도록 하여 혹시 모를 장애를 예방하고 있습니다.
- Build: Pipeline의 첫 번째 stage입니다. Jenkins를 호출하여 build를 시작카지노 꽁 머니.
- Harbor에 동일한 이름과 버전의 이미지가 존재하는지 확인하여 중복 build를 방지카지노 꽁 머니.
- Vault에 로그인하여 deploy key를 가져와 git repository를 clone 카지노 꽁 머니. 이때, Jenkins EC2 node의 instance role을 사용하여 로그인카지노 꽁 머니. Docker image를 build카지노 꽁 머니.
- Docker BuildKit을 지원하며, maven 등 자주 사용하는 build process는 속도 향상을 위한 별도 명령을 먼저 실행카지노 꽁 머니.
- 마지막으로 생성된 Docker image를 Harbor에 push하고, 로컬에서는 삭제카지노 꽁 머니. - Bake Manifest: Harbor에서 Helm chart를, git에서 values.yaml을 가져와서 Kubernetes YAML manifest를 생성카지노 꽁 머니.
- Deploy: 앞서 생성된 manifest를 apply하고, rolling update가 끝날 때까지 상태를 추적카지노 꽁 머니.