現在の急速に進化する技術環境では、Kubernetesはコンテナオーケストレーションのリーダーになりました。 PHPアプリケーションを簡単に展開するための強力なツールを開発者に提供します。このガイドでは、Kubernetes環境にPHPアプリケーションを展開する方法に関する詳細な指示を提供して、迅速に開始し、アプリケーションを効率的に管理するのに役立ちます。
Kubernetesは、開発者がコンテナ化されたアプリケーションを自動的に展開、拡張、管理する機能を開発者に提供するオープンソースコンテナオーケストレーションプラットフォームです。クラウドであろうとオンプレミス環境であろうと、Kubernetesはさまざまなアプリケーションを効率的に実行できます。
PHPアプリケーションの展開を開始する前に、次の準備を行う必要があります。
まず、コンピューターまたはサーバーがインストールされ、Kubernetesクラスターで構成されていることを確認してください。ローカルのインストールと構成には、MinikubeやKubeAdmなどのツールを使用できます。
Kubernetes APIとの相互作用を容易にするKubectlツールをインストールします。特定のインストール手順については、公式のKubernetesドキュメントを参照してください。
展開する前に、簡単なPHPアプリケーションを準備する必要があります。これが基本的なPHPコードの例です。
echo "Hello, Kubernetes!";
Kubernetes環境では、アプリケーションは通常、コンテナ内で実行されます。したがって、PHPアプリをDocker画像にパッケージ化する必要があります。次のコンテンツを含むDockerFileというファイルを作成します。
FROM php:7.4-apache
COPY . /var/www/html/
DockerFileを含むディレクトリで、次のコマンドを実行してDocker画像を作成します。
docker build -t my-php-app .
構築されたDocker画像をパブリックまたはプライベート画像リポジトリ(Docker Hubなど)に押します。次のコマンドを使用してログインして画像をプッシュします。
docker login
docker tag my-php-app your-dockerhub-username/my-php-app
docker push your-dockerhub-username/my-php-app
Kubernetesにアプリケーションを展開するには、展開構成ファイル(deployment.yamlなど)を作成する必要があります。展開ファイルのコンテンツの例は次のとおりです。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-php-app
spec:
replicas: 2
selector:
matchLabels:
app: my-php-app
template:
metadata:
labels:
app: my-php-app
spec:
containers:
- name: my-php-app
image: your-dockerhub-username/my-php-app
ports:
- containerPort: 80
次に、次のコマンドを実行して展開を作成します。
kubectl apply -f deployment.yaml
PHPアプリケーションを外部からアクセスできるようにするには、Service Configurationファイル(Service.YAMLなど)を作成する必要があります。以下は、サービスファイルのコンテンツの例です。
apiVersion: v1
kind: Service
metadata:
name: my-php-app
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: my-php-app
次のコマンドを実行してサービスを作成します。
kubectl apply -f service.yaml
上記の手順を完了すると、Kubernetesが提供するサービス外部IPを介してPHPアプリケーションにアクセスできます。次のコマンドを使用して、サービスの詳細を表示します。
kubectl get services
このガイドを通じて、Kubernetes環境にPHPアプリケーションを正常に展開しました。 Docker画像の構築とプッシュの方法を学んだだけでなく、Kubernetesでアプリケーションを展開および公開するスキルもあります。 Kubernetesの詳細な理解により、PHPアプリケーションをより適切に管理および拡大できます。