forked from kubernetes/kubernetes
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use Heapster as an in-built monitoring solution for Kubernetes in GCE.
Users will have an option to enable it when they setup their cluster (kube-up).
- Loading branch information
Showing
6 changed files
with
144 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,5 +34,6 @@ verify-prereqs | |
kube-up | ||
|
||
"${KUBE_ROOT}/cluster/validate-cluster.sh" | ||
setup-monitoring | ||
|
||
echo "Done" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
Heapster | ||
=========== | ||
|
||
Heapster enables monitoring of Kubernetes Clusters using [cAdvisor](https://github.com/google/cadvisor). It currently works only on GCE. | ||
|
||
#####Run Heapster in a Kubernetes cluster with an Influxdb backend and [Grafana](http://grafana.org/docs/features/influxdb) | ||
|
||
**Step 1: Setup Kube cluster** | ||
|
||
Fork the Kubernetes repository and [turn up a Kubernetes cluster](https://github.com/GoogleCloudPlatform/kubernetes-new#contents), if you haven't already. Make sure kubectl.sh is exported. | ||
|
||
**Step 2: Start a Pod with Influxdb, grafana and elasticsearch** | ||
|
||
```shell | ||
$ kubectl.sh create -f deploy/influx-grafana-pod.json | ||
``` | ||
|
||
**Step 3: Start Influxdb service** | ||
|
||
```shell | ||
$ kubectl.sh create -f deploy/influx-grafana-service.json | ||
``` | ||
|
||
**Step 4: Update firewall rules** | ||
|
||
Open up ports tcp:80,8083,8086,9200. | ||
```shell | ||
$ gcutil addfirewall --allowed=tcp:80,tcp:8083,tcp:8086,tcp:9200 --target_tags=kubernetes-minion heapster | ||
``` | ||
|
||
**Step 5: Start Heapster Pod** | ||
|
||
```shell | ||
$ kubectl.sh create -f deploy/heapster-pod.json | ||
``` | ||
|
||
Verify that all the pods and services are up and running: | ||
|
||
```shell | ||
$ kubectl.sh get pods | ||
``` | ||
```shell | ||
$ kubectl.sh get services | ||
``` | ||
|
||
To start monitoring the cluster using grafana, find out the the external IP of the minion where the 'influx-grafana' Pod is running from the output of `kubectl.sh get pods`, and visit `http://<minion-ip>:80`. | ||
|
||
To access the Influxdb UI visit `http://<minion-ip>:8083`. | ||
|
||
#####Hints | ||
* Grafana's default username and password is 'admin'. You can change that by modifying the grafana container [here](influx-grafana/deploy/grafana-influxdb-pod.json) | ||
* To enable memory and swap accounting on the minions follow the instructions [here](https://docs.docker.com/installation/ubuntulinux/#memory-and-swap-accounting) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{ | ||
"id": "heapster", | ||
"kind": "Pod", | ||
"apiVersion": "v1beta1", | ||
"desiredState": { | ||
"manifest": { | ||
"version": "v1beta1", | ||
"id": "heapster", | ||
"containers": [{ | ||
"name": "heapster", | ||
"image": "kubernetes/heapster", | ||
}] | ||
} | ||
}, | ||
"labels": { | ||
"name": "heapster", | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
{ | ||
"id": "influx-grafana", | ||
"kind": "Pod", | ||
"apiVersion": "v1beta1", | ||
"desiredState": { | ||
"manifest": { | ||
"version": "v1beta1", | ||
"id": "influx-grafana", | ||
"containers": [{ | ||
"name": "influxdb", | ||
"image": "kubernetes/heapster_influxdb", | ||
"ports": [ | ||
{"containerPort": 8083, "hostPort": 8083}, | ||
{"containerPort": 8086, "hostPort": 8086}, | ||
{"containerPort": 8090, "hostPort": 8090}, | ||
{"containerPort": 8099, "hostPort": 8099}] | ||
}, { | ||
"name": "grafana", | ||
"image": "kubernetes/heapster_grafana", | ||
"ports": [{"containerPort": 80, "hostPort": 80}], | ||
"env": [{"name": HTTP_USER, "value": admin}, | ||
{"name": HTTP_PASS, "value": admin}], | ||
}, { | ||
"name": "elasticsearch", | ||
"image": "dockerfile/elasticsearch", | ||
"ports": [{"containerPort": 9200, "hostPort": 9200}, | ||
{"containerPort": 9300}], | ||
}] | ||
}, | ||
}, | ||
"labels": { | ||
"name": "influxdb", | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
{ | ||
"id": "influx-master", | ||
"kind": "Service", | ||
"apiVersion": "v1beta1", | ||
"port": 8085, | ||
"containerPort": 8086, | ||
"provider": "kubernetes-default", | ||
"component": "influxdb" | ||
"selector": { "name": "influxdb" } | ||
} |