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 and images to the ARM platform. This have been tested on a ARM64 Kubernetes cluster deployed as this article.
According to the official deployment documentation here, 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:
# 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:
# 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
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:
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 and ARM 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