k8sを使ってPHPプロジェクトをデプロイするには
Kubernetes上にPHPプロジェクトをデプロイするには、以下の手順に従います:
- PHP と関連する依存関係をインストールする手順を含む Dockerfile を使用して、このイメージを定義できます。たとえば、次のような内容の Dockerfile を使用できます。
FROM php:7.4-apache
COPY . /var/www/html
- このイメージを構築して、Docker Hubなどの Docker イメージ レジストリにプッシュします。
- KubernetesのDeploymentオブジェクトを作成し、デプロイするPodを定義します。このDeploymentオブジェクトでは、前の手順でビルドしたDockerイメージを使用し、Podのレプリカ数、コンテナーのポートなど、関連する他の設定を行います。以下にDeployment設定の例を示します。
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-app
spec:
replicas: 3
selector:
matchLabels:
app: php-app
template:
metadata:
labels:
app: php-app
spec:
containers:
- name: php-container
image: <your-docker-image>:<tag>
ports:
- containerPort: 80
imageフィールドには、ステップ2でDockerイメージレジストリにプッシュしたイメージ名とタグを指定することにご注意ください。
- 创建一个Kubernetes Service对象来公开部署的Pod。这样可以让其他服务或用户通过该Service访问PHP应用程序。以下是一个示例Service配置:
apiVersion: v1
kind: Service
metadata:
name: php-service
spec:
selector:
app: php-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
这将创建一个类型为LoadBalancer的Service,将外部流量转发到Pod的80端口。
- 上述の設定ファイルをKubernetesクラスタにデプロイするには、kubectlコマンドを使用します。
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
本物の設定ファイルの名称を deployment.yaml と service.yaml に置き換えてください。
- しばらく待って、ポッドが運用状態で、サービスが外部IPアドレスを取得するまで待つ。
- その外部 IP アドレスを使用すると、ウェブブラウザやその他の HTTP クライアントからデプロイされた PHP アプリケーションにアクセスできます。
なお、記載の手順は基本的なデプロイの例です。ニーズに合わせて、DeploymentとServiceの設定の更なる調整と最適化が必要になる場合があります。