我已经签出了helm.sh当然,但乍一看整个设置似乎有点复杂(掌舵客户端&分蘖服务器)。在我看来,我可以通过在大多数情况下拥有一个掌舵客户端而逃脱。如何版本控制kubernetes应用程序?
这是我目前做
比方说,我有一个3个服务即组成项目。 postgres
,express
,nginx
。
我创建了一个名为product-release
目录如下:
product-release/
.git/
k8s/
postgres/
Deployment.yaml
Service.yaml
Secret.mustache.yaml # Needs to be rendered by the dev before use
express/
Deployment.yaml
Service.yaml
nginx/
Deployment.yaml
Service.yaml
updates/
0.1__0.2/
Job.yaml # postgres schema migration
update.sh # k8s API server scritps to patch/replace existing k8s objects, and runs the state change job
通常的混帐东西,现在可以申请。每次我做出更改时,我都会对规格文件进行更改,测试它们,编写更新脚本以帮助从最新版本移动到当前版本,然后提交并标记它。
问题:
- 这个工作对我来说,到目前为止,但就是这个 “正确的方式”?
- 为什么
helm
有分蘖机服务器?在客户端做模板不是更简单吗?当然,如果你想将部署的活动与应用程序的知识(如秘密)分开,模板将不得不在服务器上发生,但为什么?