в этом уроке мы проведем, как настроить MySQL на кластере Kubernetes (K8S), а также интеграция Prometheus и Grafana для мониторинга. Мы будем использовать диаграммы Bitnami Helm для MySQL, Prometheus и Grafana и покажем вам, как создать пользовательскую панель Grafana для мониторинга MySQL.
] Сначала создайте пространство имен Kubernetes, где вы развернете свои компоненты MySQL и мониторинга.
]
kubectl create namespace my-lab]
, чтобы проверить создание пространства имен, run:
]
kubectl get namespaces]
это должно быть названо моей лабью в качестве одного из пространств имен в вашем кластере.
] мы будем использовать диаграмму 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 из секретов 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;]
Далее мы установим 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]
теперь, обращайтесь к MySQL извне, используя IP назначен:
]
mysql -h]-u root -p
нам нужно установить экспортер 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.
]
теперь, когда настраиваются Прометея и экспортер MySQL, давайте подключим Графану к Прометеусу.
]Port-Forward Grafana
], чтобы получить доступ к панели панели Grafana, запустите следующую команду порта-образа:
]
kubectl port-forward svc/grafana 3000:80 -n grafana]
это сделает Grafana доступной по адресу http: // localhost: 3000. Учетные данные для входа в систему по умолчанию:
username: admin
]
Пароль: Prom-Operator
после входа в систему добавьте Prometheus в качестве источника данных в Grafana:
перейдите в конфигурацию> Источники данных.
]
Добавьте Prometheus в качестве источника данных с URL http: // prometheus-operated: 9090.
для мониторинга MySQL мы можем импортировать предварительно сконфигурированные панели мониторинга из репозитория приборной панели Графаны.
]импорт Dashboards
перейдите в Dashboards> Import и введите следующие идентификаторы панели управления:
] идентификатор приборной панели 14057 (MySQL Обзор)
]
ID DASHBOARD 7362 (MySQL Performance)
эти мониторные панели автоматически загружат и показывают соответствующие метрики MySQL, такие как соединения, запросы и использование ресурсов.
]
вы успешно настроили MySQL в Kubernetes и интегрированный Prometheus и Grafana для мониторинга. Теперь вы можете отслеживать свой экземпляр MySQL в режиме реального времени, используя панели мониторинга Grafana.
]key takeaways:
]с этой настройкой вы можете легко масштабировать и отслеживать инфраструктуру базы данных на Kubernetes.
] ] ]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3