我们现在是开发测试环境给开发自己玩,生产环境是运维部署到 k8s ,要是发新版,yaml 改了,得和开发那边人肉同步,手动改生产环境配置,想问问大佬们是怎么做的。 不用把 yaml 放开发的代码仓库里那种方式。
![]() |
1
LeegoYih 184 天前
配置中心
|
![]() |
2
chendy 184 天前 ![]() > 不用把 yaml 放开发的代码仓库里那种方式。
起手排除正确答案之一 要么 git 管理+自动化工具部署 要么数据库管理+自动化工具部署 |
![]() |
3
billzhuang 184 天前
你们那些 secrets 比如数据库连接字符串之类,是明文放在 yaml 里的么?
|
4
yandong1228 184 天前
我边看边打字 刚写完 gitops 是你需要的
结果看到最后你说”不用把 yaml 放开发的代码仓库里那种方式。“ 不过 gitops 不是放到开发的仓库 放到运维自己的仓库 |
![]() |
5
mango88 184 天前
可以试试这个 kustomize
vault 之类与环境有关的配置可以与基础配置分离,改了生产的数据库连接 也不用跟开发同步 但是不放在代码库,版本管理怎么做呢 ? |
6
nulIptr 184 天前
为啥不把 yaml 放 git ?
|
![]() |
8
perfectlife 184 天前
@billzhuang 放配置中心里
|
![]() |
9
perfectlife 184 天前
yaml 单独一个仓库,ci 最后一步去 git clone yaml 然后 sed xxx 然后 git push
|
10
S2Line 184 天前
配置中心分租户,然后同步
|
![]() |
11
lamesbond OP 开发是不管 k8s yaml 的,他们会加环境变量啊,加启动参数啊这些,我在部署到生产环境的时候怎么把开发改的配置同步到生产环境呢?
我的想法是:写个工具把开发环境的 pod 配置拉下来,kubectl get pods xxx -o yaml 这样的,然后把多余字段去掉,上传到运维 git 仓库里,生产环境里直接 git pull 拉 yaml 文件,然后 kubectl apply -f |
12
Illusionary 184 天前
你需要一个云原生 CICD 工具
|
13
kikyou12138 183 天前
用 helm 管理变量,git 保存 yaml ,所有环境 yaml 都是一样的,不一样的部分都摘出来
|
14
geekyouth 183 天前
kubecm: <https://github.com/sunny0826/kubecm>
|
![]() |
15
hemingway 183 天前
赞同 13 楼,用 helm 包来管理吧。
|
![]() |
16
HarveyZh 183 天前
我是用 teamCity 部署,部署到哪个环境 就运行哪个环境的配置. 只要在配置中的环境变量改成当前的即可.
|
![]() |
17
eudore 183 天前
首页集群配置是不允许开发修改,其次运维缺少标准化应用模板。
使用 git 作为版本工具保存 ci 模板和 helm 模板即可,项目使用{{git 组-git 名称}}二元组作为 cicd 唯一资源标识,根据项目的类型、语言、框架分类,cicd 配置打包和部署对每一类使用同一个模板,在 gitlab ci 一类项目引用同一个 ci 配置文件,在 k8s 部署一类项目使用同一个 helm 模板,这样将所有应用进行标准化配置,开发只需要提交代码就可以使用 cicd 自动打包部署,至于其他非应用项目固定写死就好了。 每一类应用的应用参数都是提前配置好的不需要动,同时也是一个团队的技术规范,如果不能标准化容器操作会比较累,如果收不了开发的生产部署权限建议润。 |
![]() |
18
codingBug 183 天前 via Android
多集群管理?
|
![]() |
19
strawberryBug 183 天前 via Android
关键词 gitops 。 可以试试 argocd + git ,yaml 有变更触发自动部署
|
![]() |
20
tudou1514 183 天前
比较官方点就是 helm 和 kustomize ,也可以 gitops 配 Argocd
|
21
winglight2016 182 天前
configmap 不就干这事儿的吗? envFrom 即可
|
![]() |
22
xabcstack 172 天前
|
![]() |
23
runzhliu 128 天前
gitlab+webhook 的方式
|