佬们公司服务k8s服务上线流程是啥样的?

是这样的,我们项目部署甲方k8s后,现在要接入其他系统数据,但是这部分数据只能在生产环境中有,那现在要做业务功能实现,有没有啥好的流程,让我可以将程序在生产环境中测试,成功之后再替换生产服务,最好是能体现无感切换和还原;
目前我想到的是在生产环境搞一套前后端的beta服务,先在beta环境测试,然后通过了再升级正式的服务

12 Likes

我们是部署了三套k8s,一个正式k8s服务,一个测试k8s服务(正式数据库),一个全测试k8s。其中测试k8s(正式数据库)中连的数据库是每周定时从正式数据库同步过来的。然后本地开发环境走本地公用本地测试库,然后提交git代码分支先往dev提交合并,会自动更新到全测试k8s服务上,有专门的人进行测试。测试通过后,将git分支提交到pre_master分支,会更新到测试k8s(正式数据库)上进行二次测试。都没问题了将git的pre_master分支合并到master上进行更新。

4 Likes

灰度发布了解一下,金丝雀,ingress-nginx支持的切流

1 Like

我们是交付型的,甲方服务器也不支持部署这么多k8s的

交付模式的直接一个脚本启动,失败了或出错了就重新发布

vCluster 在线上隔离 k8s 服务。

:rofl: 你这过于将生产环境当儿戏,虽然实际中就是这么干的

还好吧,又不是只有生产,一般都是测试,预发,生产三套环境吧

没,测试一般是公司测试环境,没有甲方本地的测试环境,甲方本地只有生产环境

那就用namespace隔离即可,求稳用蓝绿

我这线上环境都分多套租户,有个租户是专供测试用的,遇到您这种情况一般是发个beta版本
在测试租户上测试,如果需要数据同步会把特定租户的数据同步一份.

1.本地代码拉分支,连生产库把业务功能实现。如果有专业的测试团队,那就像你说的,再部署一套前后端服务(服务连接生产数据库);
2.功能测试通过后,合并代码分支到生产;
3.通过k8s的滚动升级进行部署,正在运行的服务不受影响,滚动原理就是,先启动一个新的容器,部署成功后,会自动把老的实例kill掉。

像我这公司要求7点后发版,不过因为不会影响用户线上运行,一般我们5点半发个版,点点没问题就撤了

我司生产就是这样,临时起套蓝绿环境(k8s起套按量付费的节约成本),切流量。配置中心需要两套prod和prod-{蓝绿}

我们用的spinnaker,分了3个集群,本地测试,线上测试和生产环境。开发人员自己推本地测试。开发自己测试完后提交线上测试环境。测试人员测试完成后,手工确认自动推到生产环境

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。