본문 바로가기
IT/Kubernetes

Helm으로 2 tier webapp 배포

by rapker 2023. 4. 17.
반응형
Helm에 대해 알아보자에서 이어지는 내용입니다.

 

 
참고
 

 
 
테스트에는 Azure의 vote sample이 사용됩니다.
 
먼저, 위 샘플의 yaml파일을 기본적으로 방법으로 배포해서 정상 동작 하는지 확인 해본 후,
helm chart 작성해서 배포해 보도록 하겠습니다.
 
위 샘플은 아래와 같이 2 tier 구조를 가지고 있습니다.
테스트 목표
  • helm chart 로 여러개의 yaml 파일 묶음 배포
  • helm chart 하위 구조로 배포
 

 

728x90
 
일반적인 배포로 샘플 정상동작 확인
 
Azure의 vote 샘플 :
 
 
배포된 모습

 

 
pod
 
svc
 
service의 외부 ip로 접근 시도
 
정상이네요.
온전한 샘플은 준비 되었고 helm chart로 배포하는 방법을 찾아봐야겠습니다.
 
샘플앱 동작은 확인되었으니 배포 했던 service와 pod는 삭제 했습니다.
 

 


 

 
chart 생성
 
적당한 위치에서 (저는 C:\test-helm\ 에서 진행합니다.)
helm 커맨드로 기본 차트를 생성 합니다.
helm create sample-vote
 
C:\test-helm에 template이 생성 된 모습을 확인할 수 있습니다.
 
 
음....
비어있는 chart가 예제로 보이는 서비스가 하나 같이 생성 되어 있는데요...
 
갑자기 고민에 빠졌습니다.
 
해당 샘플은 values.yaml에 변수사용 부분까지 포함되어 있는데....
 
이걸 먼저 배포할까? 아님 싹 지우고 준비한 vote 샘플을 먼저 배포할까?
 
....
 
싹~~다 지우기로 정했습니다. -0-
 
 
깔끔하게 비워진 templates 폴더에 준비한 vote 파일들로 채워 줍니다.
(Azure vote sample에는 하나의 yaml 파일로 정의되어 있는데 각 역할별로 yaml파일을 분리 했습니다.)
 
 
추가로. 배포 되었을 때 출력 될 메세지도 간략하게 적어 봅니다.
 
 
모든 준비는 완료된 것 같습니다.
chart 준비는 완료 되었고, 실제 배포 전에 문법 검사를 해 봅니다.
 
 
lint로 chart 문법 검사
 
준비한 chart 구성에 이상이 없는지 lint로 template의 상태를 검증해 봅니다.
helm lint
 
1개의 chart가 정상이고, 0개의 실패라는 결과를 받았습니다.
친절하게도 아까 삭제해 버린 values.yaml파일이 없다고 알려주네요
(오류는 없으니까 pass)
 
 
dry-run으로 실제 배포 가능 확인
반응형
 
추가로, helm으로 배포될 k8s cluster의 자격증명이 완료된 상태어야 합니다.
(azure는 az cli로 자격증명을 완료할 수 있습니다. : az aks get-credentials)
 
dry-run은 chart가 cluster로 전송 될 경우 실제로 작동이 가능한지 확인하는 플래그 입니다.
(chart를 cluster에 전송하여 배포하기 직전까지 과정인 manifest파일을 만들고 렌더링 된 결과물을 리턴합니다.)
helm install sample-vote ./sample-vote --dry-run --debug
 
음.... 이런 오류를 만났습니다.
테스트 비용 아낀다고 cluster를 꺼놨었는데 ....
 
왜???
k8s cluster에 배포행위를 렌더링이라 표현할까 궁굼해서 검색해보았지만 별 수확이 없네요
 
yaml 파일에 정의된 내용이 cluster에 배포되기 까지 스케줄러를 포함한 여러 과정을 거치는 과정이
그래픽 렌더링을 하기 위해 원시데이터를 화면에 출력하기 까지 여러 과정을 거치는 것과 유사한 패턴이 갖기에
렌더링이라고 표현하는것이 아닐까... 생각해 봅니다.
 
k8s cluster 사용가능한 상태로 만들고 다시 dry-run 실행
 
오~~ templates에 만들어놓은 yaml파일들을 쭈루룩 출력 하고 맨~ 아래에
 
NOTES.txt에 작성했던 내용이 이쁘게 출력 되었습니다.
 
 
이제 실제로 배포해서 앱이 동작하는지 보겠습니다.
helm install sample-vote ./sample-vote
 
 
cluster에 배포 확인
 
 
배포된 앱 확인
 
 
오~~~~ 잘 실행 되고 있습니다.
저 간단한 페이지가 이뻐 죽겠습니다. -0-
 
다음 테스트를 위해 곧바로 삭제 합니다.
helm uninstall sample-vote
 
 
삭제 확인
 
 
 
 
종속성 있는 chart로 배포
 
음... 어느새 스크롤이 길어졌네요 종속성 배포는 새 문서에서 진행 하겠습니다.
 
 
반응형
LIST

'IT > Kubernetes' 카테고리의 다른 글

Helm으로 2 tier webapp 배포 (변수)  (0) 2023.04.17
Helm으로 2 tier webapp 배포 (종속성)  (1) 2023.04.17
Helm에 대해 알아보자  (1) 2023.04.17
K8S Horizontal Pod Autoscaler (HPA)  (0) 2023.04.17
K8S Autoscale 리서치  (0) 2023.04.17