我有一个包含许多不同命名空间的gke集群。我希望能够实际命名我的图像,就像我的其他资源被命名空间一样。也就是说,我希望不同命名空间中的pod能够使用相同的名称引用图像,但是根据它们所在的命名空间来获取不同的图像。实现此目的的一种方法(如果它受支持)可能是将名称空间的名称替换为yml中的图像名称,例如:
containers:
- image: eu.gcr.io/myproject/$(NAMESPACE)-myimage
name: myimage
然后我可以推送eu.gcr.io/myproject/mynamespace-myimage
使我的图像可用于命名空间mynamespace
。
有没有任何整洁的方法来实现这种事情。如果没有,并且因为我一直无法找到其他人提出类似的问题,那么有什么方法可以做这件坏事吗?
答案 0 :(得分:1)
我不认为这是可能的。 Kubernetes支持command
和args
等字段的扩展。这允许您使用容器的env
字段中的变量集替换,该字段可以来自configmap / secret。示例:many things
但我不认为变量扩展适用于image
字段。 :(
您尝试做的事情似乎并不是一个好主意:在多个环境中拥有不同的图像会破坏测试/登台环境的目的。
相反,您应该使用相同的图像在所有平台上进行测试,方法是更改env vars,configMaps等。