인프런 커뮤니티 질문&답변

infra님의 프로필 이미지

작성한 질문수

대세는 쿠버네티스 [Helm편]

배포 - 실습

Helm관련 궁금증이 있습니다.

해결된 질문

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

 

감사합니다.

 

infra님의 프로필 이미지
infra
질문자

2022. 03. 28. 14:34

친절한 답변 너무 감사합니다!

정답이 있다기 보다는, 유지보수가 편한쪽으로 관리하면 되겠군요.

도움이 많이 되었습니다!

오늘도 좋은하루 되세요! :)

infra님의 프로필 이미지

작성한 질문수

질문하기