近年、Kubernetes はコンテナ化されたデプロイメントのための重要なツールの 1 つとなっており、アプリケーション開発では PHP が共通言語となっており、PHP で Kubernetes をどのように使用するかが重要なテーマとなっています。この記事では、Kubernetes クラスターの作成方法、Kubernetes を使用して PHP アプリケーションをホストする方法、PHP アプリケーションで Kubernetes と対話する方法など、PHP で Kubernetes を使用する方法を紹介します。
1. Kubernetes クラスターの作成
Kubernetes を使用する前に、まず Kubernetes クラスターを作成する必要があります。 Kubernetes クラスターを作成するには、セルフホスティングを使用するか、クラウド サービス プロバイダーが提供する Kubernetes サービスを使用するかを選択できます。
セルフホスティングの場合、Ansible や Terraform などのツールを使用して、Kubernetes クラスターを自動的にデプロイできます。ここでは詳細は説明しませんが、記事の最後にあるリンクを参照して、関連する知識を自分で学習してください。
Alibaba Cloud のコンテナ サービスや Google Cloud の Kubernetes Engine など、クラウド サービス プロバイダーによって提供される Kubernetes サービスの場合は、公式ドキュメントを参照して Kubernetes クラスターを作成できます。
クラスターの作成後、Kubernetes クラスターを管理するために kubectl コマンド ライン ツールをインストールする必要があります。対応する kubectl バージョンを Kubernetes 公式 Web サイトからダウンロードし、ドキュメントに従ってインストールできます。
2. Kubernetes を使用して PHP アプリケーションをホストする
Kubernetes を使用して PHP アプリケーションをホストする手順は次のとおりです:
デプロイメントは、Kubernetes で特定の Pod コピーを管理するために使用されるオブジェクトであり、単純に Pod コントローラーとして理解できます。デプロイメントを定義するときは、アプリケーションのイメージ情報とコピー数を指定する必要があります。
具体的な定義方法は次のとおりです。
apiVersion: apps/v1 kind: Deployment metadata: name: php-app labels: app: php spec: replicas: 3 selector: matchLabels: app: php template: metadata: labels: app: php spec: containers: - name: php image: php:7.4-apache ports: - containerPort: 80 volumeMounts: - name: code mountPath: /var/www/html volumes: - name: code configMap: name: code-config
上記の yaml ファイルは、php-app という名前の Deployment を定義しており、コピー数は 3、ミラーは php:7.4-apache です。ポート 80 がコンテナ内で公開され、コードという名前の ConfigMap がマウントされます。
Kubernetes では、サービスはポッドのグループのアクセス入口を定義し、ポートを公開するために使用されます。サービスを定義するときは、ターゲット ポッドのラベルと、公開する必要があるポートとプロトコルを指定する必要があります。
具体的な定義方法は以下の通りです:
apiVersion: v1 kind: Service metadata: name: php-service spec: selector: app: php ports: - name: http port: 80 protocol: TCP targetPort: 80 type: LoadBalancer
上記のyamlファイルはphp-serviceというServiceを定義しており、ターゲットPodのラベルはapp:php、公開ポートは80、プロトコルは TCP、サービス タイプは LoadBalancer に設定します。
Deployment の定義で、ConfigMap という名前のコードを指定し、ConfigMap をコンテナーにマウントします。 ConfigMap は構成情報などを保存するために使用され、yaml ファイルまたは kubectl コマンド ライン ツールを通じて作成できます。
具体的な作成方法は次のとおりです。
apiVersion: v1 kind: ConfigMap metadata: name: code-config data: index.php: | <?php echo "Hello, Kubernetes!";
上記の yaml ファイルは、code-config という名前の ConfigMap を定義します。このファイルには、「Hello, Kubernetes !」という内容のindex.php という名前のファイルが含まれています。 」。
前述の定義を完了したら、kubectl apply コマンドを使用してアプリケーションを Kubernetes クラスターにデプロイできます。
具体的なコマンドは次のとおりです:
kubectl apply -f deployment.yaml kubectl apply -f service.yaml kubectl apply -f configmap.yaml
アプリケーションのデプロイが完了したら、kubectl get コマンドを使用してアプリケーションのステータスを表示できます。
3. PHP アプリケーションでの Kubernetes との対話
PHP アプリケーションでは、Kubernetes によって公式に提供されている Kubernetes PHP クライアント ライブラリを使用して、Kubernetes と対話できます。 Kubernetes PHP クライアント ライブラリは Kubernetes API をカプセル化しており、Kubernetes を簡単に操作できます。
Kubernetes PHP クライアント ライブラリを使用する前に、依存関係をインストールする必要があります。 Composer ツールを使用して依存関係をインストールできます。
具体的なインストール方法は次のとおりです。
composer require kubernetes/client-php
依存関係をインストールした後、PHP アプリケーションで Kubernetes PHP クライアント ライブラリを使用できるようになります。以下は、Kubernetes クラスター内のすべての名前空間を取得する簡単な例です。
use KubernetesClient; use KubernetesClientConfiguration; use KubernetesClientApiCoreV1Api; $config = new Configuration(); $config->setHost('https://kubernetes.example.com'); $config->setUsername('user'); $config->setPassword('password'); $client = new Client($config); $coreV1Api = new CoreV1Api($client); $namespaces = $coreV1Api->listNamespace()->getItems(); foreach ($namespaces as $namespace) { echo $namespace->getMetadata()->getName() . " "; }
上記のコードは、Kubernetes PHP クライアント ライブラリを通じて Kubernetes API クライアントを作成し、クライアントを通じて CoreV1API の listNamespace メソッドにアクセスして、Kubernetes クラスター内のすべての名前空間を取得します。実際のアプリケーションでも同様の方法でKubernetesを操作できます。
この記事では、Kubernetes クラスターの作成、Kubernetes を使用した PHP アプリケーションのホスト、PHP アプリケーションでの Kubernetes との対話など、PHP で Kubernetes を使用する方法を簡単に紹介します。読者のお役に立てば幸いです。
参考リンク:
以上がPHP で Kubernetes を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。