Helm Chart를 활용한 마이크로서비스 배포

날아올라돼지야·2024년 9월 1일
0

이번 강의에서는 easybank-common Helm Chart를 활용하여 accounts 마이크로서비스의 Helm Chart를 작성하는 방법을 다룹니다. 이를 통해 Helm Chart를 사용해 마이크로서비스를 Kubernetes 클러스터에 배포하는 과정을 쉽게 관리할 수 있습니다.

1. easybank-services 폴더 생성 및 accounts Helm Chart 생성

먼저, easybank-services라는 새로운 폴더를 생성하고, 이 안에 accounts Helm Chart를 생성합니다.

  • 폴더 생성 및 이동:

    mkdir -p section_16/easybank-services
    cd section_16/easybank-services
  • Helm Chart 생성:

    helm create accounts

이 명령어로 accounts라는 이름의 Helm Chart가 생성됩니다. 이 폴더는 Helm Chart의 기본 구조를 포함하고 있습니다.

2. 기본 템플릿 파일 삭제 및 설정 수정

생성된 기본 템플릿 파일을 삭제하고, 필요한 파일과 설정을 추가합니다.

  • 불필요한 템플릿 파일 삭제:
    templates 폴더에 있는 기본 템플릿 파일들을 삭제합니다. 우리는 deployment.yamlservice.yaml 파일만 사용할 예정입니다.

  • chart.yaml 수정:
    chart.yaml 파일을 열어 메타 정보를 수정합니다. 또한, 이 Chart가 easybank-common Chart에 의존성을 가지고 있음을 명시합니다.

    dependencies:
      - name: easybank-common
        version: 0.1.0
        repository: file://../../Helm

이 설정은 easybank-common Chart를 참조하도록 지정합니다.

3. 템플릿 파일 작성

templates 폴더에 deployment.yamlservice.yaml 템플릿 파일을 추가하고, 이를 통해 easybank-common의 템플릿을 참조합니다.

  • deployment.yaml 템플릿:

    {{- include "common.deployment" . | nindent 2 }}
  • service.yaml 템플릿:

    {{- include "common.service" . | nindent 2 }}

이러한 파일들은 easybank-common Chart의 템플릿을 재사용하며, accounts 마이크로서비스의 배포와 서비스 설정을 처리합니다.

4. values.yaml 파일 설정

이제 values.yaml 파일을 수정하여 accounts 마이크로서비스에 필요한 설정 값을 정의합니다.

  • values.yaml:
    deploymentName: accounts-deployment
    serviceName: accounts-service
    appLabel: accounts
    appName: accounts
    replicaCount: 1
    image:
      repository: easybank/accounts
      tag: s14
    containerPort: 8080
    service:
      type: ClusterIP
      port: 8080
      targetPort: 8080
    appNameEnabled: true
    profileEnabled: true
    configEnabled: true
    eurekaEnabled: true
    resourceServerEnabled: false
    otelEnabled: true
    kafkaEnabled: true

이 설정들은 accounts 마이크로서비스가 easybank-common 템플릿을 사용하여 올바르게 배포되도록 하는 데 필요한 값들입니다.

5. Helm Chart 빌드 및 의존성 확인

모든 설정을 완료한 후, Helm Chart를 빌드하고 의존성을 해결합니다.

  • Helm Chart 빌드:
    helm dependency build

이 명령어는 Helm Chart를 빌드하고, 필요한 의존성(easybank-common)을 가져옵니다. 빌드 후, charts 폴더에 의존성이 해결된 Helm Chart가 압축된 형태로 저장됩니다.

6. 다른 마이크로서비스를 위한 Helm Chart 작성

accounts 마이크로서비스와 유사하게, 다른 마이크로서비스(loans, cards 등)를 위한 Helm Chart를 생성하고 설정합니다. 각 마이크로서비스의 values.yaml 파일을 적절히 수정하여 해당 마이크로서비스에 맞는 설정을 반영합니다.

결론

이제 accounts 마이크로서비스를 위한 Helm Chart를 성공적으로 작성하였습니다. 이 Helm Chart를 사용하여 Kubernetes 클러스터에 쉽게 배포할 수 있으며, 동일한 방식으로 다른 마이크로서비스도 관리할 수 있습니다. 이 접근 방식은 대규모 마이크로서비스 네트워크를 관리하는 데 매우 유용합니다.

참고 자료

profile
무슨 생각하며 사니

0개의 댓글