首页 > 解决方案 > k8s:创建部署时使用参数化图像标签

问题描述

我想以kubernetes如下方式运行部署:

apiVersion: v1
kind: Deployment
metadata:
  name: my-deployment
  namespace: my-namespace
spec:
  replicas: 1
  template:
    spec:
      containers:
      - name: my-app
        image: our-own-registry.com/somerepo/my-app:${IMAGE_TAG}
        env:
        - name: FOO
          value: "BAR"

这将交付给开发人员,以便他们可以使用他们偏好的图像标签执行按需部署。

传递标签变量的最佳方式/推荐模式是什么?

在命令行上执行导出以使其在kubectl运行命令的 shell 上作为 env var 可用?

标签: shelldeploymentkubernetes

解决方案


不幸的是,通过原生 kubernetes 工具是不可能的。从这里

kubectl 永远不会支持变量替换。

但是,该问题案例也有一些很好的解决方法。最好的方法是使用模板通过图表部署您的应用程序Helm


推荐阅读