Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Methode zur Erzielung einer hohen Verfügbarkeit der Datenbankcontainerisierung

PHP-Methode zur Erzielung einer hohen Verfügbarkeit der Datenbankcontainerisierung

WBOY
WBOYOriginal
2023-05-18 13:10:361182Durchsuche

Mit der rasanten Entwicklung des Cloud Computing hat die Containertechnologie große Fortschritte bei der Anwendungsbereitstellung und dem Ressourcenmanagement gemacht. Die Datenbank ist der Kern der modernen Softwareentwicklung und verantwortlich für die wichtige Geschäftslogik und Datenspeicherung. Um die Verfügbarkeit der Datenbank zu verbessern, wurde auch die Containerisierungstechnologie in die Datenbankbereitstellung eingeführt.

In diesem Artikel wird erläutert, wie Sie mit Docker und Kubernetes eine hohe Verfügbarkeit der PHP-Datenbankcontainerisierung erreichen.

1. Dockerisierte MySQL-Datenbank

Docker ist ein beliebtes Anwendungscontainerisierungstool, das Anwendungen und ihre Abhängigkeiten einfach in Docker-Images packen und in Containern ausführen kann. Wir können Docker-Images verwenden, um die MySQL-Datenbank zu containerisieren und so ihre Verfügbarkeit zu verbessern.

  1. Dockerfile erstellen

Erstellen Sie zunächst eine Datei mit dem Namen Dockerfile zum Erstellen des Docker-Images. Die Docker-Datei enthält alle zum Erstellen des Images erforderlichen Anweisungen, einschließlich der Angabe des Basis-Images, des Hinzufügens von Dateien und des Festlegens von Umgebungsvariablen.

FROM mysql:5.7

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

ENV MYSQL_ROOT_PASSWORD=root

Die FROM-Anweisung gibt das MySQL-Basis-Image an, das wir verwenden werden, die ADD-Anweisung fügt die Datei my.cnf zum Container hinzu und setzt die Umgebungsvariable MYSQL_ROOT_PASSWORD auf root.

  1. Erstellen Sie das Docker-Image

Verwenden Sie den folgenden Befehl, um das MySQL-Image zu erstellen:

docker build -t my-mysql .

Die Option -t gibt den Imagenamen als my-mysql an.

  1. Führen Sie den MySQL-Container aus

Als nächstes verwenden Sie den folgenden Befehl, um das MySQL-Image im Container auszuführen:

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

Die Option -d gibt den Container an, der im Hintergrund ausgeführt werden soll, die Option --name gibt den Containernamen an my-mysql und die Option -p. Der interne Port 3306 wird dem Host-Port 3306 zugeordnet und eine Umgebungsvariable wird verwendet, um das Passwort des MySQL-Superusers festzulegen.

Jetzt haben wir MySQL erfolgreich containerisiert und können über localhost:3306 darauf zugreifen.

2. Verwenden Sie Kubernetes zur Verwaltung von MySQL-Containern

Kubernetes ist ein Open-Source-Container-Orchestrierungssystem zur Automatisierung der Bereitstellung, Erweiterung und Verwaltung von Anwendungen. Es bietet viele nützliche Funktionen wie automatischen Lastausgleich, automatische Skalierung, Containerspeicherung usw.

Als nächstes werden wir Kubernetes verwenden, um MySQL-Container zu verwalten und ihre Verfügbarkeit zu verbessern.

  1. Erstellen Sie ein Kubernetes-Dienstobjekt.

Erstellen Sie ein Kubernetes-Dienstobjekt, das alle MySQL-Container in denselben Dienst bindet:

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

Dadurch wird ein Kubernetes-Dienstobjekt mit dem Namen my-mysql erstellt, das im Container-Port auf 3306 wartet.

  1. Erstellen Sie ein Kubernetes-Bereitstellungsobjekt.

Erstellen Sie ein Kubernetes-Bereitstellungsobjekt, das mehrere MySQL-Container im selben Kubernetes-Pod bereitstellt und diese automatisch neu startet, wenn ein Container ausfällt:

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"

Dadurch wird ein Kubernetes-Bereitstellungsobjekt mit dem Namen my-mysql erstellt. inklusive 3 MySQL-Containern. Wenn ein Container ausfällt, startet Kubernetes ihn automatisch neu.

Jetzt haben wir Kubernetes erfolgreich zur Verwaltung des MySQL-Containers und zur Verbesserung seiner Verfügbarkeit eingesetzt.

3. Verwenden Sie PHP, um eine Verbindung zum MySQL-Container herzustellen.

Abschließend müssen wir PHP verwenden, um eine Verbindung zum MySQL-Container herzustellen und einige einfache Datenbankoperationen durchzuführen.

  1. PHP-Datei erstellen

Erstellen Sie eine PHP-Datei namens test.php, um eine Verbindung zum MySQL-Container herzustellen und SQL-Abfragen auszuführen:

<?php
$host = "my-mysql.default.svc.cluster.local";
$username = "root";
$password = "root";
$dbname = "test";

$conn = mysqli_connect($host, $username, $password, $dbname);

if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
  }
} else {
  echo "0 results";
}

mysqli_close($conn);
?>

Diese Datei stellt eine Verbindung zu my-mysql.default.svc.cluster.local unter Verwendung von Benutzername und her Passwort root Stellen Sie eine Verbindung zum MySQL-Container her und rufen Sie Daten aus der Tabelle „Benutzer“ ab.

  1. PHP bereitstellen

Laden Sie die test.php-Datei auf den Webserver hoch und starten Sie den Webserver. Jetzt können wir auf den MySQL-Container zugreifen, indem wir auf den Webserver zugreifen. Wenn die IP-Adresse des Webservers beispielsweise XXX.XXX.XXX.XXX lautet, können wir die MySQL-Datenbank abfragen, indem wir auf http://XXX.XXX.XXX.XXX/test.php zugreifen.

Fazit

Containerisierungstechnologie bietet viele Vorteile für die moderne Softwareentwicklung, einschließlich Anwendungsportabilität, Skalierbarkeit und Wartbarkeit. Durch die Verwendung von Docker und Kubernetes können wir die MySQL-Datenbank einfach containerisieren und die Verfügbarkeit und Zuverlässigkeit der Datenbank verbessern. Wenn Sie PHP-Anwendungen entwickeln und MySQL-Datenbanken verwalten müssen, ist die Containerisierung eine wesentliche Option.

Das obige ist der detaillierte Inhalt vonPHP-Methode zur Erzielung einer hohen Verfügbarkeit der Datenbankcontainerisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:So verwenden Sie CI/CD mit PHPNächster Artikel:So verwenden Sie CI/CD mit PHP