我想在离线的Kubernetes上使用Helm Chart安装Prometheus/Grafana,需要收集所需的文件
收集必要的文件以在离线的 Kubernetes 上安装 Prometheus/Grafana 的备忘录。
启动Minikube
启动Minikube。
$ minikube start
? minikube v1.3.1 on Darwin 10.14.6
? Creating virtualbox VM (CPUs=4, Memory=4096MB, Disk=20000MB) ...
? Preparing Kubernetes v1.15.2 on Docker 18.09.8 ...
? Pulling images ...
? Launching Kubernetes ...
⌛ Waiting for: apiserver proxy etcd scheduler controller dns
? Done! kubectl is now configured to use "minikube"
$
部署 Tiller。
$ helm init
$HELM_HOME has been configured at /Users/sotoiwa/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
$
获取图表
查看存储库。
$ helm repo list
NAME URL
stable https://kubernetes-charts.storage.googleapis.com
local http://127.0.0.1:8879/charts
loki https://grafana.github.io/loki/charts
iks-charts https://icr.io/helm/iks-charts
ibm-charts https://icr.io/helm/ibm-charts
$
更新代码仓库。
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "loki" chart repository
...Successfully got an update from the "iks-charts" chart repository
...Successfully got an update from the "ibm-charts" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete.
$
检查Prometheus的图表。
$ helm search prometheus
NAME CHART VERSION APP VERSION DESCRIPTION
ibm-charts/ibm-netcool-piagent-prometheus-dev 0.2.0 Prometheus metrics agent for Predictive Insights
stable/prometheus 8.15.1 2.11.1 Prometheus is a monitoring system and time series database.
stable/prometheus-adapter 1.2.0 v0.5.0 A Helm chart for k8s prometheus adapter
stable/prometheus-blackbox-exporter 1.0.1 0.14.0 Prometheus Blackbox Exporter
stable/prometheus-cloudwatch-exporter 0.4.9 0.5.0 A Helm chart for prometheus cloudwatch-exporter
stable/prometheus-consul-exporter 0.1.4 0.4.0 A Helm chart for the Prometheus Consul Exporter
stable/prometheus-couchdb-exporter 0.1.1 1.0 A Helm chart to export the metrics from couchdb in Promet...
stable/prometheus-mongodb-exporter 2.2.0 v0.7.0 A Prometheus exporter for MongoDB metrics
stable/prometheus-mysql-exporter 0.5.1 v0.11.0 A Helm chart for prometheus mysql exporter with cloudsqlp...
stable/prometheus-nats-exporter 2.2.1 0.5.0 A Helm chart for prometheus-nats-exporter
stable/prometheus-node-exporter 1.6.0 0.18.0 A Helm chart for prometheus node-exporter
stable/prometheus-operator 6.6.1 0.31.1 Provides easy monitoring definitions for Kubernetes servi...
stable/prometheus-postgres-exporter 0.7.2 0.5.1 A Helm chart for prometheus postgres-exporter
stable/prometheus-pushgateway 1.0.1 0.9.1 A Helm chart for prometheus pushgateway
stable/prometheus-rabbitmq-exporter 0.5.2 v0.29.0 Rabbitmq metrics exporter for prometheus
stable/prometheus-redis-exporter 3.0.1 1.0.4 Prometheus exporter for Redis metrics
stable/prometheus-snmp-exporter 0.0.4 0.14.0 Prometheus SNMP Exporter
stable/prometheus-to-sd 0.2.0 0.5.2 Scrape metrics stored in prometheus format and push them ...
loki/loki 0.13.0 0.0.1 Loki: like Prometheus, but for logs.
loki/loki-stack 0.15.0 0.0.1 Loki: like Prometheus, but for logs.
stable/elasticsearch-exporter 1.7.0 1.0.2 Elasticsearch stats exporter for Prometheus
stable/helm-exporter 0.3.1 0.4.0 Exports helm release stats to prometheus
stable/karma 1.1.18 v0.42 A Helm chart for Karma - an UI for Prometheus Alertmanager
stable/stackdriver-exporter 1.1.1 0.6.0 Stackdriver exporter for Prometheus
stable/weave-cloud 0.3.3 1.3.0 Weave Cloud is a add-on to Kubernetes which provides Cont...
stable/kube-state-metrics 2.3.0 1.7.2 Install kube-state-metrics to generate and expose cluster...
stable/kuberhealthy 1.2.6 v1.0.2 The official Helm chart for Kuberhealthy.
stable/mariadb 6.7.4 10.3.17 Fast, reliable, scalable, and easy to use open-source rel...
$
查看Grafana的图表。
$ helm search grafana
NAME CHART VERSION APP VERSION DESCRIPTION
stable/grafana 3.8.3 6.2.5 The leading tool for querying and visualizing time series...
$
将最新的 Prometheus 和 Grafana 图表保存到文件中。
$ helm fetch stable/prometheus
$ helm fetch stable/grafana
$ ls -l *.tgz
-rw-r--r-- 1 sotoiwa staff 16195 8 16 10:23 grafana-3.8.3.tgz
-rw-r--r-- 1 sotoiwa staff 22489 8 16 10:22 prometheus-8.15.1.tgz
$
获取图像
获取默认值。
$ helm inspect values stable/prometheus > prometheus-default-values.yaml
$ helm inspect values stable/grafana > grafana-default-values.yaml
$
一般情况下,参考默认值和图表的README文件,适当定制values文件。本次试用将保持默认设置。
-
- https://github.com/helm/charts/blob/master/stable/prometheus/README.md
- https://github.com/helm/charts/blob/master/stable/grafana/README.md
使用Helm template命令生成清单并确认所需镜像。
$ helm template prometheus-8.15.1.tgz -f prometheus-default-values.yaml | grep "image:"
image: "prom/node-exporter:v0.18.0"
image: "prom/alertmanager:v0.18.0"
image: "jimmidyson/configmap-reload:v0.2.2"
image: "quay.io/coreos/kube-state-metrics:v1.6.0"
image: "prom/pushgateway:v0.8.0"
image: "jimmidyson/configmap-reload:v0.2.2"
image: "prom/prometheus:v2.11.1"
$ helm template -f grafana-default-values.yaml grafana-3.8.3.tgz | grep "image:"
image: "dduportal/bats:0.4.0"
image: "dduportal/bats:0.4.0"
image: "grafana/grafana:6.2.5"
$
将这些进行拉取并保存。
images=$(helm template prometheus-8.15.1.tgz -f prometheus-default-values.yaml | grep "image:" | awk '{print $2}' | awk -F'"' '{print $2}')
for image in $images
do
tag=${image##*:}
repo=${image%:*}
filename=$(echo "${repo}_${tag}.tar.gz" | tr '/' '_')
echo "repo: $repo"
echo "tag: $tag"
echo "filename: $filename"
docker pull $image
docker save $image | gzip > $filename
done
images=$(helm template -f grafana-default-values.yaml grafana-3.8.3.tgz | grep "image:" | awk '{print $2}' | awk -F'"' '{print $2}')
for image in $images
do
tag=${image##*:}
repo=${image%:*}
filename=$(echo "${repo}_${tag}.tar.gz" | tr '/' '_')
echo "repo: $repo"
echo "tag: $tag"
echo "filename: $filename"
docker pull $image
docker save $image | gzip > $filename
done
检查已保存的文件。
$ ls -l *.tar.gz
-rw-r--r-- 1 sotoiwa staff 67834060 8 16 10:57 dduportal_bats_0.4.0.tar.gz
-rw-r--r-- 1 sotoiwa staff 90113835 8 16 10:58 grafana_grafana_6.2.5.tar.gz
-rw-r--r-- 1 sotoiwa staff 9641412 8 16 10:56 jimmidyson_configmap-reload_v0.2.2.tar.gz
-rw-r--r-- 1 sotoiwa staff 24853721 8 16 10:56 prom_alertmanager_v0.18.0.tar.gz
-rw-r--r-- 1 sotoiwa staff 10946390 8 16 10:56 prom_node-exporter_v0.18.0.tar.gz
-rw-r--r-- 1 sotoiwa staff 50601034 8 16 10:56 prom_prometheus_v2.11.1.tar.gz
-rw-r--r-- 1 sotoiwa staff 7764275 8 16 10:56 prom_pushgateway_v0.8.0.tar.gz
-rw-r--r-- 1 sotoiwa staff 11985628 8 16 10:56 quay.io_coreos_kube-state-metrics_v1.6.0.tar.gz
$
完成了。
请参阅
- MinikubeにPrometheusとGrafanaをHelmチャートでデプロイする