Kubernetes - 跨命名空间共享秘密

问题描述 投票:35回答:3

有没有办法在Kubernetes中跨命名空间共享秘密?

我的用例是:我的所有命名空间都有相同的私有注册表,我想避免为每个命名空间创建相同的秘密。

谢谢你的帮助。

namespaces kubernetes
3个回答
29
投票

Secret API对象驻留在命名空间中。它们只能由同一名称空间中的pod引用。基本上,您必须为每个命名空间创建secrete。

https://kubernetes.io/docs/concepts/configuration/secret/#details


23
投票

它们只能由同一名称空间中的pod引用。但您可以将秘密从一个名称空间复制到另一个名称空间。以下是将localdockerreg秘密从default名称空间复制到dev的示例:

 kubectl get secret localdockerreg --namespace=default --export -o yaml | kubectl apply --namespace=dev -f -

UPDATE

在Kubernetes v1.14中,--export旗帜是deprecated。因此,带有-oymal标志的以下命令将在即将发布的版本中没有警告的情况下工作。

kubectl get secret localdockerreg --namespace=default -oyaml | kubectl apply --namespace=dev -f -

2
投票

正如Innocent Anigbo所回答的那样,您需要在同一名称空间中拥有秘密。如果你需要支持动态或避免伪造秘密创建,有可能为命名空间对象https://kubernetes.io/docs/admin/extensible-admission-controllers/创建一个初始化器(我自己没有这样做,所以无法确定)


0
投票

kubectl得到秘密gitlab-registry --namespace = revsys-com --export -o yaml | \ kubectl apply --namespace = devspectrum-dev -f -

© www.soinside.com 2019 - 2024. All rights reserved.