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.mode 字段允许你在卷目录上设置 Unix 权限位
(八进制范围从 0000 到 01777)。如果未指定,目录将以默认的
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
在你的集群上创建 Pod:
kubectl apply -f https://k8s.io/examples/pods/emptydir-volume-mode.yaml
验证 Pod 正在运行:
kubectl get pod emptydir-mode-demo
检查已挂载卷的权限:
kubectl exec emptydir-mode-demo -- ls -ld /tmp
删除你为这个练习创建的 Pod:
kubectl delete pod emptydir-mode-demo
emptyDir 卷的信息