Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kaedah PHP untuk mencapai ketersediaan tinggi kontena pangkalan data

Kaedah PHP untuk mencapai ketersediaan tinggi kontena pangkalan data

WBOY
WBOYasal
2023-05-18 13:10:361151semak imbas

Dengan perkembangan pesat pengkomputeran awan, teknologi kontena telah mencapai kemajuan besar dalam penggunaan aplikasi dan pengurusan sumber. Pangkalan data adalah teras pembangunan perisian moden, bertanggungjawab untuk logik perniagaan utama dan penyimpanan data. Untuk meningkatkan ketersediaan pangkalan data, teknologi kontena juga telah diperkenalkan ke dalam penggunaan pangkalan data.

Artikel ini akan memperkenalkan cara menggunakan Docker dan Kubernetes untuk mencapai ketersediaan tinggi kontena pangkalan data PHP.

1. Pangkalan data MySQL Dockerized

Docker ialah alat kontena aplikasi popular yang boleh membungkus aplikasi dan kebergantungan mereka dengan mudah ke dalam imej Docker dan menjalankannya dalam bekas . Kami boleh menggunakan imej Docker untuk menyimpan pangkalan data MySQL untuk meningkatkan ketersediaannya.

  1. Buat Dockerfile

Mula-mula, buat fail bernama Dockerfile untuk membina imej Docker. Fail Docker mengandungi semua arahan yang diperlukan untuk membina imej, termasuk menentukan imej asas, menambah fail dan menetapkan pembolehubah persekitaran. Arahan

FROM mysql:5.7

ADD my.cnf /etc/mysql/my.cnf

ENV MYSQL_ROOT_PASSWORD=root

FROM menentukan imej asas MySQL yang akan kami gunakan, dan arahan ADD menambah fail my.cnf pada bekas dan menetapkan pembolehubah persekitaran MYSQL_ROOT_PASSWORD kepada akar.

  1. Bina imej Docker

Gunakan arahan berikut untuk membina imej MySQL:

docker build -t my-mysql .

Pilihan -t menentukan nama imej sebagai my- mysql.

  1. Jalankan bekas MySQL

Seterusnya, gunakan arahan berikut untuk menjalankan imej MySQL dalam bekas:

docker run -d --name my-mysql -p 3306:3306 
           -e MYSQL_ROOT_PASSWORD=root 
           my-mysql

Pilihan -d menentukan bahawa bekas berjalan di latar belakang, --name menentukan nama kontena sebagai my-mysql, pilihan -p memetakan port dalaman kontena 3306 ke port hos 3306, dan menggunakan pembolehubah persekitaran untuk menetapkan kata laluan pengguna super MySQL.

Kini, kami telah berjaya memasukkan MySQL dan boleh mengaksesnya melalui localhost:3306.

2. Gunakan Kubernetes untuk mengurus bekas MySQL

Kubernetes ialah sistem orkestrasi kontena sumber terbuka yang digunakan untuk mengautomasikan penggunaan, pengembangan dan pengurusan aplikasi. Ia menyediakan banyak ciri berguna seperti pengimbangan beban automatik, penskalaan automatik, penyimpanan kontena, dll.

Seterusnya, kami akan menggunakan Kubernetes untuk mengurus bekas MySQL untuk meningkatkan ketersediaannya.

  1. Buat Objek Perkhidmatan Kubernetes

Buat Objek Perkhidmatan Kubernetes yang mengikat semua bekas MySQL ke dalam perkhidmatan yang sama:

apiVersion: v1
kind: Service
metadata:
  name: my-mysql
spec:
  ports:
  - port: 3306
  selector:
    app: my-mysql

Ini akan mewujudkan perkhidmatan Kubernetes objek bernama my-mysql mendengar pada port 3306 di dalam bekas.

  1. Buat objek pengerahan Kubernetes

Buat objek penggunaan Kubernetes untuk menggunakan berbilang bekas MySQL ke dalam pod Kubernetes yang sama dan mulakan semula secara automatik jika bekas itu gagal:

rreee

Ini akan mencipta objek penggunaan Kubernetes bernama my-mysql yang mengandungi 3 bekas MySQL. Jika mana-mana bekas gagal, Kubernetes akan memulakan semulanya secara automatik.

Kini, kami telah berjaya menggunakan Kubernetes untuk mengurus bekas MySQL dan meningkatkan ketersediaannya.

3. Gunakan PHP untuk menyambung ke bekas MySQL

Akhir sekali, kami akan menggunakan PHP untuk menyambung ke bekas MySQL dan melakukan beberapa operasi pangkalan data yang mudah.

  1. Buat fail PHP

Buat fail PHP bernama test.php untuk menyambung ke bekas MySQL dan melaksanakan pertanyaan SQL:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-mysql
  labels:
    app: my-mysql
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-mysql
  template:
    metadata:
      labels:
        app: my-mysql
    spec:
      containers:
      - name: mysql
        image: my-mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "root"

Fail The menyambung ke my-mysql.default.svc.cluster.local, menyambung ke bekas MySQL menggunakan nama pengguna dan akar kata laluan, dan mendapatkan semula data daripada jadual bernama pengguna.

  1. Gunakan PHP

Muat naik fail test.php ke pelayan web dan mulakan pelayan web. Kini kita boleh mengakses bekas MySQL dengan mengakses pelayan web. Contohnya, jika alamat IP pelayan web ialah XXX.XXX.XXX.XXX, kami boleh menanyakan pangkalan data MySQL dengan mengakses http://XXX.XXX.XXX.XXX/test.php.

Kesimpulan

Teknologi kontena memberikan banyak faedah untuk pembangunan perisian moden, termasuk kemudahalihan aplikasi, kebolehskalaan dan kebolehselenggaraan. Dengan menggunakan Docker dan Kubernetes, kami boleh menyimpan pangkalan data MySQL dengan mudah dan meningkatkan ketersediaan dan kebolehpercayaan pangkalan data. Jika anda sedang membangunkan aplikasi PHP dan perlu mengurus pangkalan data MySQL, kontena adalah pilihan penting.

Atas ialah kandungan terperinci Kaedah PHP untuk mencapai ketersediaan tinggi kontena pangkalan data. 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