首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes 1.25:对使用用户名字空间运行 Pod 提供 Alpha 支持

Kubernetes 1.25:对使用用户名字空间运行 Pod 提供 Alpha 支持

作者头像
CNCF
发布2022-11-28 16:58:43
4680
发布2022-11-28 16:58:43
举报
文章被收录于专栏:CNCFCNCF

作者: Rodrigo Campos(Microsoft)、Giuseppe Scrivano(Red Hat)

Kubernetes v1.25 引入了对用户名字空间的支持。

这是在 Kubernetes 中运行安全工作负载的一项重大改进。 每个 Pod 只能访问系统上可用 UID 和 GID 的有限子集, 因此添加了一个新的安全层来保护 Pod 免受运行在同一系统上的其他 Pod 的影响。

它是如何工作的?

在 Linux 上运行的进程最多可以使用 4294967296 个不同的 UID 和 GID。

用户名字空间是 Linux 的一项特性,它允许将容器中的一组用户映射到主机中的不同用户, 从而限制进程可以实际使用的 ID。 此外,在新用户名字空间中授予的权能不适用于主机初始名字空间。

它为什么如此重要?

用户名字空间之所以重要,主要有两个原因:

  • 提高安全性。因为它们限制了 Pod 可以使用的 ID, 因此每个 Pod 都可以在其自己的具有唯一 ID 的单独环境中运行。
  • 以更安全的方式使用 root 身份运行工作负载。

在用户名字空间中,我们可以将 Pod 内的 root 用户映射到容器外的非零 ID, 容器将认为是 root 身份在运行,而从主机的角度来看,它们是常规的非特权 ID。

该进程可以保留通常仅限于特权 Pod 的功能,并以安全的方式执行这类操作, 因为在新用户名字空间中授予的功能不适用于主机初始名字空间。

如何启用用户名字空间

目前,对用户名字空间的支持是可选的,因此你必须在 Pod 规约部分将hostUsers 设置为 false 以启用用户名字空间:

apiVersion: v1
kind: Pod
spec:
  hostUsers: false
  containers:
  - name: nginx
    image: docker.io/nginx

该特性目前还处于 Alpha 阶段,默认是禁用的,因此在使用此新特性之前, 请确保启用了 UserNamespacesStatelessPodsSupport 特性门控。

此外,运行时也必须支持用户名字空间:

  • Containerd:计划在 1.7 版本中提供支持。 进一步了解,请参阅 Containerd issue #7063[1]
  • CRI-O:v1.25 支持用户名字空间。

cri-dockerd 对用户名字空间的支持尚无计划[2]

我如何参与?

你可以通过多种方式联系 SIG Node:

  • Slack: #sig-node[3]
  • 邮件列表[4]
  • 开源社区 Issue/PR[5]

你也可以直接联系我们:

  • GitHub / Slack: @rata @giuseppe

参考资料

[1]

#7063: https://github.com/containerd/containerd/issues/7063

[2]

尚无计划: https://github.com/Mirantis/cri-dockerd/issues/74

[3]

#sig-node: https://kubernetes.slack.com/messages/sig-node

[4]

邮件列表: https://groups.google.com/forum/#!forum/kubernetes-sig-node

[5]

开源社区 Issue/PR: https://github.com/kubernetes/community/labels/sig%2Fnode

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 它是如何工作的?
  • 它为什么如此重要?
  • 如何启用用户名字空间
  • 我如何参与?
    • 参考资料
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档