Help us understand the problem. What is going on with this article?

KubernetesをHeapster + InfluxDB + Grafanaでモニタリングする

More than 1 year has passed since last update.

Heapsterでメトリックスを取得し、そのメトリックスをInfluxDBへ保存し、Grafanaでモニタリングします。
このように書くと大変に思えますが、Kubernetesだったらポンとインストールすれば出来上がります。

Kubernetesクラスタにインストールする

注意: このインストールは本番環境ではなく開発環境でお試し下さい。

1, まず適当なディレクトリにheapsterをgit clone

$ git clone https://github.com/kubernetes/heapster.git

2, GrafanaのService TypeをNodePortにする

$ cd headpster/
# grafana.yamlを編集し、type: NodePortにする
$ vim deploy/kube-config/influxdb/grafana.yaml

# 以下のようにする
$ git diff
diff --git a/deploy/kube-config/influxdb/grafana.yaml b/deploy/kube-config/influxdb/grafana.yaml
index 0bd35728..266f47ab 100644
--- a/deploy/kube-config/influxdb/grafana.yaml
+++ b/deploy/kube-config/influxdb/grafana.yaml
@@ -64,7 +64,7 @@ spec:
   # or through a public IP.
   # type: LoadBalancer
   # You could also use NodePort to expose the service at a randomly-generated port
-  # type: NodePort
+  type: NodePort
   ports:
   - port: 80
     targetPort: 3000

3, Heapster, InfluxDB, Grafanaのリソースを作成

$ kubectl apply -f deploy/kube-config/influxdb/
deployment "monitoring-grafana" created
service "monitoring-grafana" created
serviceaccount "heapster" created
deployment "heapster" created
service "heapster" created
deployment "monitoring-influxdb" created
service "monitoring-influxdb" created

$ kubectl apply -f deploy/kube-config/rbac/heapster-rbac.yaml
clusterrolebinding "heapster" created

kubectl get all -n kube-systemをうって Heapster, InfluxDB, Grafanaのリソースが作成されていることを確認する。

4, Grafanaへアクセス

$ kubectl describe svc monitoring-grafana -n kube-system | grep NodePort:で表示されるportとnodeのIPを使ってアクセスする

最初はこんな画面が表示される。
Add Usersと表示されているが別にユーザ作成しなくてもよい。
スクリーンショット 2018-04-12 22.35.19.png

上のHomeをクリックして、Clusterを選ぶとこんな画面が表示される。

スクリーンショット 2018-04-12 22.35.49.png

上のHomeをクリックして、Podsを選ぶとこんな画面が表示される。

スクリーンショット 2018-04-12 22.36.02.png

簡単にカッコいい画面がみれて気分がいいですね。

Minikubeにインストールする

Minikubeの場合はさらに簡単です。addonsが提供されているので、以下ですみます。

# インストール
$ minikube addons enable heapster

# minikubeならHeapster addonを有効にした時点でInfluxDBもGrafanaも有効になる

# 画面をみる
$ minikube service monitoring-grafana -n kube-system

kubectl topコマンドを使ってリソースの使用量を確認してみる

Heapsterをインストールするとkubectl topコマンドを使ってリソース(CPU/Memory/Storage)のメトリックスが見れるようになります。

$ kubectl top pod
NAME                    CPU(cores)   MEMORY(bytes)
nginx-8b8ddbf99-z7vtl   0m           1Mi

$ kubectl top node
NAME           CPU(cores)   CPU%      MEMORY(bytes)   MEMORY%
k8s-master     213m         10%       2801Mi          36%
worker-node1   132m         6%        2386Mi          30%

Heapsterをインストールしたばかりのときにkubectl topコマンドを使うと
error: metrics not available yetと表示されるかもしれません。その場合はしばし待ちましょう。

参考

https://github.com/kubernetes/heapster

studyplus
学習管理アプリ「Studyplus」を開発・運営する会社です
https://info.studyplus.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした