해결된 질문
22.03.25 10:33 작성
·
228
2
안녕하세요!
Helm을 본격적으로 공부하다가 궁금한점이 있어서 글을 작성합니다.
예를들어 한 회사에서 aaaa.com, bbbb.com 라는 도메인이 있을때
--------------------------------------------
1-1.
도메인 별로 Helm 폴더를 나누는것이 맞을까요?
/mychart_1
ㄴ/aaaa
/mychart_2
ㄴ/bbbb
아니면 모노레포로
/mychart
ㄴ/bbbb
ㄴ/template
ㄴvalue.yaml
ㄴ chart.yaml
ㄴ/aaaa
ㄴ/template
ㄴvalue.yaml
ㄴ chart.yaml
이런식으로 같이 관리해도 좋을까요?
1-2.
그 외에도, prometheus, grafana, istio, argocd, harbor 등을 helm chart로 관리한다고 할때, 상단의 폴더와 함께 관리,또는 따로 관리하는것 어떤것이 좋을까요?
/mychart
ㄴ/bbbb
ㄴ/aaaa
ㄴ/prometheus
ㄴ/grafana
....
ㄴ/harbor
or
/mychart_1
ㄴ/bbbb
ㄴ/aaaa
/mychart2
ㄴ/prometheus
ㄴ/grafana
....
ㄴ/harbor
1-3.
모노레포로 한 파일에 여러 차트를 만드는것과, dependency를 줘서 자식 chart로 관리하는것은 어떤 차이가 있을까요?
사실 dependency를 어떤식으로 사용을 해야할지, 필요성에 대해서 아직 이해를 못하였습니다.
긴글 읽어주셔서 감사합니다.
답변 1
1
2022. 03. 28. 14:06
안녕하세요. 좋은 질문 감사합니다.
일단 해당 질문에 대해서 정석적인 대답은 없습니다^^
해당 업무와 관리 특성에 따라 각자 기준을 잡아야 하는 부분이거든요.
각각의 팀에서 도메인별로 각각의 패키지를 따로 관리한다면 같은 패키지 형태라도 도메인 별로 폴더를 나눌 수 있을꺼고, 한 팀에서 관리한다면 좀더 유지보수가 쉬운 쪽으로 패키지를 관리해야 합니다.
몇가지 케이스에 따른 패키지를 설명 드리면 아래와 같습니다.
- 두 App의 Helm Chart 구성(같은 Resource 구성 사용, 설정만 다름)일 경우
/myApp
ㄴ/template
ㄴvalues.yaml
ㄴ chart.yaml
ㄴ aaa-values.yaml (aaaa.com 도메인 설정)
ㄴ bbb-values.yaml (bbbb.com 도메인 설정)
aaa 배포시 : helm install aaa-app ./myApp -f aaa-values.yaml
bbb 배포시 : helm install bbb-app ./myApp -f bbb-values.yaml
- 두 App의 Helm Chart 구성이 다를 경우, 두 App의 구성은 같지만 각각 다른 팀에서 유지보수 할 경우
/aaa
ㄴ/template
ㄴvalues.yaml
ㄴ chart.yaml
/bbb
ㄴ/template
ㄴvalues.yaml
ㄴ chart.yaml
aaa 배포시 : helm install aaa-app ./aaa
bbb 배포시 : helm install bbb-app ./bbb
- 두 App의 구성이 상속 관계인 경우 (bbb는 ccc나 ddd에도 사용 될 수 있음), (bbb는 있어도 되고 없어도됨)
/aaa
ㄴ/charts
ㄴ/bbb
ㄴ/template
ㄴvalues.yaml
ㄴ chart.yaml
ㄴ/template
ㄴvalues.yaml (bbb를 같이 배포할지 설정)
ㄴ chart.yaml
aaa 배포시(bbb포함) : helm install aaa-app ./aaa -- set bbbEabled=true
aaa 배포시(bbb미포함) : helm install aaa-app ./aaa -- set bbbEabled=false
/ccc
ㄴ/charts
ㄴ/bbb
ㄴ/template
ㄴvalues.yaml
ㄴ chart.yaml
ㄴ/template
ㄴvalues.yaml (bbb를 같이 배포할지 설정)
ㄴ chart.yaml
- 두 App의 구성이 필수 포함 관계인 경우 (한번에 같이 배포)
/myApp
ㄴ/template
ㄴ/aaa
ㄴ/bbb
ㄴvalues.yaml (bbb를 같이 배포할지 설정)
ㄴ chart.yaml
aaa, bbb가 함께 배포 : helm install app ./myApp
1-1과 1-3번 질문은 위 케이스에서 설명됐을것 같고,
1-2번 질문도 정답이 없는 부분이고요. 개인적으로는 본 업무개발 패키지와 오픈소스 등으로 최대한 카테고리화 하는걸 좋아합니다.
/domain
ㄴ/aaa
ㄴ/bbb
/plugin
ㄴ/prometheus
ㄴ/harbor
감사합니다.
2022. 03. 28. 14:34
친절한 답변 너무 감사합니다!
정답이 있다기 보다는, 유지보수가 편한쪽으로 관리하면 되겠군요.
도움이 많이 되었습니다!
오늘도 좋은하루 되세요! :)