我可以使用模板部署Kubernetes吗?

时间:2019-04-25 01:32:11

标签: kubernetes

我们正在尝试使用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,但是还有更优雅的方法吗?

2 个答案:

答案 0 :(得分:1)

由于KustomizationHelm template(正如您提到的安全性/特权原因)对您不起作用,因此我认为您无法做其他任何事情。 除BASH脚本是Tempalte Designers之外,只有我想到的事情:

1)Jinja2,它是Python的模板语言。借助可选的沙盒模板执行环境,它可以快速,广泛地使用并且安全。

2)Mustache是一个简单的Web模板系统,其实现可用于ActionScript,C ++等。由于没有if语句,else子句或for循环,因此将其称为“无逻辑”。

答案 1 :(得分:0)

说实话,感觉头盔似乎完全适合您在这里所做的事情。赫尔姆(Helm)的超级大国正在模板化和发布/变更管理。

它对您有什么用?