上节说了RBAC的使用方法,这次实践的方式部署下wordpress,之前也用docker-conpose的方式部署过wordpress,wordpress里面包含两部分,一个程序方式,一个是mysql数据库。现在通过不同的思路来解读如何通过k8s完成服务编排。
(一)一个Pod
创建一个命名空间
编写yaml单个文件
wordpress-pod.yaml
mysql这个容器我们做了一个数据卷的挂载,这是为了能够将mysql的数据能够持久化到节点上,为了保证数据不丢失,容器挂了,重启数据还是通过挂载点
运行yaml文件
查看描述详情
单pod的问题
针对pod进行扩容,结果wordpress程序扩容没问题,但是mysql数据库怎么办啊 给三份啊,明显这种是不行的。数据必须唯一性啊。真的这么简单的话就不需要各种数据库集群解决方案了。那怎么办?拆分成2个pod不就可以了。下面咱们一起实践。
(二)两个Pod
wordpress 一个pod,mysql一个pod。在结合之前学到的知识。
编写wordpress-all.yaml
运行上边的yaml 尝试访问
自动应对流量高峰期
访问下wordpress
192.168.86.100:31306
查看dashboard
自动扩容
解析这个yaml 分析它
通过---来进行分块编写。
都在同一的一个命名空间下。
通过Deployment来管理我们的Pod。
最上边是mysql,如何让mysql和wordpress进行通信要用到一个之前说过的service,type没有写默认的还记得吧都是ClusterIP,集群内可以相互访问。
但是针对wordpress要暴露服务的,需要使用type: NodePort,添加了Nodeport,指定31306的端口。
滚动更新策略,这样可以保证我们在更新应用的时候服务不会被中断RollingUpdate。
mysql重新创建后,clusterIP非常有可能就变化了,不能使用ip的方式,直接通过环境变量别名的方式来写mysql:3306。
为了确定在mysql运行起来之后在运行没wordpress,使用了容器初始化InitContainer的用法,直到mysql服务创建完成后,initContainer才结束,结束完成后我们才开始下面的部署。initContainers。
健康检测,我们前面说过liveness probe和rediness probe是提高应用稳定性非常重要的方法,每10s检测一次应用是否可读,每3s检测一次应用是否存活。
增加 HPA,让我们的应用能够自动应对流量高峰期。
PS:各位老铁下去仔细看下yaml的编写 和添加下 自动扩缩容,主要wordpress提高应用稳定性的方式和方法,这都是前面学习过的,等于把前面一起学习的回顾下。
领取专属 10元无门槛券
私享最新 技术干货