クラウド コンピューティング テクノロジの継続的な開発と普及により、アプリケーションをクラウドにデプロイすることがますます多くの開発者にとって選択肢になりました。 Kubernetes はクラウド ネイティブ アプリケーション管理の事実上の標準として、コンテナ オーケストレーションに推奨されるツールとなっており、クラウド ネイティブ環境でのアプリケーションの自動展開、拡張、管理方法を提供します。
PHP プログラミングで Kubernetes を使用すると、開発者は PHP アプリケーションをより簡単かつ効率的に管理および拡張できます。この記事では、PHP プロジェクトで Kubernetes デプロイメント ツールを使用する方法を紹介します。
Kubernetes とは何ですか?
Kubernetes (略称 K8s) は、Google によって開発および保守されているオープンソースのコンテナ オーケストレーション システムです。 Kubernetes は、開発者がコンテナ化されたアプリケーションを簡単かつ便利に管理およびデプロイするための自動化された方法を提供します。
Kubernetes を使用すると、開発者はクラスター内の多数のコンテナー インスタンスを簡単に管理し、アプリケーションのニーズに合わせて自動的にスケーリングできます。 Kubernetes は、ローリング アップグレード、適応的なリソース割り当て、サービス検出などの多くの高度な機能も提供します。
Kubernetes アーキテクチャ
Kubernetes のアーキテクチャは、マスター ノードとノード ノードの 2 つの部分に分かれています。
マスター ノードには、API サーバー、etcd、コントローラー マネージャー、スケジューラー、その他のコア コンポーネントが含まれています。これらは連携して Kubernetes クラスター全体を監視および管理します。
Node ノードは、コンテナーを実行しているホスト ノードです。各 Node ノードでは、kubelet と kube-proxy という 2 つのコンポーネントが実行されています。 kubelet はノード上のコンテナーの管理と実行を担当し、kube-proxy はクラスター サービスの検出と負荷分散の処理を担当します。
Kubernetes の中心的な概念
Kubernetes には、理解する必要のある重要な概念がいくつかあります。
ポッド: Kubernetes の最小のデプロイメント単位であり、ポッドには 1 つ以上のコンテナを含めることができます。
Deployment: ポッド コピーの管理に使用されるコントローラーで、指定された数のポッド コピーのデプロイと管理を担当します。
サービス: 他のコンテナまたは外部ネットワークからアクセスできるように、デプロイメント内のポッドを公開するために使用されます。
ラベルとセレクター: ポッドの識別と選択に使用されます。デプロイメントとサービスの両方で、これらを使用して指定されたポッドまたはコントローラーを選択できます。
PHP プロジェクトで Kubernetes を使用する方法
PHP プロジェクトで Kubernetes を使用するには、まず PHP アプリケーションを Docker イメージにカプセル化する必要があります。 Kubernetes リソース ファイルを使用して、コンテナーと PHP アプリケーションのデプロイメントを定義および管理できます。
PHP アプリケーションを Kubernetes にデプロイするには、まずアプリケーションを Docker イメージとしてカプセル化する必要があります。 Dockerfile を使用してイメージ構築プロセスを定義できます。以下は、簡単な Dockerfile の例です。
FROM php:7.2-apache COPY src/ /var/www/html/
この Dockerfile は、公式の PHP 7.2 および Apache イメージを使用し、アプリケーション コード (src/) をイメージ内の /var/www/html/ ディレクトリにコピーします。
Kubernetes リソース ファイルは、Kubernetes のコンテナー、サービス、デプロイメントなどのリソースを定義する YAML ファイルです。以下は簡単なデプロイメントの例です:
apiVersion: apps/v1 kind: Deployment metadata: name: php-app spec: replicas: 3 selector: matchLabels: app: php template: metadata: labels: app: php spec: containers: - name: php-app image: my-php-app:latest ports: - containerPort: 80
このデプロイメントは、PHP アプリケーションを実行するポッドを定義します。クラスター内で 3 つのレプリカ (ポッドのコピー) が実行されます。 app=php タグを使用してポッドを選択し、イメージを my-php-app:latest として指定し、コンテナーのポートを 80 として公開します。サービスを通じて外部からデプロイメントにアクセスできるようにする場合は、同じファイル内でサービスを定義し、それを同じラベル (上記の例では app=php) として選択する必要があります。
Kubernetes リソース ファイルを作成した後、kubectl コマンドを使用してアプリケーションを Kubernetes クラスターにデプロイできます。 kubectl apply コマンドを使用して、Kubernetes リソース ファイルをクラスターに適用できます。
kubectl apply -f deployment.yaml
このコマンドは、PHP アプリケーションを実行するデプロイメントを作成し、クラスター内で 3 つのポッド コピーを実行します。デプロイメント内のポッドの数を変更する必要がある場合は、kubectlscale コマンドを使用してポッドの数を水平方向に拡大または縮小できます。
kubectl scale deployment php-app --replicas=5
これにより、php-app デプロイメント内のポッドの数が拡大されます。 5まで。
PHP アプリケーションをデプロイした後、Kubernetes 監視ツールを使用して監視できます。 kubectl コマンドを使用して、ポッドとデプロイのステータスを表示できます:
kubectl get pods kubectl get deployment
kubectl logs コマンドを使用して、ポッドの実行ログを表示できます:
kubectl logs <pod名称>
また、Kubernetes ダッシュボードを使用することもできますKubernetes ポッド、デプロイメント、サービス、その他のリソースのすべての操作を一元管理し、ログや監視情報を表示します。
結論
PHP プログラミングで Kubernetes を使用すると、独自の PHP アプリケーションを簡単に管理および拡張できます。この記事では、PHP 開発者がこのコンテナ オーケストレーション ツールをより適切に適用できるようにするために、Kubernetes の基本概念と PHP プロジェクトでの Kubernetes の使用方法を紹介します。
以上がPHP プログラミングで Kubernetes を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。