我当然检查了 helm.sh,但乍一看,整个设置似乎有点复杂(helm-client 和 tiller-server)。在我看来,在大多数情况下,我只需拥有一个 helm-client 就可以摆脱困境。
这就是我目前所做的
假设我有一个由 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
通常的 git 东西现在可以应用了。每次进行更改时,我都会更改规范文件,对其进行测试,编写更新脚本以帮助从上一个版本迁移到当前版本,然后提交并标记它。
问题:
- 到目前为止,这对我有用,但这是“正确的方法”吗?
- 为什么
helm
会有分蘖服务器?在客户端做模板不是更简单吗?当然,如果您想将部署的活动与应用程序的知识(如机密)分开,则模板必须在服务器上进行,否则为什么呢?