mirror of
https://github.com/carlosedp/cluster-monitoring.git
synced 2024-11-20 19:07:17 +01:00
100 lines
4.3 KiB
Markdown
100 lines
4.3 KiB
Markdown
# Prometheus Operator for ARM platform
|
|
|
|
The Prometheus Operator for Kubernetes provides easy monitoring definitions for Kubernetes services and deployment and management of Prometheus instances.
|
|
|
|
This project aims on porting the [official manifests](https://github.com/coreos/prometheus-operator/tree/master/contrib/kube-prometheus) and images to the ARM platform. This have been tested on a ARM64 Kubernetes cluster deployed as [this article](medium.com/@carlosedp/building-an-arm-kubernetes-cluster-ef31032636f9).
|
|
|
|
## Changes to Kubeadm for Prometheus Operator
|
|
|
|
According to the official deployment documentation [here](https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/docs/kube-prometheus-on-kubeadm.md), a couple of changes on the cluster are required:
|
|
|
|
We need to expose the cadvisor that is installed and managed by the kubelet daemon and allow webhook token authentication. To do so, we do the following on **all the masters and nodes**:
|
|
|
|
```bash
|
|
# Enable cadvisor port
|
|
sudo sed -e "/cadvisor-port=0/d" -i /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
|
|
|
|
# Enable Webhook authorization
|
|
sudo perl -pi -e "s/(?:--authentication-token-webhook=true )*--authorization-mode=Webhook/--authentication-token-webhook=true --authorization-mode=Webhook/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
|
|
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl restart kubelet
|
|
```
|
|
|
|
In case you already have a Kubernetes deployed with kubeadm, change the address kube-controller-manager and kube-scheduler listens **on master node** in addition to previous kubelet change:
|
|
|
|
```bash
|
|
# Make kube-controller ad kube-scheduler listen on all addresses
|
|
sudo sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-controller-manager.yaml
|
|
sudo sed -e "s/- --address=127.0.0.1/- --address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-scheduler.yaml
|
|
```
|
|
|
|
## Images
|
|
|
|
This project depends on the following images:
|
|
|
|
**Alertmanager**
|
|
**Blackbox_exporter**
|
|
**Node_exporter**
|
|
**Snmp_exporter**
|
|
**Prometheus**
|
|
|
|
* Source: https://github.com/carlosedp/prometheus-ARM
|
|
* Autobuild: https://travis-ci.org/carlosedp/prometheus-ARM
|
|
* Images:
|
|
* https://hub.docker.com/r/carlosedp/prometheus/
|
|
* https://hub.docker.com/r/carlosedp/alertmanager/
|
|
* https://hub.docker.com/r/carlosedp/blackbox_exporter/
|
|
* https://hub.docker.com/r/carlosedp/node_exporter/
|
|
* https://hub.docker.com/r/carlosedp/snmp_exporter/
|
|
|
|
**ARM_exporter**
|
|
|
|
* Source: https://github.com/carlosedp/docker-arm_exporter
|
|
* Autobuild: https://travis-ci.org/carlosedp/docker-arm_exporter
|
|
* Images: https://hub.docker.com/r/carlosedp/arm_exporter/
|
|
|
|
**Prometheus-operator**
|
|
|
|
* Source: https://github.com/carlosedp/prometheus-operator
|
|
* Autobuild: No autobuild yet. Use provided `build_images.sh` script.
|
|
* Images: https://hub.docker.com/r/carlosedp/prometheus-operator
|
|
|
|
**Grafana**
|
|
|
|
* Source: https://github.com/carlosedp/grafana-ARM
|
|
* Autobuild: https://travis-ci.org/carlosedp/grafana-ARM
|
|
* Images: https://hub.docker.com/r/carlosedp/monitoring-grafana/
|
|
|
|
**Kube-state-metrics**
|
|
|
|
* Source: https://github.com/kubernetes/kube-state-metrics
|
|
* Autobuild: No autobuild yet. Use provided `build_images.sh` script.
|
|
* Images: https://hub.docker.com/r/carlosedp/kube-state-metrics
|
|
|
|
**Addon-resizer**
|
|
|
|
* Source:
|
|
* Autobuild: No autobuild yet. Use provided `build_images.sh` script.
|
|
* Images: https://hub.docker.com/r/carlosedp/addon-resizer
|
|
|
|
*Obs.* This image is a clone of [ARM64](https://console.cloud.google.com/gcr/images/google-containers/GLOBAL/addon-resizer-arm64) and [ARM](https://console.cloud.google.com/gcr/images/google-containers/GLOBAL/addon-resizer-arm64) with a manifest. It's cloned and generated by the `build_images.sh` script
|
|
|
|
**configmap_reload**
|
|
|
|
* Source: https://github.com/carlosedp/configmap-reload
|
|
* Autobuild: https://travis-ci.org/carlosedp/configmap-reload
|
|
* Images: https://hub.docker.com/r/carlosedp/configmap-reload
|
|
|
|
**prometheus-config-reloader**
|
|
|
|
* Source: https://github.com/coreos/prometheus-operator/tree/master/contrib/prometheus-config-reloader
|
|
* Autobuild: No autobuild yet. Use provided `build_images.sh` script.
|
|
* Images: https://hub.docker.com/r/carlosedp/prometheus-config-reloader
|
|
|
|
**SMTP-server**
|
|
|
|
Source: https://github.com/carlosedp/docker-smtp
|
|
Autobuild: https://travis-ci.org/carlosedp/docker-smtp
|
|
Images: https://hub.docker.com/r/carlosedp/docker-smtp
|