【问题标题】:Kubernetes: Delete secret from podKubernetes:从 pod 中删除秘密
【发布时间】:2019-01-28 13:31:46
【问题描述】:

我有 pod 正在运行我的应用程序。吊舱还包含我的秘密。映射到/secret/mysecret.json 的秘密。我用 ssh 连接到我的 pod 并尝试从这个 pod 实例中删除秘密:

rm /secret/mysecret.json

我收到错误:

rm: cannot remove 'mysecret.json': Read-only file system

根据this article,我尝试将readOnly设置更改为False。没有成功。

也尝试卸载它,出现错误:

$ umount /secret/mysecret.json
  umount: /app/secrets/app-specific: must be superuser to unmount

如何从 pod 中删除秘密?

【问题讨论】:

    标签: kubernetes kubectl google-kubernetes-engine


    【解决方案1】:

    你应该用 Kubernetes 的方式来处理这个问题:

    kubectl delete secret <<secret name goes here>>
    

    【讨论】:

    • 这将从集群中删除密钥。我正在寻找从 pod 实例中删除机密文件(在加载和读取机密之后)。
    • 没有在 k8s 集群上部署(但允许它们运行或托管)后删除或卸载工件的概念。为什么这甚至是一项要求?
    • 读完证书后,我不想把他们留在那里。只想毁灭他们。这是安全问题。
    • 你必须明白,Pod 来来去去,就像 k8s 的任何其他特性一样,如果 Pod 消失了,你将如何确保在它们再次实例化时保留秘密!
    • @RaunakJhawar 你没有明白这一点。删除机密的能力可以大大提高容器化应用程序的安全性,以便仅将机密存储在应用程序的内存中,而不是存储在环境或文件中,因为它们在容器启动后确实需要。
    【解决方案2】:

    您不能从 pod 中删除 secret,因为它被映射为卷。即使您设法删除,它也会被重新创建。因此,如果您想从 pod 中删除秘密,请更改 pod 规范并从规范本身中删除该秘密 conf。

    【讨论】:

    • 感谢您的回答。如果不将它们从 YAML 文件中删除,就无法删除这些文件。那么,为什么这里提到了readOnly 选项?
    • 只读选项用于使其不可更改。一旦创建,您就无法编辑该秘密。它与删除或删除无关。
    【解决方案3】:

    你必须先删除证书

    kubectl delete certificates &lt;&lt;secret name goes here&gt;&gt;,然后删除密码

    kubectl delete secret &lt;&lt;secret name goes here&gt;&gt;.

    【讨论】:

      猜你喜欢
      • 2019-12-26
      • 2021-08-24
      • 2019-12-27
      • 2019-03-16
      • 2021-05-29
      • 2019-04-23
      • 2018-08-13
      • 2023-01-20
      • 2021-09-21
      相关资源
      最近更新 更多