«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Построить MySQL на Kubernetes и мониторинг с Prometheus и Grafana

Построить MySQL на Kubernetes и мониторинг с Prometheus и Grafana

Опубликовано в 2025-04-16
Просматривать:866

в этом уроке мы проведем, как настроить MySQL на кластере Kubernetes (K8S), а также интеграция Prometheus и Grafana для мониторинга. Мы будем использовать диаграммы Bitnami Helm для MySQL, Prometheus и Grafana и покажем вам, как создать пользовательскую панель Grafana для мониторинга MySQL.

]

] 1. Создайте пространство имен для вашей лаборатории

]

Сначала создайте пространство имен Kubernetes, где вы развернете свои компоненты MySQL и мониторинга.
]

]
kubectl create namespace my-lab
]

, чтобы проверить создание пространства имен, run:
]

]
kubectl get namespaces
]

это должно быть названо моей лабью в качестве одного из пространств имен в вашем кластере.

]

] 2. Установите MySQL с использованием русла

]

мы будем использовать диаграмму Bitnami Helm для установки MySQL в пространстве имен My-Lab. Если вы еще не добавили репозиторий диаграммы Bitnami, сделайте это со следующей командой:
]

]
helm repo add bitnami https://charts.bitnami.com/bitnami
]

теперь установите MySQL с этой командой:

]
helm upgrade --install mysql bitnami/mysql --namespace my-lab
]

, чтобы проверить статус и убедиться, что MySQL работает, используйте:
]

]
kubectl get pods --namespace my-lab
]

] Доступ к модуке MySQL

]

для подключения к MySQL, во -первых, вам нужно получить пароль MySQL из секретов Kubernetes. Используйте эту команду, чтобы получить секрет:
]

]
kubectl get secret -n my-lab
]

затем расшифровать слово mysql-root-pass-pass и mysql-password следующим образом:
]

]
kubectl get secret/mysql -oyaml -n my-lab
]

вы можете расшифровать пароль с помощью base64:

]
echo  | base64 -d
]

теперь обращайтесь к модуке MySQL с помощью kubectl Exec:
]

]
kubectl exec -it mysql-0 --namespace my-lab -- /bin/bash
]

, однажды внутри капсула, подключитесь к MySQL, используя root password:
]

]
mysql -u root -p
]

введите пароль декодированного корня при запросе.

]

создать базу данных и некоторые таблицы

]

, однажды внутри MySQL, создайте базу данных и несколько таблиц для мониторинга:

]
create database my_db_1;

use my_db_1;

create table my_table_1 (a varchar(100));
create table my_table_2 (a varchar(100));
create table my_table_3 (a varchar(100));

insert into my_table_1 values('One');
insert into my_table_1 values('One-One');

select * from my_table_1;
]

] 3. Установите Prometheus и Grafana

]

Далее мы установим Prometheus и Grafana для мониторинга MySQL.

установить Прометеус и Графана

]

сначала добавьте диаграммы Helm Community Community:
]

]
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
]

создать пространство имен Grafana:
]

]
kubectl create ns grafana
]

теперь установите стек Prometheus-Grafana с помощью Helm:
]

]
helm upgrade --install grafana prometheus-community/kube-prometheus-stack --namespace grafana
]

вы можете проверить установку, проверив стручки:
]

]
kubectl get pods -n grafana
]

разоблачить MySQL с LoadBalancer

]

, чтобы получить доступ к MySQL из -за пределов кластера Kubernetes, нам нужно выставить службу MySQL с помощью LoadBalancer. Редактировать сервис MySQL:

]
kubectl edit svc/mysql -n my-lab
]

изменить тип службы с кластера на LoadBalancer:
]

]
spec:
  type: LoadBalancer
]

подтвердите внешний IP был назначен:
]

]
kubectl get svc -n my-lab
]

Если вы используете Minikube, вам может потребоваться запустить туннель Minikube, чтобы выявить службу извне:
]

]
minikube tunnel
]

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

теперь, обращайтесь к MySQL извне, используя IP назначен:
]

]
mysql -h  -u root -p
]

] 4. Установите Exporter Prometheus mysql

]

нам нужно установить экспортер MySQL, чтобы собрать метрики MySQL и разоблачить их для Prometheus для Scrape.

]

создать конфигурацию экспортера

]

создать файл mysql-exporter-values.yaml с вашим соединением MySQL:
]

]
mysql:
  db: ""
  host: ""
  user: "root"
  pass: ""
  port: 3306
  protocol: ""

serviceMonitor:
  enabled: true
  additionalLabels:
    release: grafana
]

теперь установите экспортер MySQL с помощью Helm:
]

]
helm upgrade --install mysql-exporter prometheus-community/prometheus-mysql-exporter -f mysql-exporter-values.yaml
]

Port-Forward Prometheus mysql exporter

]

для пересылки метрик экспортера MySQL на локальную машину для тестирования, используйте:
]

]
kubectl port-forward svc/mysql-exporter-prometheus-mysql-exporter 9104 -n my-lab
]

проверить, что метрики выявляются путем посещения http: // localhost: 9104/metrics.

]

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

] 5. Подключите Графану с Прометеем

]

теперь, когда настраиваются Прометея и экспортер MySQL, давайте подключим Графану к Прометеусу.

]

Port-Forward Grafana

]

, чтобы получить доступ к панели панели Grafana, запустите следующую команду порта-образа:
]

]
kubectl port-forward svc/grafana 3000:80 -n grafana
]

это сделает Grafana доступной по адресу http: // localhost: 3000. Учетные данные для входа в систему по умолчанию:

username: admin
] Пароль: Prom-Operator

]

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

после входа в систему добавьте Prometheus в качестве источника данных в Grafana:

перейдите в конфигурацию> Источники данных.
] Добавьте Prometheus в качестве источника данных с URL http: // prometheus-operated: 9090.

]

] 6. Импорт мониторных панелей Grafana

]

для мониторинга MySQL мы можем импортировать предварительно сконфигурированные панели мониторинга из репозитория приборной панели Графаны.

]

импорт Dashboards

перейдите в Dashboards> Import и введите следующие идентификаторы панели управления:

]

идентификатор приборной панели 14057 (MySQL Обзор)
] ID DASHBOARD 7362 (MySQL Performance)

]

эти мониторные панели автоматически загружат и показывают соответствующие метрики MySQL, такие как соединения, запросы и использование ресурсов.

]

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

] 7. Заключение

]

вы успешно настроили MySQL в Kubernetes и интегрированный Prometheus и Grafana для мониторинга. Теперь вы можете отслеживать свой экземпляр MySQL в режиме реального времени, используя панели мониторинга Grafana.

]

key takeaways:

]
    ]
  • mysql работает на Kubernetes с помощью диаграммы Helm Bitnami.
  • Прометею используется для очистки метрик из MySQL, используя MySQL Exporter.
  • ]
  • Grafana настроен для визуализации данных, собранных Prometheus.
  • ]
  • вы можете получить доступ к MySQL снаружи, используя службу LoadBalancer.
  • ]
]

с этой настройкой вы можете легко масштабировать и отслеживать инфраструктуру базы данных на Kubernetes.

] ] ]
Заявление о выпуске Эта статья воспроизводится по адресу: https://dev.to/dm8ry/setting-p-mysql-on-kubernetes-with-prometheus-grafana-monitoring-3jd3?1. Если есть какие-либо нарушения, пожалуйста, свяжитесь с исследованием[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3