Rumah >pangkalan data >tutorial mysql >Menyediakan MySQL pada Kubernetes dengan Pemantauan Prometheus & Grafana

Menyediakan MySQL pada Kubernetes dengan Pemantauan Prometheus & Grafana

Barbara Streisand
Barbara Streisandasal
2024-11-12 20:01:02611semak imbas

Dalam tutorial ini, kami akan membincangkan cara menyediakan MySQL pada kelompok Kubernetes (K8s), bersama-sama dengan menyepadukan Prometheus dan Grafana untuk pemantauan. Kami akan menggunakan carta Bitnami Helm untuk MySQL, Prometheus dan Grafana dan menunjukkan kepada anda cara membuat papan pemuka Grafana tersuai untuk memantau MySQL.

1. Cipta Ruang Nama untuk Makmal Anda

Mula-mula, buat ruang nama Kubernetes di mana anda akan menggunakan MySQL dan komponen pemantauan anda.

kubectl create namespace my-lab

Untuk mengesahkan penciptaan ruang nama, jalankan:

kubectl get namespaces

Ini sepatutnya menyenaraikan makmal saya sebagai salah satu ruang nama dalam kelompok anda.

2. Pasang MySQL Menggunakan Helm

Kami akan menggunakan carta Helm Bitnami untuk memasang MySQL dalam ruang nama makmal saya. Jika anda belum menambah repositori carta Bitnami lagi, lakukan dengan arahan berikut:

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

Sekarang, pasang MySQL dengan arahan ini:

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

Untuk menyemak status dan memastikan MySQL berjalan, gunakan:

kubectl get pods --namespace my-lab

Akses MySQL Pod

Untuk menyambung ke MySQL, pertama sekali, anda perlu mendapatkan semula kata laluan MySQL daripada rahsia Kubernetes. Gunakan arahan ini untuk mendapatkan rahsia:

kubectl get secret -n my-lab

Kemudian nyahkod mysql-root-password dan mysql-password seperti berikut:

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

Anda boleh menyahkod kata laluan menggunakan base64:

echo <encoded-password> | base64 -d

Sekarang, akses pod MySQL menggunakan kubectl exec:

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

Sebaik sahaja di dalam pod, sambung ke MySQL menggunakan kata laluan akar:

mysql -u root -p

Masukkan kata laluan akar yang dinyahkodkan apabila digesa.

Buat Pangkalan Data dan Beberapa Jadual

Sebaik sahaja di dalam MySQL, cipta pangkalan data dan beberapa jadual untuk dipantau:

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. Pasang Prometheus dan Grafana

Seterusnya, kami akan memasang Prometheus dan Grafana untuk memantau MySQL.

Pasang Prometheus dan Grafana

Pertama, tambahkan carta Helm komuniti Prometheus:

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

Buat ruang nama grafana:

kubectl create ns grafana

Sekarang, pasangkan timbunan Prometheus-Grafana menggunakan Helm:

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

Anda boleh mengesahkan pemasangan dengan menyemak pod:

kubectl get pods -n grafana

Dedahkan MySQL dengan LoadBalancer

Untuk mengakses MySQL dari luar kelompok Kubernetes, kita perlu mendedahkan perkhidmatan MySQL menggunakan LoadBalancer. Edit perkhidmatan MySQL:

kubectl edit svc/mysql -n my-lab

Tukar jenis perkhidmatan daripada ClusterIP kepada LoadBalancer:

spec:
  type: LoadBalancer

Sahkan IP luaran telah diberikan:

kubectl get svc -n my-lab

Jika anda menggunakan Minikube, anda mungkin perlu menjalankan terowong minikube untuk mendedahkan perkhidmatan secara luaran:

minikube tunnel

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

Sekarang, akses MySQL secara luaran menggunakan IP yang diberikan:

kubectl create namespace my-lab

4. Pasang Prometheus MySQL Exporter

Kami perlu memasang Pengeksport MySQL untuk mengumpulkan metrik MySQL dan mendedahkannya kepada Prometheus untuk mengikis.

Buat Konfigurasi Pengeksport

Buat fail mysql-exporter-values.yaml dengan butiran sambungan MySQL anda:

kubectl get namespaces

Sekarang, pasang pengeksport MySQL menggunakan Helm:

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

Pengeksport MySQL Port-Forward Prometheus

Untuk memajukan metrik pengeksport MySQL ke mesin tempatan anda untuk ujian, gunakan:

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

Sahkan metrik sedang didedahkan dengan melawati http://localhost:9104/metrics.

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

5. Sambungkan Grafana kepada Prometheus

Sekarang Prometheus dan pengeksport MySQL telah disediakan, mari sambungkan Grafana ke Prometheus.

Port-Forward Grafana

Untuk mengakses papan pemuka Grafana, jalankan arahan port-forward berikut:

kubectl get pods --namespace my-lab

Ini akan menjadikan Grafana boleh diakses di http://localhost:3000. Bukti kelayakan log masuk lalai ialah:

Nama pengguna: admin
Kata laluan: prom-operator

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

Setelah log masuk, tambah Prometheus sebagai sumber data dalam Grafana:

Pergi ke Konfigurasi > Sumber Data.
Tambahkan Prometheus sebagai sumber data dengan URL http://prometheus-operated:9090.

6. Import Papan Pemuka Grafana

Untuk memantau MySQL, kami boleh mengimport papan pemuka prakonfigurasi daripada repositori papan pemuka Grafana.

Import Papan Pemuka

Pergi ke Papan Pemuka > Import dan masukkan ID papan pemuka berikut:

ID Papan Pemuka 14057 (Gambaran Keseluruhan MySQL)
ID Papan Pemuka 7362 (Prestasi MySQL)

Papan pemuka ini akan dimuatkan secara automatik dan menunjukkan metrik MySQL yang berkaitan, seperti sambungan, pertanyaan dan penggunaan sumber.

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

7. Kesimpulan

Anda telah berjaya menyediakan MySQL dalam Kubernetes dan menyepadukan Prometheus dan Grafana untuk pemantauan. Anda kini boleh memantau tika MySQL anda dalam masa nyata menggunakan papan pemuka Grafana.

Pengambilan Utama:

  • MySQL berjalan pada Kubernetes menggunakan carta Helm Bitnami.
  • Prometheus digunakan untuk mengikis metrik daripada MySQL menggunakan pengeksport MySQL.
  • Grafana dikonfigurasikan untuk menggambarkan data yang dikumpul oleh Prometheus.
  • Anda boleh mengakses MySQL secara luaran menggunakan perkhidmatan LoadBalancer.

Dengan persediaan ini, anda boleh menskala dan memantau infrastruktur pangkalan data anda dengan mudah di Kubernetes.

Atas ialah kandungan terperinci Menyediakan MySQL pada Kubernetes dengan Pemantauan Prometheus & Grafana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn