小说馆-架构说明
小说馆项目一些架构的考虑
- k8s集群架构
- 数据库架构
- nginx集群架构
k8s的高可用方案
首先考虑k8s的高可用方案
https://zhuanlan.zhihu.com/p/106531282
按功能组划分
- SLB
- LVS
- HAProxy
- etcd
- K8S Node (Master / Worker)
本次项目使用的方案为keepalived+haproxy
架构图来自于kubesphere官方文档C
https://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/on-premises/install-kubesphere-on-vmware-vsphere/
数据库方案
本次项目采用两个集中式数据库Mariadb10.6,虽然本次只部署静态网页,kubesphere数据也没有存储到数据库……说不定过一段时间心血来潮就实现了呢?嗯,大概……
本次部署,架构方面采取一主一从,主从复制,为后端读写分离做准备。
数据库主从复制原理图
一主两从示例图(本次项目一主一从)
读写分离技术博客参考:
https://zhuanlan.zhihu.com/p/199217698
(示例图提供)
https://blog.csdn.net/inrgihc/article/details/108293738
https://www.cnblogs.com/donlyluik/p/database_split.html
Web部署方案
book页面采用cloudflare pages部署。这里的 Serverless 架构主要体现的价值是:
事件触发能力:函数计算服务与事件源(OSS)的原生集成让使用者无需管理队列资源,队列自动扩展,实时处理上传的多媒体文件;
高弹性和按需付费:图片和视频(不同大小的视频)需要的计算资源规格是不同的,流量的波峰波谷对资源的需求是不同的,现在这种弹性由服务提供,按照用户的真实使用去扩容缩容,让用户 100% 地利用资源,无需为闲置资源付费。
story页面采用Nginx集群部署,暂时使用NodePort访问,当然也可以选择vip节点访问。
nginx访问(本次项目使用NodePort)
参考:
https://zhuanlan.zhihu.com/p/495599653
部分的容器挂载pvc持久卷,pvc持久卷由nfs服务器提供。