DevOps

· Kubernetes
1. 배경 이전 글을 통해 Github action과 ArgoCD를 통해 Spring Cloud 기반의 MSA 애플리케이션의 CI/CD를 구축하였습니다. 하지만 해당 구조는 실제 환경에서 사용하게 부족한 부분이 많습니다. 개발계/운영계가 나누어져 있지 않다. Image의 버전 관리가 되어 있지 않다. 배포 방법에 대한 고려가 되어 있지 않다(Rolling,Blue/Green 등) 롤백 기능이 존재하지 않는다. 이러한 문제점을 해결하여 실제 프로젝트에 적용할 수 있도록 구조를 변경하며, 테스트한 내용을 기록합니다. 2. 환경 분리 우선 개발계/운영계는 각각 다른 쿠버네티스 클러스터입니다. 두 개의 클러스터를 한 개의 파이프 라인을 통해 관리하다 보니 다양한 변수를 고려해야 돼서 초기 구축에 공수가 많이 들..
· Kubernetes
1. Overviews Kubernetes에서 CI/CD를 테스트 한 내용을 기록합니다. 기존 작성한 Kubernetes CI/CD 글의 경우 Jenkins만 이용하였지만, 이번 테스트에서는 일반적으로 많이 사용하는 Jenkins-ArgoCD 조합을 사용하여 파이프라인을 구성하고 Docker build를 위해 Kaniko를 이용합니다. 또한 Github에서 webhook을 설정해 push가 발생하였을 때 trigger가 발생해 자동화가 되도록 설정하였습니다. 전체적인 플로우는 다음과 같습니다. 효율적인 관리를 위해 Source Repo 와 Manifest Repo를 나누어서 관리하였지만 일반적인 경우 charts, 나 mainfests 파일을 만들어 동일한 repository에서 사용하기도 합니다. Je..
· Kubernetes
1.Overview Application 개발 환경을 셋업하면서 CI/CD 툴에 대한 고려가 나왔습니다. Jenkins는 가장 유명한 CI/CD 툴 중 하나로 Jenkins를 이용해 이미지 빌드 부터 Kubernetes에 배포까지 할 수 있습니다. Docker, Kubernetes를 위한 버전인 Jenkins X 가 있지만 기본 Jenkins로도 배포는 가능합니다. 그 외에 CD 툴로 Argo CD 를 많이 이용합니다. 쿠버네티스 배포를 위해서 매니페스트를 작성하는데 이 또한 버전 관리가 필요하기 때문에 이를 github 와 연결해 사용합니다. 쿠버네티스와 같은 CNCF에서 관리 되기 때문에 kubernetes config 관리, monitoring 등 호환이 잘 되는 것으로 알려져있습니다. 이번 글에서..
seokbin
'DevOps' 태그의 글 목록