在 emptyDir 卷上设置权限

在 emptyDir 卷上设置权限

特性状态: Alpha since Kubernetes v1.37; (默认禁用)
More information about this feature

To use this feature, you (or a cluster administrator) will need to enable the EmptyDirVolumeMode feature gate for all relevant components in your cluster.

See Enable Or Disable Feature Gates for more information.

本页介绍如何使用 mode 字段在 emptyDir 卷目录上设置 Unix 权限位。

准备开始

你必须拥有一个 Kubernetes 的集群,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:

你的 Kubernetes 服务器版本必须是 v1.37.

要获知版本信息,请输入 kubectl version.

你需要在 API 服务器 kubelet 上启用 EmptyDirVolumeMode 特性门控

创建使用带自定义权限 emptyDir 卷的 Pod

emptyDir.mode 字段允许你在卷目录上设置 Unix 权限位 (八进制范围从 000001777)。如果未指定,目录将以默认的 0777 权限创建。

例如,要创建一个设置了粘滞位(sticky bit)的共享 /tmp 目录, 使得只有文件所有者可以删除自己的文件:

apiVersion: v1
kind: Pod
metadata:
  name: emptydir-mode-demo
spec:
  containers:
  - image: registry.k8s.io/busybox
    name: test-container
    command: ["sleep", "3600"]
    volumeMounts:
    - mountPath: /tmp
      name: tmp-volume
  volumes:
  - name: tmp-volume
    emptyDir:
      mode: 01777
  1. 在你的集群上创建 Pod:

    kubectl apply -f https://k8s.io/examples/pods/emptydir-volume-mode.yaml
    
  1. 验证 Pod 正在运行:

    kubectl get pod emptydir-mode-demo
    
  1. 检查已挂载卷的权限:

    kubectl exec emptydir-mode-demo -- ls -ld /tmp
    
    1. 删除你为这个练习创建的 Pod:

      kubectl delete pod emptydir-mode-demo
      

    接下来

    最后修改 August 28, 2026 at 10:45 AM PST: [zh-cn]sync configure-emptydir-volume-mode (bf841883af)