Merge pull request #35167 from windsonsea/clusadm

[zh-cn] resync kubelet-in-userns.md
This commit is contained in:
Kubernetes Prow Robot
2022-07-19 18:16:37 -07:00
committed by GitHub
@@ -5,11 +5,9 @@ min-kubernetes-server-version: 1.22
--- ---
<!-- <!--
---
title: Running Kubernetes Node Components as a Non-root User title: Running Kubernetes Node Components as a Non-root User
content_type: task content_type: task
min-kubernetes-server-version: 1.22 min-kubernetes-server-version: 1.22
---
--> -->
<!-- overview --> <!-- overview -->
@@ -32,7 +30,7 @@ If you are just looking for how to run a pod as a non-root user, see [SecurityCo
这个文档描述了怎样不使用 root 特权,而是通过使用 {{< glossary_tooltip text="用户命名空间" term_id="userns" >}} 这个文档描述了怎样不使用 root 特权,而是通过使用 {{< glossary_tooltip text="用户命名空间" term_id="userns" >}}
去运行 Kubernetes 节点组件(例如 kubelet、CRI、OCI、CNI)。 去运行 Kubernetes 节点组件(例如 kubelet、CRI、OCI、CNI)。
这种技术也叫做 _rootless 模式(Rootless mode_ 这种技术也叫做 **rootless 模式(Rootless mode**
{{< note >}} {{< note >}}
这个文档描述了怎么以非 root 用户身份运行 Kubernetes 节点组件以及 Pod。 这个文档描述了怎么以非 root 用户身份运行 Kubernetes 节点组件以及 Pod。
@@ -55,7 +53,7 @@ If you are just looking for how to run a pod as a non-root user, see [SecurityCo
{{% version-check %}} {{% version-check %}}
* [启用 Cgroup v2](https://rootlesscontaine.rs/getting-started/common/cgroup2/) * [启用 cgroup v2](https://rootlesscontaine.rs/getting-started/common/cgroup2/)
* [在 systemd 中启用 user session](https://rootlesscontaine.rs/getting-started/common/login/) * [在 systemd 中启用 user session](https://rootlesscontaine.rs/getting-started/common/login/)
* [根据不同的 Linux 发行版,配置 sysctl 的值](https://rootlesscontaine.rs/getting-started/common/sysctl/) * [根据不同的 Linux 发行版,配置 sysctl 的值](https://rootlesscontaine.rs/getting-started/common/sysctl/)
* [确保你的非特权用户被列在 `/etc/subuid` 和 `/etc/subgid` 文件中](https://rootlesscontaine.rs/getting-started/common/subuid/) * [确保你的非特权用户被列在 `/etc/subuid` 和 `/etc/subgid` 文件中](https://rootlesscontaine.rs/getting-started/common/subuid/)
@@ -74,11 +72,12 @@ See [Running kind with Rootless Docker](https://kind.sigs.k8s.io/docs/user/rootl
### minikube ### minikube
[minikube](https://minikube.sigs.k8s.io/) also supports running Kubernetes inside Rootless Docker. [minikube](https://minikube.sigs.k8s.io/) also supports running Kubernetes inside Rootless Docker or Rootless Podman.
See the page about the [docker](https://minikube.sigs.k8s.io/docs/drivers/docker/) driver in the Minikube documentation. See the Minikube documentation:
Rootless Podman is not supported. * [Rootless Docker](https://minikube.sigs.k8s.io/docs/drivers/docker/)
* [Rootless Podman](https://minikube.sigs.k8s.io/docs/drivers/podman/)
--> -->
## 使用 Rootless 模式的 Docker/Podman 运行 Kubernetes ## 使用 Rootless 模式的 Docker/Podman 运行 Kubernetes
@@ -91,13 +90,12 @@ Rootless Podman is not supported.
### minikube ### minikube
[minikube](https://minikube.sigs.k8s.io/) 也支持使用 Rootless 模式的 Docker 运行 Kubernetes。 [minikube](https://minikube.sigs.k8s.io/) 也支持使用 Rootless 模式的 Docker 或 Podman 运行 Kubernetes。
请参阅 Minikube 文档中的 [docker](https://minikube.sigs.k8s.io/docs/drivers/docker/) 驱动页面。 请参阅 Minikube 文档
它不支持 Rootless 模式的 Podman。 * [Rootless Docker](https://minikube.sigs.k8s.io/docs/drivers/docker/)
* [Rootless Podman](https://minikube.sigs.k8s.io/docs/drivers/podman/)
<!-- Supporting rootless podman is discussed in https://github.com/kubernetes/minikube/issues/8719 -->
<!-- <!--
## Running Kubernetes inside Unprivileged Containers ## Running Kubernetes inside Unprivileged Containers
@@ -140,7 +138,7 @@ the container plus several other advanced OS virtualization techniques.
--> -->
Sysbox 支持在非特权容器内运行 Kubernetes Sysbox 支持在非特权容器内运行 Kubernetes
而不需要 Cgroup v2 和 “KubeletInUserNamespace” 特性门控。 而不需要 cgroup v2 和 “KubeletInUserNamespace” 特性门控。
Sysbox 通过在容器内暴露特定的 `/proc``/sys` 文件系统, Sysbox 通过在容器内暴露特定的 `/proc``/sys` 文件系统,
以及其它一些先进的操作系统虚拟化技术来实现。 以及其它一些先进的操作系统虚拟化技术来实现。
@@ -251,10 +249,10 @@ At least, the following directories need to be writable *in* the namespace (not
在取消命名空间的共享之后,你也必须对其它的命名空间例如 mount 命名空间取消共享。 在取消命名空间的共享之后,你也必须对其它的命名空间例如 mount 命名空间取消共享。
在取消 mount 命名空间的共享之后,你**需要调用 `chroot()` 或者 `pivot_root()` 在取消 mount 命名空间的共享之后,你**不**需要调用 `chroot()` 或者 `pivot_root()`
但是你必须*在这个命名空间内*挂载可写的文件系统到几个目录上。 但是你必须**在这个命名空间内**挂载可写的文件系统到几个目录上。
请确保*这个命名空间内*(不是这个命名空间外部)至少以下几个目录是可写的: 请确保**这个命名空间内**(不是这个命名空间外部)至少以下几个目录是可写的:
- `/etc` - `/etc`
- `/run` - `/run`