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.
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.
Gunakan arahan berikut untuk membina imej MySQL:
docker build -t my-mysql .
Pilihan -t menentukan nama imej sebagai my- 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.
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.
Buat objek penggunaan Kubernetes untuk menggunakan berbilang bekas MySQL ke dalam pod Kubernetes yang sama dan mulakan semula secara automatik jika bekas itu gagal:
rreeeIni 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.
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.
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!