現代のソフトウェア開発では、コンテナ化と自動デプロイメントが不可欠な部分になっています。 Kubernetes は現在最も人気のあるコンテナ オーケストレーション プラットフォームの 1 つであり、コンテナ化されたアプリケーションを管理するための柔軟でスケーラブルで管理しやすい方法を提供します。この記事では、Kubernetes を使用して API コンテナ化と PHP アプリケーションの自動デプロイメントを行う方法を説明します。
ステップ 1: PHP アプリケーションで Docker を使用する
Kubernetes を使用する前に、PHP アプリケーションをコンテナ化する必要があります。 Docker は最も人気のあるコンテナ化テクノロジの 1 つであるため、Docker を使用して PHP アプリケーションをコンテナ化します。
まず、PHP アプリケーションの Docker イメージを定義する Dockerfile を作成する必要があります。基本的な Dockerfile の例を次に示します。
# 使用PHP 7.4作为基础镜像 FROM php:7.4-apache # 将应用程序复制到容器中 COPY . /var/www/html/ # 安装PHP扩展 RUN docker-php-ext-install pdo_mysql # 配置Apache RUN a2enmod rewrite # 暴露端口 EXPOSE 80
この Dockerfile では、まず PHP 7.4 をベース イメージとして使用し、アプリケーションをコンテナーにコピーします。次に、pdo_mysql 拡張機能をインストールし、Apache の書き換えモジュールを有効にしました。最後に、コンテナのポート 80 を公開しました。
次に、次のコマンドを使用して Docker イメージを構築して実行します。
# 构建镜像 docker build -t my-app . # 运行容器 docker run -p 80:80 my-app
これにより、my-app という名前の Docker イメージが構築され、ホスト マシンのポート 80 にマッピングされます。
ステップ 2: Kubernetes に PHP アプリケーションをデプロイする
PHP アプリケーションをコンテナ化したら、それを Kubernetes クラスターにデプロイできます。以下は、基本的な Kubernetes デプロイメント ファイルの例です。
apiVersion: apps/v1 kind: Deployment metadata: name: my-app-deployment labels: app: my-app spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-app image: my-registry/my-app:latest ports: - containerPort: 80 imagePullSecrets: - name: my-registry-secret
この Kubernetes デプロイメント ファイルでは、my-app-deployment という名前のデプロイメントを定義します。レプリカ フィールドは作成するポッド レプリカの数を定義し、セレクター フィールドは使用するラベル セレクターを定義し、テンプレート フィールドは使用するポッド テンプレートを定義します。
コンテナフィールドでは、ポッド内で実行されるコンテナを定義します。 image フィールドは使用するコンテナー イメージを指定し、ports フィールドはコンテナーが公開するポートを指定します。最後に、imagePullSecrets フィールドを使用して、プライベート レジストリからイメージをプルするために使用するレジストリ資格情報を指定します。
次に、次のコマンドを使用して、PHP アプリケーションを Kubernetes クラスターにデプロイできます:
# 创建Secret kubectl create secret docker-registry my-registry-secret --docker-server=my-registry --docker-username=my-username --docker-password=my-password --docker-email=my-email # 创建Deployment kubectl apply -f my-app-deployment.yaml
これにより、Warehouse 資格情報で使用するイメージを含む my-registry-secret という名前のシークレットが作成されます。次に、kubectl apply コマンドを使用して、定義したばかりのデプロイメントをクラスターにデプロイできます。
ステップ 3: 自動デプロイメント
自動デプロイメントに Kubernetes を使用する利点の 1 つは、コードが更新されたときに、Docker イメージを更新してデプロイメントを再デプロイするだけで済むことです。以下は、新しいバージョンの Docker イメージを自動的に構築してデプロイするために使用できる簡単なスクリプトです。
#!/bin/bash # 构建新镜像 docker build -t my-registry/my-app:latest . # 推送镜像到镜像仓库 docker push my-registry/my-app:latest # 在Kubernetes中更新Deployment kubectl set image deployment/my-app-deployment my-app=my-registry/my-app:latest
このスクリプトでは、まず docker build コマンドを使用して新しい Docker イメージを構築し、次にdocker Push コマンドを使用したイメージ ミラー ウェアハウスにプッシュします。最後に、kubectl set image コマンドを使用して、my-app-deployment の my-app コンテナーのイメージを更新します。
Jenkins や GitLab などの CI/CD プラットフォームを使用して、このスクリプトを自動化できます。
結論
この記事では、PHP アプリケーションでの API コンテナ化と自動デプロイに Kubernetes を使用する方法について説明しました。まず PHP アプリケーションをコンテナ化し、次に Kubernetes を使用してクラスターにデプロイしました。最後に、スクリプトを使用してビルドと展開のプロセスを自動化する方法について説明しました。 Kubernetes は、コンテナ化されたアプリケーションを管理するための柔軟でスケーラブルで信頼性の高い方法を提供し、ソフトウェア開発エコシステムに多くのメリットをもたらします。
以上がPHP で Kubernetes を使用して API コンテナ化と自動デプロイメントを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。