From b0094b63c4b7e508fb702b771bd9bee75227c606 Mon Sep 17 00:00:00 2001 From: Guangwen Feng Date: Thu, 13 Apr 2023 11:45:14 +0800 Subject: [PATCH] [zh-cn] Sync user-namespaces.md Signed-off-by: Guangwen Feng --- .../workloads/pods/user-namespaces.md | 67 ++++++++++++------- 1 file changed, 42 insertions(+), 25 deletions(-) diff --git a/content/zh-cn/docs/concepts/workloads/pods/user-namespaces.md b/content/zh-cn/docs/concepts/workloads/pods/user-namespaces.md index f201a0887484b..f3f5738ced57c 100644 --- a/content/zh-cn/docs/concepts/workloads/pods/user-namespaces.md +++ b/content/zh-cn/docs/concepts/workloads/pods/user-namespaces.md @@ -50,34 +50,63 @@ mitigate some future vulnerabilities too. {{% thirdparty-content %}} + +这是一个只对 Linux 有效的功能特性,且需要 Linux 支持在所用文件系统上挂载 idmap。 +这意味着: + +* 在节点上,你用于 `/var/lib/kubelet/pods/` 的文件系统,或你为此配置的自定义目录, + 需要支持 idmap 挂载。 +* Pod 卷中使用的所有文件系统都必须支持 idmap 挂载。 + +在实践中,这意味着你最低需要 Linux 6.3,因为 tmpfs 在该版本中开始支持 idmap 挂载。 +这通常是需要的,因为有几个 Kubernetes 功能特性使用 tmpfs +(默认情况下挂载的服务账号令牌使用 tmpfs、Secret 使用 tmpfs 等等)。 + +Linux 6.3 中支持 idmap 挂载的一些比较流行的文件系统是:btrfs、ext4、xfs、fat、 +tmpfs、overlayfs。 + -这是一个只对 Linux 有效的功能特性。此外,需要在{{< glossary_tooltip text="容器运行时" term_id="container-runtime" >}}提供支持, +此外,需要在{{< glossary_tooltip text="容器运行时" term_id="container-runtime" >}}提供支持, 才能在 Kubernetes 无状态 Pod 中使用这一功能: * CRI-O:1.25(及更高)版本支持配置容器的用户命名空间。 -* containerd:1.7 版本支持配置容器的用户命名空间,兼容 Kubernetes v1.25 和 v1.26,但不兼容更高版本。 - 如果你运行的是不同版本的 Kubernetes,请查看该 Kubernetes 版本的文档。 + +请注意,containerd v1.7 支持配置容器的用户命名空间,与 Kubernetes {{< skew currentVersion >}} +兼容。它不应与 Kubernetes 1.27(及更高)版本一起使用。 目前 [cri-dockerd 没有计划][CRI-dockerd-issue]支持此功能。 [CRI-dockerd-issue]: https://github.com/Mirantis/cri-dockerd/issues/74 -[containerd-userns-issue]: https://github.com/containerd/containerd/issues/7063 -为了保证 Pod 可以读取这些卷中的文件,卷的创建操作就像你为 Pod 指定了 `.spec.securityContext.fsGroup` 为 `0` 一样。 -如果该属性被设定为不同值,那么这个不同值当然也会被使用。 - -作为一个副产品,这些卷的文件夹和文件将具有所给组的权限, -即使 `defaultMode` 或 volumes 的特定项目的 `mode` 被指定为没有组的权限。 -例如,不可以在挂载这些卷时使其文件只允许所有者访问。 +* 查阅[为 Pod 配置用户命名空间](/zh-cn/docs/tasks/configure-pod-container/user-namespaces/)