Helm과 Kustomize 차이
- 둘 다 다양한 배포 툴에서 지원
- Helm은 App 종류가 많을 때 Kustomize는 적을 때 사용에 용이
- 쿠버네티스의 대부분의 오픈소스는 Helm 형태로 배포
- 그래서 Helm을 알면 Kustomize를 알 필요가 없어짐
- 하지만 소규모라면 Kustomize도 괜찮은 결정
Helm과 Kustomize 실행 개요
- Helm은 함수 방식, Kustomize는 오버레이 방식으로 관리
- Kustomize는 app 수가 많을 수록 파일이 쌓이는 방식
Helm 패키지
- helm create [이름]을 하면 기본적으로 위의 패키지 구조가 만들어짐
- 자신의 구조에 맞추어서 내부를 수정해주면 됨
- values-dev 이런 식으로 환경에 따라 다르게 해서 할 수도 있음
Kustomize 패키지
- 오버레이 형식으로 만들면 됨
- Helm과는 달리 직접 패키지 구조를 생성해주어야 함
배포 파이프라인 구축 후 마주하게 되는 고민들
- docker의 config.json은 암호화가 안되어 있기에 Jenkins(CI/CD 툴)에서 배포 시 마다 로그인/로그아웃을 하여 관리해야함
- kubernates 인증서 또한 서버에 두면 뺏길 수도 있기 때문에 Jenkins에 두어서 암호화해서 관리해야함
- namespace는 배포와 별도로 관리하는 것이 좋음
- 같이 관리하다가 namespace 지웠더니 배포까지 다 지워지면 안되기 때문
- latest는 보통 최신 안정화 버전으로 생각하면 좋음
- 보통 뒤에 latest를 달기 보다는 날짜 태그를 달면 관리하기가 좋음
- Always와 IfNotPresent가 있는데 각각 장단점이 있으니 상황에 맞게 사용해야함
- 사용하지 않는 이미지는 쿠버네티스에서 자동으로 지워줌
출처: https://inf.run/7dm3q