diff --git a/Readme.md b/Readme.md index 09fe660..b401481 100644 --- a/Readme.md +++ b/Readme.md @@ -10,14 +10,84 @@ According to the official deployment documentation [here](https://github.com/cor 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**: - sudo sed -e "/cadvisor-port=0/d" -i /etc/systemd/system/kubelet.service.d/10-kubeadm.conf - sudo sed -e "s/--authorization-mode=Webhook/--authentication-token-webhook=true --authorization-mode=Webhook/" -i /etc/systemd/system/kubelet.service.d/10-kubeadm.conf - sudo systemctl daemon-reload - sudo systemctl restart kubelet +```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: - 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 +```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: +* 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: +* Images: https://hub.docker.com/r/carlosedp/kube-state-metrics + +**Addon-resizer** + +* Source: +* Autobuild: +* 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 + +**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 diff --git a/build_images.sh b/build_images.sh new file mode 100644 index 0000000..557b452 --- /dev/null +++ b/build_images.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Retag Addon-resizer google images to have unified manifest on DockerHub +AOM_VERSION=2.1 + +docker pull gcr.io/google-containers/addon-resizer-arm64:$AOM_VERSION +docker pull gcr.io/google-containers/addon-resizer-arm:$AOM_VERSION + +docker tag gcr.io/google-containers/addon-resizer-arm64:$AOM_VERSION carlosedp/addon-resizer:$AOM_VERSION-arm64 +docker tag gcr.io/google-containers/addon-resizer-arm:$AOM_VERSION carlosedp/addon-resizer:$AOM_VERSION-arm + +docker push carlosedp/addon-resizer:$AOM_VERSION-arm +docker push carlosedp/addon-resizer:$AOM_VERSION-arm64 + +manifest-tool-linux-arm64 push from-args --platforms linux/arm,linux/arm64 --template carlosedp/addon-resizer:$AOM_VERSION-ARCH --target carlosedp/addon-resizer:$AOM_VERSION +manifest-tool-linux-arm64 push from-args --platforms linux/arm,linux/arm64 --template carlosedp/addon-resizer:$AOM_VERSION-ARCH --target carlosedp/addon-resizer:latest + + + + diff --git a/manifests/kube-state-metrics/kube-state-metrics-deployment.yaml b/manifests/kube-state-metrics/kube-state-metrics-deployment.yaml index f6b21df..41d450a 100644 --- a/manifests/kube-state-metrics/kube-state-metrics-deployment.yaml +++ b/manifests/kube-state-metrics/kube-state-metrics-deployment.yaml @@ -27,7 +27,7 @@ spec: - name: http-self containerPort: 9443 - name: addon-resizer - image: carlosedp/addon-resizer:2.1 + image: carlosedp/addon-resizer:2.1 resources: limits: cpu: 100m diff --git a/manifests/node-exporter/node-exporter-daemonset.yaml b/manifests/node-exporter/node-exporter-daemonset.yaml index 39c1ae0..71b36c3 100644 --- a/manifests/node-exporter/node-exporter-daemonset.yaml +++ b/manifests/node-exporter/node-exporter-daemonset.yaml @@ -20,7 +20,7 @@ spec: hostNetwork: true hostPID: true containers: - - image: carlosedp/node_exporter + - image: carlosedp/node_exporter args: #- "--web.listen-address=0.0.0.1:9100" - "--path.procfs=/host/proc"