Inflearn brand logo image

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

강우석님의 프로필 이미지
강우석

작성한 질문수

대세는 쿠버네티스 (Helm편)

배포 - 실습

프로젝트에서 Helm Chart 관리 및 작성에 대하여

작성

·

103

1

안녕하세요, 제가 제조업쪽이라 서비스가 원활한 회사에서 근무를 하고 있지 않아서, 일반적인 IT 업계에선 Helm Chart 관리를 어떻게 하는지 궁금해서 문의드리게 되었습니다.

일반적으로 적당한 프로젝트를 배포할 때 Front End 와 Back End Application 두가지 나눠서 배포한다고 해보겠습니다.

Vue 와 Spring Boot 를 사용하는데, 이 때 프로젝트 루트 경로에 예제에서 관리한 바와 같이 deploy 폴더를 만들어서 관리를 하도록 했습니다.

이 때, 기존 구성상 Ingress 가 다음과 같이 되어 있습니다.

 

rules:
  - host: hello.foo.com
    http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: svc-fe
              port:
                number: 8080
        - path: /api
          pathType: Prefix
          backend:
            service:
              name: svc-be
              port:
                number: 80

위와같이 되어 있을 경우, 이 ingress 는 두 영역 모두 의존성이 있습니다. fe 패키지에서 관리해야 할지, be 패키지에서 관리해야 할지 의문이 들었습니다.

아니면 Helm 은 IaC 도구로서 이며 원하는 인프라를 빠르게 셋업해줘야 하기 때문에 FE, BE 모두 한번에 관리하는게 맞는걸까요?

그렇다면 이런 경우에는 FE, BE 깃 레포가 아닌, 별도의 Helm Chart 레포를 만들어서 관리를 하는 걸까요?

답변 1

0

일프로님의 프로필 이미지
일프로
지식공유자

네, 일단 소스코드 레파지토리로 FE와 BE 각각의 레파지토리가 존재할 거고요.

그리고 Helm 배포용 레파지토리는 별도로 존재해야 합니다.

그리고 그 배포용 레파지토리에 디렉토리를 나눠서 BE용 Helm 패키지, FE용 Helm 패키지를 각각 존재하게 만들지, 아니면 BE와 FE를 한 패키지에 묶어서 value 옵션에 따라 배포될 pod를 선택하게 만들지는 배포 담당자의 판단입니다.

그리고 그 나누는 기준에 있어서는 배포할 담당자가 각각 있으면 패키지를 나누는 게 좋아요.

한 명이 다 한다고 했을 때는, yaml 스펙이 비슷한 Application 별로 패키지를 나누는 게 좋기도 하고.

그렇지 않으면 한 패키지로 만들 수도 있는 거죠.

그리고 만약 BE용과 FE용 Helm 패키지가 나눠졌다면 위에 ingress yaml 파일도 아래와 같이 BE용과 FE용으로 각각 나누면 됩니다.

rules:
  - host: hello.foo.com
    http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: svc-fe
              port:
                number: 8080
rules:
  - host: hello.foo.com
    http:
      paths:
        - path: /api
          pathType: Prefix
          backend:
            service:
              name: svc-be
              port:
                number: 80
강우석님의 프로필 이미지
강우석
질문자

강사님과 함께 들은 Open Source 들 같은 경우는 한번에 관리가 서비스 제공에 있어서 Chart 가 유리하다고 생각은 들었습니다. 서비스형 앱들은 담당별로 관리하는게 나을 것 같긴 하네요!
Ingress 는 리소스라기보단 Controller 가 참고하는 규칙이기 때문에 제시해주신 바와 같이 생성하면 되겠네요.
빠른 도움 주셔서 감사드립니다

강우석님의 프로필 이미지
강우석

작성한 질문수

질문하기