10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-04-12

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

参考

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?