如何管理持续交付的kubernetes部署yaml文件?

问题描述:

比方说,我有一个简单的部署kubernetes配置:如何管理持续交付的kubernetes部署yaml文件?

kind: Deployment 
apiVersion: extensions/v1beta1 
metadata: 
    name: backend 
spec: 
    replicas: 1 
    template: 
    metadata: 
     name: backend 
    spec: 
     containers: 
     - name: backend 
     image: backend:1.0.0 
     resources: 
      limits: 
      memory: "500Mi" 
      cpu: "100m" 
     imagePullPolicy: Always 

我想有持续部署。

  • 一种方式做到这一点是简单地使用这个文件创建和更新运行类似kubectl set image deployment/backend backend=backend:1.1.0。但是,如果稍后我想改变限制,我将不得不找出当前的版本运行,取代yaml文件并应用它?似乎累赘

  • 谷歌似乎使用sed更换image version in their example,而这种作品的罚款,如果你kubernetes配置文件存储在同一回购为你的代码。而如果他们存储在其他地方,或者你的构建需要相当长的时间?因此,只需更改一个属性即可完成整个构建过程(可能太长)

  • 有一个脚本可以在每次部署后根据版本输入自动生成yaml文件,并且始终仅编辑模板(但是再次,您在哪里存储最后部署的版本?)

  • 某些第三方工具?

头盔图表成为日益流行的管理kubernetes部署的方式。简而言之,它允许您通过简单配置仅定义所需的变量来生成部署,并且还具有内置的升级机制。换句话说,它提供了元部署。

参考以下docs.