你能告诉k8s基于git版本进行部署吗?有什么选择

时间:2018-04-18 16:48:05

标签: kubernetes

通常我会使用ansible将我的代码部署到服务器。

使用k8s,有哪些选项?

由于所有内容都在容器中,我想最好的做法是针对不可变部署而不是更新正在运行的实例上的代码?

是否可以只更新.yaml文件中的git revision#,你可以将它从特定版本拉出来进行部署吗?

2 个答案:

答案 0 :(得分:0)

https://helm.sh/可以帮到你。

以下是您需要采取的步骤:

  • 将您的应用(带图片标记的yaml作为模板参数)打包为头盔图<your-helm-chart>
  • 您的图表的values.yaml(输入到yaml模板)将有一个参数git_commit_id: <some-id>
  • 您的yaml模板采用图片代码参数:image: your-app:{{ .Values.git_commit_id }},来自values.yaml
  • 您将以helm install <your-helm-chart>部署您的应用,这将为您提供<release name>
  • 以及稍后需要使用新图片代码进行更新时:helm upgrade <release-name> <your-helm-chart> --set git_commit_id=NEWID

答案 1 :(得分:0)

设置Jenkins,从Git repos构建每个应用程序的Docker容器。使用Git修订版或其他任何东西(我喜欢提交编号)标记图像。将它推送到Docker私有注册表。

将群集的所有* .yaml放入Git存储库。提交推送对这些配置的更改。在群集端 - 拉 - 应用。