为所有命名空间创建密钥

4

当我使用 Rancher 创建一个应该在所有命名空间中可见的 secret 时,它会创建一个没有 namespace 标签且 namespaceId: null 的 secret。

如何在不使用 Rancher 的情况下创建这样的 secret?当我使用 kubectl 时,它总是将其绑定到命令上下文中的命名空间。


我更喜欢使用"如果不存在则创建"的方式,这在持续集成/持续交付中非常有效。例如,Docker Secret可以使用以下命令实现:(kubectl get secret gitlab-com --namespace=${NAMESPACE} || kubectl --namespace=${NAMESPACE} create secret docker-registry gitlab-com --docker-server=$CI_REGISTRY --docker-username=$GITLAB_REG_USER --docker-password=$GITLAB_REG_PASSWORD --docker-email=DOCKER_EMAIL) - Adiii
1个回答

5

kubectl 目前不支持跨命名空间创建 secrets。

它们仅适用于单个命名空间。Rancher 支持在项目级别创建 secrets,它将把 secret 复制到项目中所有的命名空间(现有和未来)。此外,该功能尚未包含在 rancher 的 cli 中。

在 Kubernetes 中,有一些解决方案可用于在命名空间之间复制 secret 和 configmap 。

您可以查看这些开源项目:

  1. https://github.com/zakkg3/ClusterSecret
  2. https://github.com/mittwald/kubernetes-replicator

这个复制是如何工作的?它只能与在Rancher中创建的命名空间一起工作,还是也可以与直接使用kubectl创建的命名空间一起工作? - 9ilsdx 9rvj 0lo
使用kubectl创建,并在内联注释中添加,如果您阅读文档,则有推送和拉取选项。 - Harsh Manvar
这个问题有任何更新吗?下面的答案解决了你的问题吗?如果解决了问题,请随意将答案标记为已接受,或者如果发现它有帮助,请点赞。 - Harsh Manvar
有关此事是否有任何更新?如果答案有帮助,请随时更新问题状态并接受答案,或者如果发现有帮助,请点赞。 - Harsh Manvar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接