我想在离线的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チャートでデプロイする
广告
将在 10 秒后关闭
bannerAds