Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@sheepland

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

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と表示されるかもしれません。その場合はしばし待ちましょう。

参考

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
4
Help us understand the problem. What are the problem?