小团队用springboot+vue开发一套产品。
正好tx云打折,三年4c16g的1k多,买了一台,然后在上面安装了rancher k8s系统,在上
面部署了gitlab和一些其他组件,比如yapi,用于团队代码管理和协作开发
随后一个电信的朋友给了一个优惠,三台天翼云4c,16g,一年也就1k多,正好拿来测试,
于是我又折腾了一套rancher的集群环境,主要用于gitlab runner和测试环境的部署。
主要的组件:
tx云: gitlab+pgsql+redis, yapi
天翼云: gitlab runner, 后端+前端+mysql+redis, nexus仓库
同时因为云盘都比较小,tx云上还用cos(对象存储),将gitlab的artifacts保存在tx云
上。
不要问我为什么不直接卖rke,gke这样的容器云产品,问就是没钱。而且可折腾的余地太
小。
现在基本上能做到,上传代码后,创建一个tag,就自动触发ci、cd,并生成docker镜像
,然后通知rancher重启服务。然后docker镜像和maven package都放在nexus仓库。
说一下感想:
1、rancher相对于原生的k8s系统来说,操作简化方便了不少,包括deployment的创建,
service等各种资源的创建,ingress映射都可以在web界面完成。各种应用组件的部署大
多就像搭积木一样,非常方便。而且相对于原生的k8s系统而言,只需要运行一个docker
命令即可创建。
2、比较爽的是ssl证书的管理,我花了100多在tx买了一个域名,然后就可以自动创建n个
子域名并申请一年的证书,rancher利用ingress部署证书非常方便。
3、因为不想网站运行在非443端口,我还去弄了个个人备案,tx云这点挺好,备案的细节
都帮你考虑到了,大概2周备案完成,备案完成后,服务器我就从9443端口切到443端口了
。
4、gitlab还有个很好玩的功能,header message里填入备案号,就可以在每个页面显示
备案信息(不显示会被关服务)
5、k8s的玩法多种多样,有手撸yml文件和helm配置文件的,也有直接在rancher界面上配
置的。大部分情况helm部署很方便,但是由于细节封装了很多,n多的配置细节让人抓狂
。所以gitlab我直接用yml部署后,写/etc/gitlab/gitlab.rb。
6、gitlab runner在k8s上的pipeline也挺繁琐的,他的每个pipeline的instance是独立
的,只能通过cache和artifacts来共享数据。为此,我还专门去弄了一个rook-ceph,将
天翼云上的三台服务器的云盘弄成一个ceph存储集群,然后提供object storage来做
gitlab runner的cache
7、说起rook-ceph,这个云原生的分布式存储集群确实很方便,可以把rancher集群的所
有磁盘都整合成一个大的存储池,然后在上面创建文件系统,块设备,oss都很方便。
先写这么多,有人有兴趣的话,后面我会总结一下搭建过程以及踩过的坑。
--
FROM 183.95.251.*