PHP で Kubernetes を使用して API コンテナ化と自動デプロイメントを行う方法

王林
リリース: 2023-06-17 16:42:01
オリジナル
836 人が閲覧しました

現代のソフトウェア開発では、コンテナ化と自動デプロイメントが不可欠な部分になっています。 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!