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

Dev*_*Dev 5 kubernetes

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

我收到以下错误, chmod:更改“/root/.ssh/id_rsa”的权限:只读文件系统

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

volumes:
- name: gitsecret
  secret:
    secretName: git-keys
VolumeMounts:
- mountPath: "/root/.ssh"
  name: gitsecret
  readOnly: false
Run Code Online (Sandbox Code Playgroud)

谢谢

Cro*_*rou 5

正如您所说,您的 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"]
Run Code Online (Sandbox Code Playgroud)

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


Rya*_*son 2

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