k8s部署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来查看

你可能感兴趣的:(go,linux)