2021年5月1日土曜日

Promethues を helm chart で構築してみた

Promethues を helm chart で構築してみた

概要

Promethues を helm を使ってインストールしてみました

環境

  • kubernetes 1.20.4
  • helm 3.5.2
  • Grafana helm chart 13.8.0

事前準備

何でもいいので pv を用意しましょう
local を使う方法はこちら
default の storageClass を用意しても OK です
nfs で default の storageClass を作成する方法はこちら

リポジトリインストール

  • helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  • helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics
  • helm repo update

とりあえず使ってみる

  • helm install promethues prometheus-community/prometheus
  • kubectl get pod
NAME                                                  READY   STATUS    RESTARTS   AGE
nfs-subdir-external-provisioner-78cc5b4979-tnnnj      1/1     Running   0          17d
promethues-kube-state-metrics-55c795cd7f-mgg9b        1/1     Running   0          19m
promethues-prometheus-alertmanager-6b68776f64-7xlcq   2/2     Running   0          19m
promethues-prometheus-node-exporter-65j44             1/1     Running   0          19m
promethues-prometheus-node-exporter-j8hx8             1/1     Running   0          19m
promethues-prometheus-node-exporter-wb9bf             1/1     Running   0          19m
promethues-prometheus-pushgateway-844488b78d-k72vt    1/1     Running   0          19m
promethues-prometheus-server-d47764bc7-s5zjv          2/2     Running   0          19m

デフォルトだと nodeexporter や pushgateway, alertmanager なども同時にインストールされるようです
nodeexporter は各ノードにインストールされます

NodePort でアクセスできるようにする

公式のヘルプだと port-forward を使ってローカルからアクセスする方法が表示されます
それだといろいろと面倒なので NodePort でアクセスできるようにします

  • helm upgrade promethues prometheus-community/prometheus --set server.service.type=NodePort --set server.service.nodePort=32090
  • kubectl get svc
NAME                                  TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes                            ClusterIP   10.96.0.1        <none>        443/TCP        17d
promethues-kube-state-metrics         ClusterIP   10.97.206.173    <none>        8080/TCP       26m
promethues-prometheus-alertmanager    ClusterIP   10.106.111.197   <none>        80/TCP         26m
promethues-prometheus-node-exporter   ClusterIP   None             <none>        9100/TCP       26m
promethues-prometheus-pushgateway     ClusterIP   10.98.175.145    <none>        9091/TCP       26m
promethues-prometheus-server          NodePort    10.110.171.176   <none>        80:32090/TCP   26m

これで http://node:32090 で Prometheus サーバにアクセスできます

監視先を追加する方法

extraScrapeConfigs という values が用意されているのでこれを使います
scrape_configs を直接変更することもできますがデフォルトの k8s の管理 Pod の監視設定などを上書きしてしまうので、extraScrapeConfigs で追記するようにしましょう

- job_name: site_exporter
  scheme: https
  metrics_path: /metrics
  static_configs:
  - targets:
    - kaka-request-dumper.herokuapp.com
  • helm upgrade promethues prometheus-community/prometheus --set rbac.create=true --set server.service.type=NodePort --set server.service.nodePort=32090 --set-file extraScrapeConfigs=my_values.yml

設定がうまく反映されていないようであれば Pod を再起動しましょう

  • kubectl rollout restart deploy promethues-prometheus-server

おまけ: values の取得

  • helm get values promethues -a > promethues_values.yml

参考サイト

0 件のコメント:

コメントを投稿