我们正在尝试使用Kubernetes部署我们的应用程序,目前,我们拥有+30个微服务,并且文件混乱。
我们尝试了Kustomization添加补丁并根据覆盖创建ConfigMap,并且还合并了一些文件。但是我们总是需要创建很多文件,每个部署/服务一个。最后,当我们要更新某些内容(例如副本)时,会有些痛苦。
---
apiVersion: v1
kind: Service
metadata:
name: service1
spec:
ports:
- port: 3000
selector:
app: service1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: service1
spec:
selector:
matchLabels:
app: service1
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: service1
spec:
containers:
- image: pyfarm-registry.local:5000/pyfarm/svclocation:dev
name: service1
envFrom:
- configMapRef:
name: configName
ports:
- containerPort: 3000
imagePullSecrets:
- name: local-registry
我们已将此文件复制了30次,更改了名称和env变量。但是我确信必须要有一些解析这些模板的东西。
我们已经尝试实现Helm,但并不是我们所发现的。
例如我们可以使用变量创建1个文件并生成其他30个文件,还需要不同的命名空间。有可能吗?
我们发现的唯一解决方案是使用bash,但是还有更优雅的方法吗?
答案 0 :(得分:1)
由于Kustomization和Helm template(正如您提到的安全性/特权原因)对您不起作用,因此我认为您无法做其他任何事情。 除BASH脚本是Tempalte Designers之外,只有我想到的事情:
1)Jinja2,它是Python的模板语言。借助可选的沙盒模板执行环境,它可以快速,广泛地使用并且安全。
2)Mustache是一个简单的Web模板系统,其实现可用于ActionScript,C ++等。由于没有if语句,else子句或for循环,因此将其称为“无逻辑”。
答案 1 :(得分:0)
说实话,感觉头盔似乎完全适合您在这里所做的事情。赫尔姆(Helm)的超级大国正在模板化和发布/变更管理。
它对您有什么用?