微服务web集群要求
1.实验myos:php-fpm创建后台应用php-app
2.创建php-service,为后端应用提供内部clusterIP和负载均衡
3.使用myos:nginx创建应用,并使用php-service解析php文件
4,创建web-service,发布nginx应用到nodePort
5.使用Ingress对外发布服务nginx应用
实战构建解析:
一般用户是通过云平台的负载均衡访问的kube-node节点,在这里的kube-node节点就是我们的k8s集群,kube-node通过对外访问的Ingress访问到对应的web-nginx的服务上,服务在访问对定的web-pod,此时是web-pod是提供解析的,当解析到动态页面的时候,需要去调用php-fpm的服务,让该服务提供给web-pod动态解析使用的php-fpm,此时web-pod和php-fpm容器需要固定的访问一些文件,这些文件是需要持久化的,所有需要使用类似月NFS这种可以提高持久化存储的软件,存储对应的文件.
步骤一:镜像的制作
当将nginx+php-fpm服务制作在一起的时候,我们会遇见依赖包对,配置负载,需要编译,多服务怎么样调用,文件如何共享的问题,为了解决这类问题我们将容器服务进行了拆分,将nginx与php-fpm服务分开成nginx镜像(只负责前端静态页面),php-fpm镜像(通过内部网络为nginx提供解析服务).nginx镜像和php-fpm镜像通信方式采用共享网络命令空间.
php-fpm镜像创建思路:php-fpm是后端服务,需要前段nginx调用,nginx调用后端php-fpm,是通过php-fpm监听网络端口,从网络把服务传递进来,针对php-fpm容器经常变化,我们可以使用service处理,让他们共享网络命令空间.service还可以起到负载均衡的作用.
[root@registry ~]# mkdir php-fpm
[root@registry ~]# cd php-fpm/
[root@registry php-fpm]# touch Dockerfile
FROM myos:latest
RUN yum install -y php-fpm && yum clean all
COPY www.conf /etc/php-fpm.d/www.conf
EXPOSE 9000
CMD "/usr/sbin/php-fpm","--nodaemonize"
[root@registry php-fpm]# docker run -it myos
[root@32a5d7afb55e /]# yum -y install php php-fpm
[root@32a5d7afb55e /]# cd /etc/php-fpm.d/
[root@32a5d7afb55e php-fpm.d]# ls
www.conf
[root@32a5d7afb55e php-fpm.d]# vim www.conf
12 listen = 0.0.0.0:9000
24 ;listen.allowed_clients = 127.0.0.1
[root@32a5d7afb55e php-fpm.d]# /usr/sbin/php-fpm --nodaemonize &
[root@32a5d7afb55e php-fpm.d]# ss -untlp
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
tcp LISTEN 0 128