Netdata – это решение с открытым исходным кодом для систем мониторинга и устранения неполадок.
Его можно использовать для мониторинга кластера Kubernetes и отображения информации о вашем кластере, включая использование памяти узла, ЦП, сеть и многое другое.
Дашборд Netdata даст вам широкий обзор вашего кластера Kubernetes, включая службы и поды, работающие на каждом узле.
В этом посте мы расскажем, как развернуть Netdata в кластере Kubernetes с помощью чарта Helm.
Этот тип установки развертывает один родительский модуль на главном и дочернем модулях на каждом рабочем узле.
Дочерние поды собирают метрики с узлов, на которых они работают, метрики kube-proxy, kubelet и cgroup – с хостов.
Дочерние поды также используют общий коллектор Prometheus и обнаружение служб для доставки метрик.
Предварительные условия
Прежде чем мы сможем установить Netdata в нашем кластере, вам необходимо выполнить следующие условия:
- Полнофункциональный кластер Kubernetes версии 1.9 и выше.
- Инструмент командной строки Kubectl
- Менеджер пакетов Helm версии 3.0.0 и выше.
Установим Netdata на Kubernetes с помощью Helm
Выполните следующие действия, чтобы установить Netdata в кластер Kubernetes с помощью чарта Helm.
Шаг 1 – Установите Helm в Linux | macOS
Далее мы покажем необходимые шаги, которые надо выполнить для установки Helm на Linux | macOS.
- Скачайте пакетт Helm по этой ссылке : https://github.com/helm/helm/releases
Распакуйте пакет с помощью tar -xvzf <downloaded-package>
- Переместите бинарник в usr/local/bin/helm
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
sudo ./get_helm.sh
Пользователи macOS также могут использовать инструмент управления пакетами brew.
$ brew install helm
$ helm version
version.BuildInfo{Version:"v3.4.0", GitCommit:"7090a89efc8a18f3d8178bf47d2462450349a004", GitTreeState:"clean", GoVersion:"go1.14.10"}
Добавьте репозиторий helm-charts, затем обновите helm
$ helm repo add stable https://charts.helm.sh/stable
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Шаг 2 – Установка Netdata с помощью чарта Helm
Вы можете установить Helm Chart двумя способами:
- Установить из репозитория Netdata’s Helm
- Клонировать репозиторий Netdata Git.
Как склонировать репозиторий Github
Убедитесь, что в вашей системе установлен git
Клонируем репозиторий git локально
git clone https://github.com/netdata/helmchart.git netdata-helmchart
Установим чарт:
helm install netdata ./netdata-helmchart/charts/netdata
$ helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
netdata default 1 2020-11-20 18:41:46.244774507 +0000 UTC deployed netdata-3.1.0 v1.26.0
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
netdata-child-fgh5c 2/2 Running 0 16h
netdata-child-qzhjp 2/2 Running 0 16h
netdata-child-ssmhp 2/2 Running 0 16h
netdata-parent-55d88fc784-x66ss 1/1 Running 0 16h
Шаг 3. Откройте Netdata-parent с помощью NodePort
В этом руководстве мы представим развертывание с помощью NodePort.
Netdata по умолчанию настроен для работы на порту 19999.
$ kubectl expose deployment netdata-parent --type="NodePort" --port 19999
Теперь вы можете проверить порт, на котором была предоставлена служба, с помощью команды kubectl get service:
$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 21h
netdata ClusterIP 10.99.202.135 <none> 19999/TCP 17h
netdata-parent NodePort 10.97.24.181 <none> 19999:30939/TCP 16h
Обратите внимание на использование namespace по умолчанию
В нашем развертывании служба netdata-parent была открыта на порту 30939.
Теперь вы можете получить доступ к панели управления netdata в своем браузере по адресу http://<yourmaster-IP>: NodePort
например http://172.16.1.4:30939 – это URL-адрес нашей панели инструментов.
Заключение
Мы успешно установили Netdata в нашем кластере Kubernetes с помощью инструмента командной строки Helm.
Ознакомьтесь с некоторыми из связанных статей, показанных ниже:
☸️ Изучаем Kubernetes: 5 лучших практик безопасности
☸️ Как настроить Grafana на Kubernetes
☸️ Как создать пользователя с правами администратора для доступа к Kubernetes Dashboard