将 Kubernetes 机密挂载为具有 rw 权限的文件



我正在尝试从 kubernetes sceret 在 POD 中创建一个文件,但我面临一个问题,例如,我无法更改已部署文件的权限。

我得到下面的错误,chmod:更改"/root/.ssh/id_rsa"的权限:只读文件系统

我已经为相同的应用了默认模式和模式,但它仍然不起作用。

volumes:
- name: gitsecret
  secret:
    secretName: git-keys
VolumeMounts:
- mountPath: "/root/.ssh"
  name: gitsecret
  readOnly: false

谢谢

正如你所说,你的 Kubernetes 版本是 1.10,文档可以在这里找到

您可以查看@RyanDawson提供的 github 链接,在那里您将能够找到这个RO标志用于configMapsecrets是有意为之的。可以使用功能门ReadOnlyAPIDataVolumes禁用它。您可以按照本指南了解如何使用功能入口禁用功能。

作为解决方法,您可以尝试以下方法:

containers:
  - name: apache
    image: apache:2.4
    lifecycle:
      postStart:
        exec:
          command: ["chown", "www-data:www-data", "/var/www/html/app/etc/env.php"]

您可以在 Kubernetes 文档中找到解释 将处理程序附加到容器生命周期事件

对此

有一些来回,但大概您使用的是 k8s 版本,无论您如何设置标志,configmap 和 secret 都是只读的 - 问题是 https://github.com/kubernetes/kubernetes/issues/62099 我认为您需要遵循那里的建议并创建一个空的 Dir 卷以将相关文件复制到其中。

最新更新