前面我们已经用Kubernetes部署了nginx集群,也用Docker分别部署了nginx和php-fpm服务,那么是否可以用Kubernetes来组合部署nginx和php-fpm呢?
答案是可以!
相当于把之前两次的部署方式结合起来,具体过程就不写了,配置文件有点多。
要点
- nginx采用Deployment+Service方式部署,Service暴露端口80;
- php-fpm同样采用Deployment+Service方式部署,Service暴露端口9000;
- nginx的配置文件中的php部分,请求php-fpm Service的9200端口;
- 程序目录同时映射到nginx的
/usr/share/nginx/html
和php-fpm的/var/www/html
目录 - 最后把nginx Service添加到Ingress。
MySQL
PHP开发中离不开MySQL,但是MySQL不能简单的这么扩容缩容,它有自己的主从策略。
如果多个MySQL容器共用一个数据目录,就会频繁报错:
[ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
[Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.