Rumah  >  Artikel  >  pembangunan bahagian belakang  >  关于k8s部署php镜像实例

关于k8s部署php镜像实例

小云云
小云云asal
2018-03-09 13:57:424248semak imbas

之前写了 制作php+nginx环境镜像 ,制作了一个php镜像。本文主要和大家分享关于k8s部署php镜像实例,希望能帮助到大家。

那么如何使用这个镜像呢?

1.可以直接用docker来运行这个容器

docker run --rm -d --name php -p 80:80 -v /tmp:/app

docker命令解释:

–rm : 防止docker产生tag为 none的的镜像

-d : 使得产生的container在后台运行

–name : 指定该container 名称为php ,方便之后操作

-p :指定端口 第一个80为宿主机的端口号,第二个80为container的端口号
   第一个端口号可以是你的宿主机的任何可用端口,可以用localhost:端口号进行访问。

-v : v是volume的缩写,即将宿主机的卷挂载到container中
   第一个/tmp指的是宿主机中的path路径
   第二个/app是container的path路径

由于基础镜像webdevops/php-nginx:centos-7-php56中配置的nginx root路径为/app,所以此处指定为/app
在/tmp中添加文件index.php
内容为:

<? phpinfo() ?>

启动容器后即可访问宿主机地址+端口号,如curl localhost:端口号,即会返回phpinfo

在webdevops/php-nginx镜像文档中即可看到配置文件的路径
此处生效的nginx配置文件路径是:/opt/docker/etc/nginx/vhost.conf
在该配置文件中可以看到监听80端口的配置root路径为/app
可以修改该路径

2.使用k8s部署
将镜像上传至仓库中
docker push image_name

新建deployment 配置文件: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
当然你的k8s集群中运行php容器节点的/tmp路径下需要有index.php这个文件
至于是哪个节点运行了这个容器可以通过 kubecel get pods php来查看

之前写了 制作php+nginx环境镜像
制作了一个php镜像。

那么如何使用这个镜像呢?

1.可以直接用docker来运行这个容器

docker run --rm -d --name php -p 80:80 -v /tmp:/app

docker命令解释:

–rm : 防止docker产生tag为 none的的镜像

-d : 使得产生的container在后台运行

–name : 指定该container 名称为php ,方便之后操作

-p :指定端口 第一个80为宿主机的端口号,第二个80为container的端口号
   第一个端口号可以是你的宿主机的任何可用端口,可以用localhost:端口号进行访问。

-v : v是volume的缩写,即将宿主机的卷挂载到container中
   第一个/tmp指的是宿主机中的path路径
   第二个/app是container的path路径

由于基础镜像webdevops/php-nginx:centos-7-php56中配置的nginx root路径为/app,所以此处指定为/app
在/tmp中添加文件index.php
内容为:

<? phpinfo() ?>

启动容器后即可访问宿主机地址+端口号,如curl localhost:端口号,即会返回phpinfo

在webdevops/php-nginx镜像文档中即可看到配置文件的路径
此处生效的nginx配置文件路径是:/opt/docker/etc/nginx/vhost.conf
在该配置文件中可以看到监听80端口的配置root路径为/app
可以修改该路径

2.使用k8s部署
将镜像上传至仓库中
docker push image_name

新建deployment 配置文件: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
当然你的k8s集群中运行php容器节点的/tmp路径下需要有index.php这个文件
至于是哪个节点运行了这个容器可以通过 kubecel get pods php来查看。

相关推荐:

如何使用Docker部署PHP开发环境

linux下如何部署php项目?

Linux下部署php多版本共存

Atas ialah kandungan terperinci 关于k8s部署php镜像实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn