如何在Kubernetes YAML文件中配置--tmpfs挂载?
Kubernetes 配置docker --tmpfs参数的实现方案
对应你提供的docker run命令,转换后的Kubernetes Pod完整YAML配置如下:
apiVersion: v1 kind: Pod metadata: name: ubuntu-gnome-vnc spec: restartPolicy: Never # 对应docker --rm参数,容器退出后Pod自动清理 containers: - name: ubuntu-gnome image: darkdragon001/ubuntu-gnome-vnc securityContext: capabilities: add: - SYS_BOOT - SYS_ADMIN # 对应--cap-add参数 ports: - containerPort: 5901 hostPort: 5901 - containerPort: 6901 hostPort: 6901 # 对应-p端口映射参数 volumeMounts: # 以下三个挂载对应--tmpfs参数 - mountPath: /run name: tmp-run - mountPath: /run/lock name: tmp-run-lock - mountPath: /tmp name: tmp-tmp # 对应cgroup绑定挂载参数 - mountPath: /sys/fs/cgroup name: cgroup volumes: - name: tmp-run emptyDir: medium: Memory sizeLimit: 128Mi # 可按需调整tmpfs大小限制 - name: tmp-run-lock emptyDir: medium: Memory sizeLimit: 64Mi - name: tmp-tmp emptyDir: medium: Memory sizeLimit: 512Mi - name: cgroup hostPath: path: /sys/fs/cgroup type: Directory
参数对应关系说明:
--tmpfs参数对应Kubernetes的emptyDir卷,设置medium: Memory即创建内存级临时文件系统,Pod销毁后数据会自动清除,和docker --tmpfs的行为完全一致,可通过sizeLimit字段控制tmpfs的最大占用空间。--cap-add参数对应securityContext.capabilities.add配置项,直接填入需要添加的内核权限即可。- 宿主机目录挂载
-v /sys/fs/cgroup:/sys/fs/cgroup通过hostPath类型卷实现。 - 端口映射
-p参数可通过hostPort配置实现和docker完全一致的端口映射效果,生产环境若需要集群内/外部统一访问,建议额外配置Service资源暴露端口。
注意:SYS_ADMIN属于高权限内核能力,hostPath挂载也存在容器逃逸风险,生产环境使用前请做好安全评估。
内容的提问来源于stack exchange,提问作者Doom
相关产品推荐
相关产品推荐

