Document cluster monitoring
This commit is contained in:
43
README.md
43
README.md
@@ -1 +1,44 @@
|
|||||||
# kube-prometheus
|
# kube-prometheus
|
||||||
|
|
||||||
|
This repository collects Kubernetes manifests, dashboards, and alerting rules
|
||||||
|
combined with documentationa and scripts to deploy them to get full cluster
|
||||||
|
monitoring setup working.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
First, you need a running Kubernetes cluster. If you don't have one, follow
|
||||||
|
the instructions of [bootkube](https://github.com/kubernetes-incubator/bootkube)
|
||||||
|
or [minikube](https://github.com/kubernetes/minikube).
|
||||||
|
|
||||||
|
etcd is an important component of a working Kubernetes cluster, but it's deployed
|
||||||
|
outside of it. The monitoring setup below assumes that it is made visible from
|
||||||
|
within the cluster through a headless Kubernetes service.
|
||||||
|
An example for bootkube's multi-vagrant setup is [here](/manifests/etcd/etcd-bootkube-vagrant-multi.yaml).
|
||||||
|
|
||||||
|
## Monitoring Kubernetes
|
||||||
|
|
||||||
|
The manifests used here use the [Prometheus controller](https://github.com/coreos/kube-prometheus-controller),
|
||||||
|
which manages Prometheus servers and their configuration in your cluster. To install the
|
||||||
|
controller, the [node_exporter](https://github.com/prometheus/node_exporter),
|
||||||
|
[Grafana](https://grafana.org) including default dashboards, and the Prometheus server, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
export KUBECONFIG=<path> # defaults to "~/.kube/config"
|
||||||
|
export KUBE_NAMESPACE=<ns> # defaults to "default"
|
||||||
|
hack/cluster-monitoring/deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
To tear it all down again, run:
|
||||||
|
|
||||||
|
```
|
||||||
|
hack/cluster-monitoring/teardown
|
||||||
|
```
|
||||||
|
|
||||||
|
After all pods are ready, you can reach:
|
||||||
|
|
||||||
|
* Prometheus UI on node port `30900`
|
||||||
|
* Grafana on node port `30902`
|
||||||
|
|
||||||
|
## Monitoring custom services
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|||||||
14
hack/cluster-monitoring/deploy
Executable file
14
hack/cluster-monitoring/deploy
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [ -z "${KUBECONFIG}" ]; then
|
||||||
|
KUBECONFIG=~/.kube/config
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${KUBE_NAMESPACE}" ]; then
|
||||||
|
KUBE_NAMESPACE=default
|
||||||
|
fi
|
||||||
|
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" create -f manifests/controllers/prometheus_controller.yaml
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" create -f manifests/exporters
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" create -f manifests/grafana
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" create -f manifests/prometheus
|
||||||
14
hack/cluster-monitoring/teardown
Executable file
14
hack/cluster-monitoring/teardown
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [ -z "${KUBECONFIG}" ]; then
|
||||||
|
KUBECONFIG=~/.kube/config
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${KUBE_NAMESPACE}" ]; then
|
||||||
|
KUBE_NAMESPACE=default
|
||||||
|
fi
|
||||||
|
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" delete -f manifests/exporters
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" delete -f manifests/grafana
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" delete -f manifests/prometheus
|
||||||
|
kubectl --kubeconfig="$KUBECONFIG" -n "$KUBE_NAMESPACE" delete -f manifests/controllers/prometheus_controller.yaml
|
||||||
Reference in New Issue
Block a user