現在の位置: ホーム> 最新記事一覧> PHPコンテナオーケストレーションとサービスオーケストレーションの概念とアプリケーション分析

PHPコンテナオーケストレーションとサービスオーケストレーションの概念とアプリケーション分析

M66 2025-06-19

コンテナオーケストレーションの概念と適用

コンテナオーケストレーションとは、コンテナのセットの動作ルールとネットワーク構成を定義および管理することにより、アプリケーションの展開と管理を指します。 PHPアプリケーションでは、一般的なコンテナオーケストレーションツールはDockerおよびKubernetesです。

Dockerコンテナオーケストレーション

Dockerは、コンテナを介したアプリケーションのパッケージングと展開を実装する軽量仮想化テクノロジーです。 Dockerは、アプリケーションのパッケージ化と実行方法を定義できる一連のコマンドと構成ファイルを提供します。 Dockerのコンテナオーケストレーションを通じて、PHPコンテナをすばやく作成して起動し、自動展開と管理を実行できます。

以下は、Dockerを使用したPHPコンテナオーケストレーションの例です。

#dockerfile

#PHP:7.4-Apacheから基本な画像を指定します

#PHP拡張機能をインストールしてくださいDocker-PHP-Ext-Install MySqli PDO_Mysqlを実行します

#アプリケーションコードをコンテナコピーにコピーします。 /var/www/html

#コンテナの作業ディレクトリWorkDir/var/www/htmlを設定します

#コンテナの80ポートを公共する80

#ApacheサーバーCMDを起動["apache2-foreground"]

上記のDockerFileを介して、PHP 7.4とApacheサーバーを含む画像を作成し、アプリケーションコードをコンテナにコピーし、最後にCMDディレクティブを介してApacheサービスを開始できます。

Kubernetesコンテナオーケストレーション

Kubernetesは、コンテナ化されたアプリケーションをより適切に管理および拡張するのに役立つオープンソースコンテナオーケストレーションプラットフォームです。 Kubernetesでは、アプリケーションのレプリカの数、リソース制限、ネットワーク構成などを定義し、Kubernetesスケジューラを使用してコンテナを自動的に展開および管理できます。

Kubernetesを使用したPHPコンテナオーケストレーションの例は次のとおりです。

#deployment.yaml

Apiversion:Apps/V1
種類:展開
メタデータ:
  名前:PHP-APP
仕様:
  レプリカ:3
  セレクタ:
    マッチラベル:
      アプリ:PHP-APP
  テンプレート:
    メタデータ:
      ラベル:
        アプリ:PHP-APP
    仕様:
      コンテナ:
         - 名前:PHP-APP
          画像:PHP:7.4-Apache
          ポート:
            -containerport:80
          ボリュームマウント:
             - 名前:app-data
              MountPath:/var/www/html
      ボリューム:
         - 名前:app-data
          emptydir:{}

上記のdeployment.yamlファイルを介して、3つのレプリカを使用したPHPアプリケーションの展開を定義します。各レプリカはPHP:7.4-Apacheイメージを使用し、/var/www/htmlディレクトリを共有ボリュームとして取り付けます。

サービスオーケストレーションの概念と適用

サービスオーケストレーションとは、コンテナのセットの動作ステータスとネットワークアクセスルールを定義および管理することにより、サービスの発見とアプリケーションの負荷分散の実装を指します。 PHPアプリケーションでは、一般的なサービスオーケストレーションツールはDocker ComposeとKubernetesです。

Docker Composeのサービスオーケストレーション

Docker Composeは、複数のDockerコンテナを定義および実行するためのツールです。構成ファイルを介して、複数のコンテナ間の関係と依存関係を定義できます。 Docker Composeのサービスオーケストレーションを通じて、複数の関連するPHPコンテナを迅速に作成および起動し、ネットワーク接続とそれらの間のサービスの発見を定義できます。

Docker Composeを使用したPHPサービスオーケストレーションの例は次のとおりです。

#docker-compose.yaml
バージョン: '3'
サービス:
  php-app:
    確立するてる:
      コンテクスト: 。
      dockerfile:dockerfile
    ポート:
      -8080:80
    ボリューム:
       - 。:/var/www/html
    deprofs_on:
      -MySQL
  mysql:
    画像:MySQL:5.7
    環境:
      -mysql_root_password = secret
      -MySQL_DataBase = PHP_APP_DB

上記のDocker-Compose.yamlファイルを介して、PHPアプリケーションとMySQLデータベースを含むサービスオーケストレーションを定義します。 PHPアプリケーションは、定義されたDockerFilesを使用して構築され、ローカルコードディレクトリはコンテナに取り付けられています。 MySQLサービスはMySQL:5.7画像で作成され、データベースのパスワードと名前を構成するために環境変数を設定しています。

Kubernetesサービスオーケストレーション

Kubernetesでは、サービスとイングレスを使用して、コンテナサービスの発見と負荷分散を達成できます。サービスは、コンテナ間のネットワーク接続ルールを定義するために使用され、Ingressはコンテナサービスの外部アクセスルールを定義するために使用されます。

PHPサービスオーケストレーションにKubernetesを使用する例は次のとおりです。

#service.yaml

Apiversion:V1
種類:サービス
メタデータ:
  名前:php-app-service
仕様:
  セレクタ:
    アプリ:PHP-APP
  ポート:
     - プロトコル:TCP
      ポート:80
      ターゲットポート:80
  タイプ:nodeport

上記のservice.yamlファイルを介して、PHP-App-Serviceという名前のサービスオブジェクトを定義して、外部ネットワークトラフィックをコンテナラベルのアプリ:PHP-APPに転送します。同時に、コンテナで使用されるポート番号を80にすることを指定し、クラスターノードのIPアドレスと露出したポートを介してPHPアプリケーションにアクセスできるように、サービスタイプをNodePortに設定しました。

要約します

コンテナオーケストレーションとサービスオーケストレーションは、PHPアプリケーションのパッケージングの展開において重要な役割を果たします。コンテナオーケストレーションを通じて、PHPコンテナをすばやく作成および管理し、アプリケーションの実行環境と構成を定義できます。サービスオーケストレーションを通じて、PHPコンテナサービスの発見と負荷分散を実現でき、アプリケーションの可用性とパフォーマンスが向上します。

DockerまたはKubernetesを使用するかどうかにかかわらず、コンテナオーケストレーションとサービスオーケストレーションは、PHPアプリケーションの効率的な展開と管理を実現するのに役立ちます。上記の紹介と例が、誰もがコンテナオーケストレーションとサービスオーケストレーションを理解し、適用するのに役立つことを願っています。