1. 介绍
1.1 介绍
今天福哥要带着大家来通过Rancher部署PHP环境了,同样的我们还是使用php:7.4-fpm-buster这个镜像作为基础镜像。因为php-fpm不能处理静态页面内容,所以我们还会使用nginx:1.20这个镜像作为基础镜像部署一个Nginx环境。就是PHP环境只处理PHP程序,而Nginx环境负责处理镜头内容。
还有一点需要注意的是,这个环境的部署和前面的MySQL、Redis、Elasticsearch不同的是,PHP环境是提供web服务的,它不仅仅需要在Rancher里面可以访问到,还需要通过浏览器也可以访问,这里面会用到Rancher的负载均衡(Ingress)功能。
2. 部署PHP
2.1 名称
名称是php-fpm。
2.2 工作负载类型
工作负载类型这次选择的是无状态应用。
2.3 Docker镜像
Docker镜像是我们前面学习的php-fpm的镜像,里面包括了tfphp和tfums两个项目的配置参数。
2.4 命名空间
命名空间是php。
2.5 端口映射
端口映射福哥开启了8168和8170两个端口,对应着tfphp和tfums两个项目。
2.6 主机调度
主机调度选的是tf-node-alpha这个机器,也就是192.168.2.169这个机器。
2.7 健康检查
虽然我们开放了两个端口,但是健康检查里面只能配置一个,那就8168好了。
2.8 数据卷
福哥配置了两个项目,自然就需要映射两个目录了。不过,这次为了省事暂时没有将TFPHP和TFUMS项目复制进来,只是建立了两个空的目录而已。
2.8.1 建立目录
mkdir -p /tongfu.net/web/TFPHP/
mkdir -p /tongfu.net/web/TFUMS/
2.8.2 tfphp
2.8.3 tfums
3. 部署Nginx
3.1 名称
名称是php-nginx。
3.2 工作负载类型
工作负载类型这次选择的是无状态应用。
3.3 Docker镜像
Docker镜像是我们前面学习的php-nginx的镜像,里面包括了tfphp和tfums两个项目的配置参数。
3.4 命名空间
命名空间是php。
3.5 端口映射
端口映射福哥开启了8068和8070两个端口,对应着tfphp和tfums两个项目。
3.6 主机调度
主机调度选的是tf-node-alpha这个机器,也就是192.168.2.169这个机器。
3.7 健康检查
虽然我们开放了两个端口,但是健康检查里面只能配置一个,那就8068好了。
3.8 数据卷
福哥配置了两个项目,自然就需要映射两个目录了。不过,这次为了省事暂时没有将TFPHP和TFUMS项目复制进来,只是建立了两个空的目录而已。
3.8.1 建立目录
mkdir -p /tongfu.net/web/TFPHP/mkdir -p /tongfu.net/web/TFUMS/
3.8.2 tfphp
3.8.3 tfums
4. 查看服务
4.1 列表
完成部署后可以在列表里面看到php-fpm和php-nginx两个服务。
5. 负载均衡tfphp
5.1 名称
名称就是tfphp。
5.2 命名空间
命名空间是php。
5.3 规则
规则就是php-nginx的8068端口。
6. 负载均衡tfums
6.1 名称
名称就是tfums。
6.2 命名空间
命名空间是php。
6.3 规则
规则就是php-nginx的8070端口。
7. 查看负载均衡
7.1 列表
完成初始化后就可以在列表中看到了。
8. 测试
8.1 hosts
首先我们需要配置一个hosts本地解析来解析tongfu.dev这个测试域名,IP地址就是tf-node-alpha这个主机的IP地址(以后我们再说多主机的情况)。
8.2 访问
然后就可以打开浏览器访问了。
9. 总结
今天福哥带着童鞋们学习了如何通过Rancher部署web服务,这里面设计到两个问题。
问题1,动态内容和镜头内容是分开部署的,如何结合到一起。教程里面是php和nginx的组合实现的动态和静态的组合部署技巧。
问题2,如何将Pod的端口发布出来,这里面涉及到了Rancher的负载均衡功能(Ingress)的使用技巧。