以前php+nginx環境イメージの作成について書きましたが、phpイメージを作成しました。この記事では主に、K8S による PHP ミラーリングのデプロイメントの例をいくつか紹介し、皆様のお役に立てれば幸いです。
それでは、この画像をどのように使用するのでしょうか?
1. docker を直接使用してこのコンテナを実行できます
docker run --rm -d --name php -p 80:80 -v /tmp:/app
docker コマンドの説明:
–rm: docker が none のタグを持つイメージを生成しないようにします
-d: 生成されたコンテナをバックグラウンドで実行します
– name: 後の操作に便利なコンテナの名前を php として指定します
-p: 指定されたポートの最初の 80 はホストのポート番号、次の 80 はホストのポート番号ですコンテナ
最初のポート番号には、ホスト マシン上で使用可能な任意のポートを指定でき、localhost:ポート番号を使用してアクセスできます。
-v: v は volume の省略形で、ホスト ボリュームをコンテナーにマウントします
最初の /tmp はホスト内のパスを参照します
2つ目の/appはコンテナのパスパスです
基本イメージwebdevops/php-nginx:centos-7-php56に設定されているnginxルートパスが/appなので、ここでは/appと指定します
ファイルを追加します/tmp index.php 内
内容は次のとおりです:
<? phpinfo() ?>
コンテナを起動すると、ホストアドレス + ポート番号にアクセスできます。たとえば、curl localhost: ポート番号は phpinfo を返します
webdevops で構成を確認できます。 /php-nginx イメージドキュメント ファイルのパス
ここで有効な nginx 設定ファイルのパスは次のとおりです: /opt/docker/etc/nginx/vhost.conf
この設定ファイルでは、設定ルート パスがポート 80 を監視する場合は /app です
このパスは変更可能です
2. k8s デプロイメントを使用します
イメージをウェアハウスにアップロードします
docker Push image_name
新しいデプロイメント構成ファイル: php-deployment.yaml
deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: php spec: replicas: 1 template: metadata: labels: app: php spec: containers: - name: php image: image_address ports: - containerPort: 80 volumeMounts: - mountPath: /app name: php-volume volumes: - name: php-volume hostPath: path: /tmp
新しい php -service.yaml ファイル
kind: Service apiVersion: v1 metadata: name: php-service namespace: default labels: app: php spec: ports: - name: listener protocol: TCP port: 80 targetPort: 80 selector: app: php type: LoadBalancer externalIPs: - your ip address
コマンドを実行します:
kubectl apply -f php-deployment.yaml kubectl apply -f php-service.yaml
次のコマンドで表示できます
kubectl get deployment kubectl get service
その後、ホストIPにアクセスしてphpinfoを取得できます
もちろん、ファイルindex.phpは/にある必要がありますk8s クラスター内の php コンテナーを実行しているノードの tmp パス
どのノードで実行されているかについては、このコンテナーは kubecel get pods php で表示できます
以前に php+nginx 環境イメージを書いて作成しました
php イメージを作成しました。
それでは、この画像をどのように使用するのでしょうか?
1. docker を直接使用してこのコンテナを実行できます
docker run --rm -d --name php -p 80:80 -v /tmp:/app
docker コマンドの説明:
–rm: docker が none のタグを持つイメージを生成しないようにします
-d: 生成されたコンテナをバックグラウンドで実行します
– name: 後の操作に便利なコンテナの名前を php として指定します
-p: 指定されたポートの最初の 80 はホストのポート番号、次の 80 はホストのポート番号ですコンテナ
最初のポート番号には、ホスト マシン上で使用可能な任意のポートを指定できます。このポートには、localhost:ポート番号を使用してアクセスできます。
-v: v は volume の省略形で、ホスト ボリュームをコンテナーにマウントします
最初の /tmp はホスト内のパスを参照します
2つ目の/appはコンテナのパスパスです
基本イメージwebdevops/php-nginx:centos-7-php56に設定されているnginxルートパスが/appなので、ここでは/appと指定します
ファイルを追加します/tmp index.php 内
内容は次のとおりです:
<? phpinfo() ?>
コンテナを起動すると、ホストアドレス + ポート番号にアクセスできます。たとえば、curl localhost: ポート番号は phpinfo を返します
webdevops で構成を確認できます。 /php-nginx イメージドキュメント ファイルのパス
ここで有効な nginx 設定ファイルのパスは次のとおりです: /opt/docker/etc/nginx/vhost.conf
この設定ファイルでは、設定ルート パスがポート 80 を監視する場合は /app です
このパスは変更可能です
2. k8s デプロイメントを使用します
イメージをウェアハウスにアップロードします
docker Push image_name
新しいデプロイメント構成ファイル: php-deployment.yaml
deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: php spec: replicas: 1 template: metadata: labels: app: php spec: containers: - name: php image: image_address ports: - containerPort: 80 volumeMounts: - mountPath: /app name: php-volume volumes: - name: php-volume hostPath: path: /tmp
新しい php -service.yaml ファイル
kind: Service apiVersion: v1 metadata: name: php-service namespace: default labels: app: php spec: ports: - name: listener protocol: TCP port: 80 targetPort: 80 selector: app: php type: LoadBalancer externalIPs: - your ip address
コマンドを実行します:
kubectl apply -f php-deployment.yaml kubectl apply -f php-service.yaml
次のコマンドで表示できます
kubectl get deployment kubectl get service
その後、ホストIPにアクセスしてphpinfoを取得できます
もちろん、ファイルindex.phpは/にある必要がありますk8s クラスター内の php コンテナーを実行しているノードの tmp パス
どのノードで実行されているかについては、このコンテナーは kubecel get pods php を通じて表示できます。
関連する推奨事項:
Docker を使用して PHP 開発環境をデプロイする方法
Linux で PHP プロジェクトをデプロイするにはどうすればよいですか?
複数のバージョンの PHP を導入して Linux 上で共存させます
以上がk8s デプロイメント php ミラーインスタンスについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。