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

Menyediakan MySQL pada Kubernetes dengan Pemantauan Prometheus & Grafana

Barbara Streisand
Lepaskan: 2024-11-12 20:01:02
asal
587 orang telah melayarinya

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
Salin selepas log masuk
Salin selepas log masuk

Untuk mengesahkan penciptaan ruang nama, jalankan:

kubectl get namespaces
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

Sekarang, pasang MySQL dengan arahan ini:

helm upgrade --install mysql bitnami/mysql --namespace my-lab
Salin selepas log masuk
Salin selepas log masuk

Untuk menyemak status dan memastikan MySQL berjalan, gunakan:

kubectl get pods --namespace my-lab
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk

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

kubectl get secret/mysql -oyaml -n my-lab
Salin selepas log masuk

Anda boleh menyahkod kata laluan menggunakan base64:

echo <encoded-password> | base64 -d
Salin selepas log masuk

Sekarang, akses pod MySQL menggunakan kubectl exec:

kubectl exec -it mysql-0 --namespace my-lab -- /bin/bash
Salin selepas log masuk

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

mysql -u root -p
Salin selepas log masuk

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;
Salin selepas log masuk

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
Salin selepas log masuk

Buat ruang nama grafana:

kubectl create ns grafana
Salin selepas log masuk

Sekarang, pasangkan timbunan Prometheus-Grafana menggunakan Helm:

helm upgrade --install grafana prometheus-community/kube-prometheus-stack --namespace grafana
Salin selepas log masuk

Anda boleh mengesahkan pemasangan dengan menyemak pod:

kubectl get pods -n grafana
Salin selepas log masuk

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
Salin selepas log masuk

Tukar jenis perkhidmatan daripada ClusterIP kepada LoadBalancer:

spec:
  type: LoadBalancer
Salin selepas log masuk

Sahkan IP luaran telah diberikan:

kubectl get svc -n my-lab
Salin selepas log masuk

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

minikube tunnel
Salin selepas log masuk

Setting Up MySQL on Kubernetes with Prometheus & Grafana Monitoring

Sekarang, akses MySQL secara luaran menggunakan IP yang diberikan:

kubectl create namespace my-lab
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

Sekarang, pasang pengeksport MySQL menggunakan Helm:

helm repo add bitnami https://charts.bitnami.com/bitnami
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan