ホームページ >バックエンド開発 >PHPチュートリアル >k8s デプロイメント php ミラーインスタンスについて

k8s デプロイメント php ミラーインスタンスについて

小云云
小云云オリジナル
2018-03-09 13:57:424291ブラウズ

以前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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。