이번 강의에서는 easybank-common
Helm Chart를 활용하여 accounts
마이크로서비스의 Helm Chart를 작성하는 방법을 다룹니다. 이를 통해 Helm Chart를 사용해 마이크로서비스를 Kubernetes 클러스터에 배포하는 과정을 쉽게 관리할 수 있습니다.
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의 기본 구조를 포함하고 있습니다.
생성된 기본 템플릿 파일을 삭제하고, 필요한 파일과 설정을 추가합니다.
불필요한 템플릿 파일 삭제:
templates
폴더에 있는 기본 템플릿 파일들을 삭제합니다. 우리는 deployment.yaml
과 service.yaml
파일만 사용할 예정입니다.
chart.yaml
수정:
chart.yaml
파일을 열어 메타 정보를 수정합니다. 또한, 이 Chart가 easybank-common
Chart에 의존성을 가지고 있음을 명시합니다.
dependencies:
- name: easybank-common
version: 0.1.0
repository: file://../../Helm
이 설정은 easybank-common
Chart를 참조하도록 지정합니다.
templates
폴더에 deployment.yaml
과 service.yaml
템플릿 파일을 추가하고, 이를 통해 easybank-common
의 템플릿을 참조합니다.
deployment.yaml
템플릿:
{{- include "common.deployment" . | nindent 2 }}
service.yaml
템플릿:
{{- include "common.service" . | nindent 2 }}
이러한 파일들은 easybank-common
Chart의 템플릿을 재사용하며, accounts
마이크로서비스의 배포와 서비스 설정을 처리합니다.
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
템플릿을 사용하여 올바르게 배포되도록 하는 데 필요한 값들입니다.
모든 설정을 완료한 후, Helm Chart를 빌드하고 의존성을 해결합니다.
helm dependency build
이 명령어는 Helm Chart를 빌드하고, 필요한 의존성(easybank-common
)을 가져옵니다. 빌드 후, charts
폴더에 의존성이 해결된 Helm Chart가 압축된 형태로 저장됩니다.
accounts
마이크로서비스와 유사하게, 다른 마이크로서비스(loans
, cards
등)를 위한 Helm Chart를 생성하고 설정합니다. 각 마이크로서비스의 values.yaml
파일을 적절히 수정하여 해당 마이크로서비스에 맞는 설정을 반영합니다.
이제 accounts
마이크로서비스를 위한 Helm Chart를 성공적으로 작성하였습니다. 이 Helm Chart를 사용하여 Kubernetes 클러스터에 쉽게 배포할 수 있으며, 동일한 방식으로 다른 마이크로서비스도 관리할 수 있습니다. 이 접근 방식은 대규모 마이크로서비스 네트워크를 관리하는 데 매우 유용합니다.