kustomize 2

kustomize를 활용한 Manifest 관리

Manifest의 재사용성 이 글을 읽고 있는 대부분의 사람은 Kubernetes에서 App 배포를 위해 Manifest 파일을 작성한 경험이 있을 것이다. 예를 들어 Nginx로 구성한 Frontend의 Deployment, Service, Persistent Volume, PVC, ConfigMap 등을 정의하고 "kubectl apply -f" 명령어로 적용하는 것이다. 현재 App을 배포한 Namespace를 dev라고 하고 테스트를 완료한 상태에서 production에 배포하려고 한다. spec이 동일하지 않고 일부 필드를 추가해야 하거나 환경변수 값이 다른 경우도 있다고 가정하자. 가장 단순한 해결책으로 기존에 작성한 Manifest 파일을 복사해서 production 환경에 맞게 수정하는 작..

CI-CD 2021.02.24

CD를 위한 Jenkins, Argo CD 연계

이전 포스트에서 Jenkins, GitHub, Docker Hub를 파이프라인으로 구성하여, 컨테이너 이미지 빌드를 자동화하였다. 이번 시간엔 Argo CD를 연계하여 배포까지 자동화된 CI/CD Pipeline을 만들어 볼 차례다. 우선 기존 구성에서 추가되는 내용은 다음과 같다. 1. Jenkins에서 Image 빌드 및 Push 후, 배포 전용 Repository에 새로운 이미지 태그 반영 2. Argo CD는 해당 Repository로부터 Auto Sync 수행 3. AutoSync를 통해 업데이트된 Manifest를 사용하여 리소스 재생성 참고로 GitHub와 Argo CD의 연결은 일반적으로 GitHub Webhook 방식을 사용하나, 현재 테스트 환경은 외부에서 Argo CD에 접근할 수 없..

CI-CD 2021.02.21