반응형
Helm으로 2 tier webapp 배포에 이어지는 내용입니다.
참고
-
How to add dependency to Helm Chart - Sachin Bhosale's Blog
-
Chart.yaml 파일 - Helm docs
728x90
결과요약
dependency 구조 및 설정 미리보기
아....
단일 Helm chart 작성법이나 사용법은 도움되는 글들이 있었는데
종속성 갖는 chart 내용은 도움 될만한 샘플이나 설명 글이 잘 안 찾아 지네요
대부분 'charts 폴더에 종속성 갖는 chart를 구성하고, 메인 chart.yaml 에 종속성 정의를 해준다' 요정도 글만 있고.... ㅠㅠ
종속성 chart를 사용하지 않는 프로젝트는 없을거라 생각되는데...
요 부분은 공유가 잘 안되는 모양입니다. 속상하네요...
Helm docs의 Chart.yaml 의 내용을 보고 코끼리 발가락부터 더듬어 봐야 할 것 같습니다. ㅠㅠ
하위 chart 구성
일단 하위차트 구성을 위해 sample-vote의 내용을 하위차트(sample-vote-backend)에 그대로 복사 합니다.
나중에 배포결과 확인을 구분하기 위해 backend chart의 NOTES.txt 내용을 변경합니다.
저 텍스트가 나중에 이쁘게 출력하길 기대해 봅니다. -0-
교통정리
현재 sub chart의 내용은 본 chart를 그대로 복사했기 때문에 교통정리를 좀 하겠습니다.
-
main chart 는 front-end 관련 yaml만
-
sub chart 는 back-end 관련 yaml만
-
sub chart 의 chart명 변경
먼저 main chart에는 back-end yaml파일 삭제
다음으로 sub chart에는 front-end yaml파일 삭제
sub chart의 chart이름 변경
종속성 설정
지금까지 sub chart 구성한 것도 될지 안될지 걱정이지만
main chart에 종속성 설정하는 부분도 어떻게 설정해야 되는지 난감하지만...
일단 고~
지금까지 작업한 내용은
-
main chart 내용을 sub chart로 복사했고
-
main chart 에는 front-end yaml만 남겼고
-
sub chart 에는 back-end yaml만 남겼고
요 상태에서 lint로 문법을 확인해 봅니다.
helm lint
오우~ 저런 chart 하나가 불량 이라네요
main chart metadata에 vote-backend 종속성이 누락되었다고 알려주네요
그런데...
어떻게 추가 해야 하는건지는 알려주지 않습니다. 뭘 참고 하라고 링크라도 남겨주지 ㅠ
어디서 주어들은 기본적인 내용으로 main chart.yaml에 종속성을 추가해 봅니다.
(편의를 위해 chart.yaml 파일 주석은 삭제 했습니다.)
이거면 되나 싶어 lint 다시 실행 해 봅니다.
helm lint
오호라~ chart 맞춤법 실패가 사라졌습니다.
또 이거면 되나 싶어 dry-run으로 debuging 해 봅니다.
helm install sample-vote ./sample-vote --dry-run --debug
오~~~ 좋아좋아
main chart에 정의된 vote의 front-end와 sub chart에 정의된 back-end 모두 렌더링 되었습니다.
결과가 길어서 내용을 첫부분과 끝부분만 캡쳐 했지만
아쉽게도 sub chart의 NOTES.txt 내용은 출력되지 않았습니다.
이제 실제로 배포를 해봐야 겠군요~
helm install sample-vote ./sample-vote
helm으로 install 잘 되었구요. cluster에 확인 해 봅니다.
cluster에도 잘 배포되어 있고 web에 접속해 봅니다.
ㅋ ㅑ~
정상 실행 되었습니다.
추가 테스트
예전에 어디선가 chart 폴더명은 chart.yaml에 정의되는 내용과 반드시 같아야 한다는 글귀를 본적이 있는데
배포된 chart 삭제 후 폴더명을 바꾸고 lint만 실행 해봐야 겠습니다.
sub chart의 폴더명을 바꾸고
helm uninstall sample-vote
문법이 맞는지 확인해 봅니다.
helm lint
음... 실패하지 않네요
sub chart에 들어가서 다시 lint 실행해봅니다.
cd charts/vote-backend2
음.... 여전히 실패는 하지 않네요
sub chart 폴더명은 다시 원래대로 돌려 놓고,
하는김에 main chart의 폴더명도 변경 후 lint 돌려 봅니다.
폴더명 바꾸고
lint 실행
helm lint
어~~?
실패하지 않네요?....
요건 정상으로 보이지만 나중에 chart build하거나 build된 chart를 재사용 할 때 문제가 되지 않을까 조심스레 걱정해 보며,
나중에 chart build 테스트 하게되면 그 때 같이 확인해 봐야 겠습니다.
main chart의 폴더명도 원래대로 돌려놓고 한번 더 lint로 확인 합니다.
helm lint
뭘 해도 정상이네요. 쪼끔 미련이 남긴 하지만... 오늘은~ 여기까지!
마무리
main chart.yaml에 dependency를 통해 내가 관리하는 yaml파일들을 위 에서 테스트 한 것처럼
charts 하위 폴더에 구성해주면 충분히 사용 가능하겠고,
chart를 build해서 push도 해보고, 외부 chart 땡겨서 쓰는것도 해보고 싶고...
이것보단 변수 설정이 더 궁굼하네요.... -0-
자~ 이제 변수로 뺄 수 있는부분들을 변수로 빼봐야 겠습니다.
반응형
LIST
'IT > Kubernetes' 카테고리의 다른 글
Helm으로 2 tier webapp 배포 (하위차트 변수) (1) | 2023.04.17 |
---|---|
Helm으로 2 tier webapp 배포 (변수) (0) | 2023.04.17 |
Helm으로 2 tier webapp 배포 (0) | 2023.04.17 |
Helm에 대해 알아보자 (1) | 2023.04.17 |
K8S Horizontal Pod Autoscaler (HPA) (0) | 2023.04.17 |