1. Helm
Kubernetes 애플리케이션의 패키지 매니저로 애플리케이션을 정의, 설치 및 업그레이드 가능합니다.
애플리케이션을 패키지 형태로 배포하고 관리하기 쉽게 만들어 줍니다.
Helm을 사용하여 애플리케이션을 배포하면 일관성과 재사용성을 높일 수 있습니다.
복잡한 쿠버네티스 리소스를 효율적으로 관리할 수 있습니다.
1.1 Helm 구성 요소
(1) 차트(Chart): Helm에서 애플리케이션을 패키징한 형태로, Kubernetes 리소스 템플릿과 값 파일을 포함합니다. 차트는 애플리케이션의 모든 구성 요소와 그 관계를 정의합니다.
(2) 릴리즈(Release): 특정 차트를 Kubernetes 클러스터에 설치한 인스턴스를 의미합니다. 동일한 차트를 여러 번 설치하여 여러 릴리즈를 만들 수 있습니다.
(3) 레포지토리(Repository): 차트를 저장하고 공유하는 장소입니다. 공개된 레포지토리를 통해 다양한 차트를 다운로드할 수 있으며, 자체 레포지토리를 만들어 내부적으로 사용할 수도 있습니다.
(4) 값 파일(Values File): 차트에서 사용할 변수 값을 정의한 파일입니다. 기본값 파일과 사용자 정의 값 파일을 통해 차트의 설정을 쉽게 변경할 수 있습니다.
1.2 Helm 주요 명령어
helm search
: 차트를 검색합니다.helm install
: 차트를 설치하여 릴리즈를 만듭니다.helm upgrade
: 기존 릴리즈를 업그레이드합니다.helm rollback
: 릴리즈를 이전 버전으로 롤백합니다.helm list
: 설치된 릴리즈 목록을 표시합니다.helm delete
: 릴리즈를 삭제합니다.
1.3 Helm 설치
13/00-helm-install.txt
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh
1.4 Helm Chart 예제
1.4.1 Kube-prometheus-stack
쿠버네티스 모니터링을 위한 커스텀된 Chart를 제공합니다.
13/01-kube-prometheus-stack.txt
Repo 추가
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
사용 가능한 차트 리스트 확인
root@sllee-ubuntu01:~# helm search repo NAME CHART VERSION APP VERSION DESCRIPTION prometheus-community/alertmanager 1.11.0 v0.27.0 The Alertmanager handles alerts sent by client ... prometheus-community/alertmanager-snmp-notifier 0.3.0 v1.5.0 The SNMP Notifier handles alerts coming from Pr... prometheus-community/jiralert 1.7.1 v1.3.0 A Helm chart for Kubernetes to install jiralert prometheus-community/kube-prometheus-stack 58.5.3 v0.73.2 kube-prometheus-stack collects Kubernetes manif... prometheus-community/kube-state-metrics 5.19.0 2.12.0 Install kube-state-metrics to generate and expo... prometheus-community/prom-label-proxy 0.7.2 v0.8.1 A proxy that enforces a given label in a given ... prometheus-community/prometheus 25.21.0 v2.52.0 Prometheus is a monitoring system and time seri... prometheus-community/prometheus-adapter 4.10.0 v0.11.2 A Helm chart for k8s prometheus adapter prometheus-community/prometheus-blackbox-exporter 8.17.0 v0.25.0 Prometheus Blackbox Exporter prometheus-community/prometheus-cloudwatch-expo... 0.25.3 0.15.5 A Helm chart for prometheus cloudwatch-exporter prometheus-community/prometheus-conntrack-stats... 0.5.10 v0.4.18 A Helm chart for conntrack-stats-exporter prometheus-community/prometheus-consul-exporter 1.0.0 0.4.0 A Helm chart for the Prometheus Consul Exporter prometheus-community/prometheus-couchdb-exporter 1.0.0 1.0 A Helm chart to export the metrics from couchdb... prometheus-community/prometheus-druid-exporter 1.1.0 v0.11.0 Druid exporter to monitor druid metrics with Pr... prometheus-community/prometheus-elasticsearch-e... 5.8.0 v1.7.0 Elasticsearch stats exporter for Prometheus prometheus-community/prometheus-fastly-exporter 0.3.0 v7.6.1 A Helm chart for the Prometheus Fastly Exporter prometheus-community/prometheus-ipmi-exporter 0.3.0 v1.8.0 This is an IPMI exporter for Prometheus. prometheus-community/prometheus-json-exporter 0.11.0 v0.6.0 Install prometheus-json-exporter prometheus-community/prometheus-kafka-exporter 2.10.0 v1.7.0 A Helm chart to export the metrics from Kafka i... prometheus-community/prometheus-memcached-exporter 0.3.2 v0.14.3 Prometheus exporter for Memcached metrics prometheus-community/prometheus-modbus-exporter 0.1.2 0.4.1 A Helm chart for prometheus-modbus-exporter prometheus-community/prometheus-mongodb-exporter 3.5.0 0.40.0 A Prometheus exporter for MongoDB metrics prometheus-community/prometheus-mysql-exporter 2.5.3 v0.15.1 A Helm chart for prometheus mysql exporter with... prometheus-community/prometheus-nats-exporter 2.17.0 0.15.0 A Helm chart for prometheus-nats-exporter prometheus-community/prometheus-nginx-exporter 0.2.1 0.11.0 A Helm chart for the Prometheus NGINX Exporter prometheus-community/prometheus-node-exporter 4.34.0 1.8.0 A Helm chart for prometheus node-exporter prometheus-community/prometheus-opencost-exporter 0.1.1 1.108.0 Prometheus OpenCost Exporter prometheus-community/prometheus-operator 9.3.2 0.38.1 DEPRECATED - This chart will be renamed. See ht... prometheus-community/prometheus-operator-admiss... 0.12.0 0.73.0 Prometheus Operator Admission Webhook prometheus-community/prometheus-operator-crds 11.0.0 v0.73.0 A Helm chart that collects custom resource defi... prometheus-community/prometheus-pgbouncer-exporter 0.3.0 v0.8.0 A Helm chart for prometheus pgbouncer-exporter prometheus-community/prometheus-pingdom-exporter 2.5.0 20190610-1 A Helm chart for Prometheus Pingdom Exporter prometheus-community/prometheus-pingmesh-exporter 0.4.0 v1.2.1 Prometheus Pingmesh Exporter prometheus-community/prometheus-postgres-exporter 6.0.0 v0.15.0 A Helm chart for prometheus postgres-exporter prometheus-community/prometheus-pushgateway 2.12.0 v1.8.0 A Helm chart for prometheus pushgateway prometheus-community/prometheus-rabbitmq-exporter 1.11.0 v0.29.0 Rabbitmq metrics exporter for prometheus prometheus-community/prometheus-redis-exporter 6.2.0 v1.58.0 Prometheus exporter for Redis metrics prometheus-community/prometheus-smartctl-exporter 0.8.0 v0.12.0 A Helm chart for Kubernetes prometheus-community/prometheus-snmp-exporter 5.4.0 v0.26.0 Prometheus SNMP Exporter prometheus-community/prometheus-sql-exporter 0.1.0 v0.5.4 Prometheus SQL Exporter prometheus-community/prometheus-stackdriver-exp... 4.5.0 v0.15.0 Stackdriver exporter for Prometheus prometheus-community/prometheus-statsd-exporter 0.13.1 v0.26.1 A Helm chart for prometheus stats-exporter prometheus-community/prometheus-systemd-exporter 0.2.2 0.6.0 A Helm chart for prometheus systemd-exporter prometheus-community/prometheus-to-sd 0.4.2 0.5.2 Scrape metrics stored in prometheus format and ... prometheus-community/prometheus-windows-exporter 0.3.1 0.25.1 A Helm chart for prometheus windows-exporter
차트 다운로드
helm pull prometheus-community/kube-prometheus-stack --untar [root@m-k8s ~/helm]# ls -l drwxr-xr-x 4 root root 4096 May 17 00:40 kube-prometheus-stack
차트 파일 확인
cd kube-prometheus-stack/ [root@m-k8s ~/helm/kube-prometheus-stack]# ls -l total 252 -rw-r--r-- 1 root root 656 May 17 00:40 CONTRIBUTING.md -rw-r--r-- 1 root root 615 May 17 00:40 Chart.lock -rw-r--r-- 1 root root 2117 May 17 00:40 Chart.yaml -rw-r--r-- 1 root root 77182 May 17 00:40 README.md drwxr-xr-x 7 root root 4096 May 17 00:40 charts drwxr-xr-x 8 root root 4096 May 17 00:40 templates -rw-r--r-- 1 root root 157713 May 17 00:40 values.yaml
설치
##설치방법 1 # values.yaml 커스텀 후 설치방법 helm install prometheus-stack . -f values.yaml -n monitoring --create-namespace ##설치방법 2 # 차트를 다운보드 받지 않고 바로 설치 # 옵션으로 설정 변경가능 helm install prometheus-stack prometheus-community/kube-prometheus-stack
접속을 위해 서비스타입을 변경합니다.
kubectl -n monitoring edit svc prometheus-stack-grafana ClusterIP -> LoadBalancer