Наблюдение и управление производительностью кластера Kubernetes имеет решающее значение для поддержания работоспособности приложений, выявления проблем и обеспечения высокой доступности. Я расскажу вам, как настроить комплексное решение для мониторинга с использованием kubectl и Helm, развернуть Grafana, Loki и Prometheus в вашем кластере и настроить Ingress для внешнего доступа.
Мы рассмотрим следующие ключевые этапы:
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть следующее:
Шаг 1. Создайте пространство имен для мониторинга
Пространства имен помогают логически разделить и организовать ресурсы Kubernetes. Чтобы избежать конфликтов и разделить ресурсы мониторинга, мы создадим выделенное пространство имен для инструментов мониторинга.
1. Примените пространство имен мониторинга. Сохраните следующее содержимое в файле monitoring-namespace.yml:
apiVersion: v1
вид: пространство имен
метаданные:
имя: мониторинг
ярлыки:
app.kubernetes.io/name: мониторинг
app.kubernetes.io/instance: мониторинг
2. Примените пространство имен, используя kubectl:
kubectl apply -f мониторинг-namespace.yml
Эта команда создает в вашем кластере Kubernetes новое пространство имен, называемое мониторингом.
Шаг 2. Установите Helm и добавьте репозиторий Grafana
Helm, менеджер пакетов Kubernetes, упрощает развертывание сложных приложений, таких как Grafana, Loki и Prometheus. Вот как установить Helm и настроить необходимый репозиторий.
sudo snap install helm --classic
Эта команда устанавливает Helm с помощью Snap, системы управления пакетами для Linux.
репозиторий Helm, добавьте графану https://grafana.github.io/helm-charts
обновление репозитория Helm
Это гарантирует, что у Helm будут самые последние диаграммы из репозитория Grafana.
Шаг 3. Разверните Локи, Прометея и Графану с помощью Helm
Теперь, когда Helm установлен и настроен, мы развернем Loki, Prometheus и Grafana, используя диаграмму Grafana Helm.
1. Запустите команду установки Helm:
обновление шлема --install loki --namespace=мониторинг grafana/loki-stack \
--набор grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false,loki.persistence.enabled=true,loki.persistence.storageClassName=gp2,loki. persistence.size=100Gi --set nodeSelector.name=node.kubernetes.io/description=all_production
A: Grafana: **Это позволяет использовать Grafana, инструмент панели мониторинга, в диаграмме Helm.
**B: Prometheus: **Prometheus включен для сбора метрик, тогда как постоянные тома для Alertmanager и сервера Prometheus отключены для упрощения настройки хранилища.
**C: Loki: Loki, инструмент агрегирования журналов, включает постоянное хранилище томов емкостью 100 Гигабайт с использованием класса хранилища gp2.
Флаг --install гарантирует, что стек будет установлен, если он не был развернут ранее. Флаг --upgrade обновляет стек до последней версии, если он уже установлен.
2. Проверьте установку: После успешной установки проверьте состояние модулей, работающих в пространстве имен мониторинга:
kubectl get pods -n мониторинг
Вы должны увидеть модули для Grafana, Prometheus, Loki и Promtail (который доставляет журналы в Loki).
Шаг 4. Настройте Ingress для внешнего доступа
Чтобы получить доступ к Grafana, Prometheus или Loki из-за пределов вашего кластера, вам необходимо настроить Ingress-ресурс. Это обеспечивает внешний доступ HTTP/S к службам мониторинга.
*1. Создайте входящий ресурс: сохраните следующий пример в файле monitoring-ingress.yml:
*
apiVersion: networking.k8s.io/v1
вид: Вход
метаданные:
имя: вход мониторинга
пространство имен: мониторинг
аннотации:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: letsencrypt
спецификация:
спасибо:
- хосты:
- ваш-домен.com
секретное имя: имя сертификата
правила:
- хост: ваш-домен.com
http:
пути:
- путь: /
Тип пути: Префикс
бэкэнд:
услуга:
имя: Локи-графана
порт:
номер: 80
Эта конфигурация Ingress устанавливает маршрутизацию для Grafana, Prometheus и Loki под доменным именем {your-domain.com}. Вам нужно будет заменить your-domain.com своим фактическим доменом и настроить DNS так, чтобы он указывал на внешний IP-адрес вашего кластера.
2. Примените входящий ресурс:
kubectl apply -f мониторинг-ingress.yml
После применения контроллер Ingress будет маршрутизировать трафик к соответствующим службам на основе имени хоста.
kubectl get ingress -n мониторинг
Убедитесь, что в столбце АДРЕС указан внешний IP-адрес, чтобы службы были доступны извне.
Шаг 5. Доступ к панели мониторинга
Как только Ingress будет правильно настроен и DNS укажет на ваш кластер, вы сможете получить доступ к Grafana, Prometheus и Loki.
Заключение
С помощью всего лишь нескольких команд вы успешно развернули полный стек мониторинга с помощью Helm в своем кластере Kubernetes. Используя диаграммы Helm, вы упрощаете развертывание сложных приложений, таких как Grafana, Loki и Prometheus, а также интегрируете Ingress для облегчения доступа. Теперь у вас есть мощная настройка наблюдения, которая позволяет отслеживать журналы и показатели в режиме реального времени, помогая более эффективно управлять и оптимизировать ваши приложения Kubernetes.
Это развертывание на основе Helm обеспечивает масштабируемость и упрощает обновления или изменения конфигурации, упрощая управление наблюдаемостью в производственной среде.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3