helm으로 쉽게 어플리케이션을 배포할 수 있다. 하지만 역시 바로 쓰는 데에는 너무 많은 한계가 필요하고 어느 정도 커스텀이 필요하다. 이전에 사용했던 ES(Elasticsearch)를 helm을 사용하여 Mac OS 단일 노드에 맞게 커스텀 배포해보려고 한다.
ES역시 공식 깃허브에서 차트를 확인할 수 있었다. -ES Helm Chart
먼저 values.yaml을 가져와서 살펴보면, 노드와 관계된 필드는 replicas와 minimumMasterNodes가 있었다. 로컬 PC 내에서 단일 노드로 배포해야하니 replicas, minimumMasterNodes 둘 다 1로 설정하였다.
배포하는 것 역시 너무 간단하다. 다음 명령어로 elastic helm repo를 가져온 후, 이전에 준비한 values.yaml을 이용하여 배포면 된다. namespace는 es로 설정하였다.
helm repo add elastic https://helm.elastic.co
helm install elasticsearch elastic/elasticsearch -n es --create-namespace
일정 시간 후에, 두개의 컨테이너를 가진 ES pod가 정상적으로 배포된 것을 확인할 수 있었다.
ES의 API를 좀 더 쉽게 이용하고 테스트 데이터를 시각화 하기 위해 다음과 Kibana도 함께 배포했다. 클러스터 밖에서 접속할 수 있도록 Kibana Web 관련 포트를 포트 포워딩하고 elastic 계정으로 로그인하였다. elastic의 초기 비밀번호는 ES shell에 직접 접속해서 환경 변수를 통해 확인할 수 있었다.
Kibana 콘솔에서 테스트 데이터를 post한 후, get했을 때 데이터가 저장됐음을 확인할 수 있었다.
여기까지 helm을 이용하여 Kubernetes에 앱을 배포하는 간단한 테스트 작업을 해보았다. 여기까지 수행했을 때 kubectl create 명령어로 배포하는 것과 무슨 차이가 있을까 생각이 들었다. ChatGPT와 공식 홈페이지를 통해 확인해보니, 단순 차트를 이용한 설치 뿐만 아니라, 차트 버전 관리 및 롤백이 가능하다고 한다. 일단 helm을 조금 더 써보면서 살펴볼 필요가 있을 것 같다.