クラウド コンピューティングの急速な発展に伴い、コンテナ テクノロジーはアプリケーションの展開とリソース管理において大きな進歩を遂げました。データベースは最新のソフトウェア開発の中核であり、主要なビジネス ロジックとデータ ストレージを担当します。データベースの可用性を向上させるために、コンテナ化テクノロジもデータベースの展開に導入されています。
この記事では、Docker と Kubernetes を使用して PHP データベースのコンテナ化の高可用性を実現する方法を紹介します。
1. Docker 化された MySQL データベース
Docker は、アプリケーションとその依存関係を Docker イメージに簡単にパッケージ化し、コンテナー内で実行できる、人気のあるアプリケーション コンテナー化ツールです。 Docker イメージを使用して MySQL データベースをコンテナ化し、可用性を向上させることができます。
まず、Docker イメージを構築するための Dockerfile という名前のファイルを作成します。 Dockerfile には、ベース イメージの指定、ファイルの追加、環境変数の設定など、イメージの構築に必要なすべての手順が含まれています。
FROM mysql:5.7 ADD my.cnf /etc/mysql/my.cnf ENV MYSQL_ROOT_PASSWORD=root
FROM 命令は使用する MySQL ベース イメージを指定し、ADD 命令は my.cnf ファイルをコンテナに追加し、環境変数 MYSQL_ROOT_PASSWORD を root に設定します。
次のコマンドを使用して、MySQL イメージを構築します。
docker build -t my-mysql .
-t オプションでは、イメージ名を my-mysql として指定します。
次に、次のコマンドを使用して、コンテナ内で MySQL イメージを実行します。
docker run -d --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root my-mysql
-d オプションは、次のことを指定します。コンテナはバックグラウンドで実行され、--name はコンテナ名を my-mysql として指定し、-p オプションはコンテナの内部ポート 3306 をホスト ポート 3306 にマップし、環境変数を使用して MySQL スーパーユーザーのパスワードを設定します。
これで、MySQL のコンテナ化に成功し、localhost:3306 経由でアクセスできるようになりました。
2. Kubernetes を使用して MySQL コンテナを管理する
Kubernetes は、アプリケーションのデプロイ、拡張、管理を自動化するために使用されるオープンソースのコンテナ オーケストレーション システムです。自動負荷分散、自動スケーリング、コンテナストレージなど、多くの便利な機能を提供します。
次に、Kubernetes を使用して MySQL コンテナを管理し、可用性を向上させます。
すべての MySQL コンテナを同じサービスにバインドする Kubernetes サービス オブジェクトを作成します:
apiVersion: v1 kind: Service metadata: name: my-mysql spec: ports: - port: 3306 selector: app: my-mysql
これにより、Kubernetes が作成されますmy-mysql という名前のサービス オブジェクトは、コンテナ内のポート 3306 でリッスンします。
Kubernetes デプロイメント オブジェクトを作成し、複数の MySQL コンテナを同じ Kubernetes ポッドにデプロイし、コンテナが失敗したときに自動的に再起動します。
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"
これにより、3 つの MySQL コンテナを含む my-mysql という名前の Kubernetes デプロイメント オブジェクトが作成されます。コンテナーに障害が発生した場合、Kubernetes は自動的にコンテナーを再起動します。
これで、Kubernetes を使用して MySQL コンテナを管理し、その可用性を向上させることに成功しました。
3. PHP を使用して MySQL コンテナに接続する
最後に、PHP を使用して MySQL コンテナに接続し、いくつかの簡単なデータベース操作を実行する必要があります。
MySQL コンテナに接続して SQL クエリを実行するための test.php という名前の PHP ファイルを作成します。 my-mysql.default.svc.cluster.local に接続し、ユーザー名とパスワード root を使用して MySQL コンテナに接続し、users という名前のテーブルからデータを取得します。
PHP のデプロイ結論
コンテナ化テクノロジーは、アプリケーションの移植性、拡張性、保守性など、最新のソフトウェア開発に多くの利点をもたらします。 Docker と Kubernetes を使用すると、MySQL データベースを簡単にコンテナ化し、データベースの可用性と信頼性を向上させることができます。 PHP アプリケーションを開発していて、MySQL データベースを管理する必要がある場合、コンテナ化は不可欠なオプションです。
以上がデータベースのコンテナ化の高可用性を実現する PHP メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。