同福

Rancher v2.5.9使用Dockerfile部署php-fpm和nginx服务的方法【20211016】

介绍

介绍

今天福哥要带着大家来通过Rancher部署PHP环境了,同样的我们还是使用php:7.4-fpm-buster这个镜像作为基础镜像。因为php-fpm不能处理静态页面内容,所以我们还会使用nginx:1.20这个镜像作为基础镜像部署一个Nginx环境。就是PHP环境只处理PHP程序,而Nginx环境负责处理镜头内容。

还有一点需要注意的是,这个环境的部署和前面的MySQL、Redis、Elasticsearch不同的是,PHP环境是提供web服务的,它不仅仅需要在Rancher里面可以访问到,还需要通过浏览器也可以访问,这里面会用到Rancher的负载均衡(Ingress)功能。

部署PHP

名称

名称是php-fpm。

home/topic/2021/1017/12/f925d4a1e72223c1baca032532968824.png

工作负载类型

工作负载类型这次选择的是无状态应用。

home/topic/2021/1017/12/ea90a30211019e882cb47232299712cf.png

Docker镜像

Docker镜像是我们前面学习的php-fpm的镜像,里面包括了tfphp和tfums两个项目的配置参数。

home/topic/2021/1017/12/62d46fd9d6a99c23b825dc8c70e6fafd.png

命名空间

命名空间是php。

home/topic/2021/1017/12/d49c436beb40a34363910a7d62c60a6b.png

端口映射

端口映射福哥开启了8168和8170两个端口,对应着tfphp和tfums两个项目。

home/topic/2021/1017/12/eab1ad64ee15469d216780331fddfe88.png

主机调度

主机调度选的是tf-node-alpha这个机器,也就是192.168.2.169这个机器。

home/topic/2021/1017/12/402e7a4a2f2970875fd03688d7425835.png

健康检查

虽然我们开放了两个端口,但是健康检查里面只能配置一个,那就8168好了。

home/topic/2021/1017/12/1421496834aa2a5192986deccd112f07.png

数据卷

福哥配置了两个项目,自然就需要映射两个目录了。不过,这次为了省事暂时没有将TFPHP和TFUMS项目复制进来,只是建立了两个空的目录而已。

建立目录

mkdir -p /tongfu.net/web/TFPHP/
mkdir -p /tongfu.net/web/TFUMS/

tfphp

home/topic/2021/1017/12/65fd7c0be73cbc088e4a0d8a31fb82e7.png

tfums

home/topic/2021/1017/12/6db6aa9191eeef38984365bd3c9f8c19.png

部署Nginx

名称

名称是php-nginx。
home/topic/2021/1017/12/a9782718839b1b29553f78c943a7ee6d.png

工作负载类型

工作负载类型这次选择的是无状态应用。

home/topic/2021/1017/12/ea90a30211019e882cb47232299712cf.png

Docker镜像

Docker镜像是我们前面学习的php-nginx的镜像,里面包括了tfphp和tfums两个项目的配置参数。

home/topic/2021/1017/12/d7374c7fd59553050cb3144332feabba.png

命名空间

命名空间是php。
home/topic/2021/1017/12/d49c436beb40a34363910a7d62c60a6b.png

端口映射

端口映射福哥开启了8068和8070两个端口,对应着tfphp和tfums两个项目。
home/topic/2021/1017/12/c195847799cb0f2b3cead15e06a60654.png

主机调度

主机调度选的是tf-node-alpha这个机器,也就是192.168.2.169这个机器。
home/topic/2021/1017/12/402e7a4a2f2970875fd03688d7425835.png

健康检查

虽然我们开放了两个端口,但是健康检查里面只能配置一个,那就8068好了。

home/topic/2021/1017/12/85ab38a526953dfa18931a227fdc5b2c.png

数据卷

福哥配置了两个项目,自然就需要映射两个目录了。不过,这次为了省事暂时没有将TFPHP和TFUMS项目复制进来,只是建立了两个空的目录而已。

建立目录

mkdir -p /tongfu.net/web/TFPHP/
mkdir -p /tongfu.net/web/TFUMS/

tfphp

home/topic/2021/1017/12/65fd7c0be73cbc088e4a0d8a31fb82e7.png

tfums

home/topic/2021/1017/12/6db6aa9191eeef38984365bd3c9f8c19.png

查看服务

列表

完成部署后可以在列表里面看到php-fpm和php-nginx两个服务。

home/topic/2021/1017/12/89c531815c05bf82fe5c84bd7ccd2143.png

负载均衡tfphp

名称

名称就是tfphp。

home/topic/2021/1017/13/5843c4ab03322ede22a06a41212e3ad5.png

命名空间

命名空间是php。

home/topic/2021/1017/13/3e9c42cfab0fae2fb3559327fe2c8493.png

规则

规则就是php-nginx的8068端口。

home/topic/2021/1017/13/1c657f728e883f38b26ab7e043c48fa4.png

负载均衡tfums

名称

名称就是tfums。
home/topic/2021/1017/13/783911db345aab1e0635bd64e8e15531.png

命名空间

命名空间是php。

home/topic/2021/1017/13/3e9c42cfab0fae2fb3559327fe2c8493.png

规则

规则就是php-nginx的8070端口。
home/topic/2021/1017/13/fb5ec339199f38132c2be5d0956d61b6.png

查看负载均衡

列表

完成初始化后就可以在列表中看到了。

home/topic/2021/1017/13/f6d6452f594b188b66c5130b7b64e374.png

测试

hosts

首先我们需要配置一个hosts本地解析来解析tongfu.dev这个测试域名,IP地址就是tf-node-alpha这个主机的IP地址(以后我们再说多主机的情况)。

home/topic/2021/1017/13/4f31dd84640d50e6569c8eae0cce6a35.png

访问

然后就可以打开浏览器访问了。

home/topic/2021/1017/13/bd6ec2ba3acc703cd28ce2d335a88c98.png

home/topic/2021/1017/13/b03dd852edacdd9b5a1dd189fa030aff.png

总结

今天福哥带着童鞋们学习了如何通过Rancher部署web服务,这里面设计到两个问题。

问题1,动态内容和镜头内容是分开部署的,如何结合到一起。教程里面是php和nginx的组合实现的动态和静态的组合部署技巧。

问题2,如何将Pod的端口发布出来,这里面涉及到了Rancher的负载均衡功能(Ingress)的使用技巧。