Kubernetes最近推出了用户命名空间支持,以提高安全性并减少特权升级攻击的影响。然而,用户命名空间并未解决共享内核的安全问题,内核漏洞仍然存在风险。相比之下,Edera等基础设施提供商通过虚拟化技术为每个工作负载提供独立内核,从而消除了共享内核的风险,这对多租户环境的安全性至关重要。
Kubernetes在v1.36版本中推出了用户命名空间支持,这是一个Linux专属功能。它实现了在Kubernetes工作负载中的“无根”安全隔离,允许以特权运行工作负载并限制在用户命名空间内。通过设置hostUsers: false,特权能力如CAP_NET_ADMIN被命名空间化,从而增强了安全性和性能。此功能经过多年开发,感谢所有贡献者的努力。
本文介绍了用户命名空间在无权限容器中的应用。通过创建用户命名空间,普通用户可以在自己的命名空间内获得root权限,而在宿主机上仍为普通用户。文章详细讲解了UID/GID映射的设置、newuidmap工具的使用以及Podman的实现架构。同时,讨论了无权限容器在网络、端口绑定和OverlayFS等方面的限制及安全性问题。
Kubernetes 1.33于2025年4月23日发布,默认启用用户命名空间支持,增强安全性。每个Pod使用独特的非特权UID/GID,防止容器访问主机资源,简化了Pod的安全管理,适用于CI/CD管道,但需满足特定基础设施要求。
Kubernetes v1.33 默认启用用户命名空间,允许容器使用不同的 UID/GID,增强安全性,防止横向移动,提高主机隔离,并支持在容器内运行特权操作。
Kubernetes 1.33版本发布,新增64项功能,重点包括原生支持侧车容器、动态资源分配和用户命名空间,提升了安全性和可扩展性,简化了管理。
Kubernetes v1.33即将发布,Endpoints API将被弃用,建议迁移至EndpointSlices。kube-proxy版本信息和Windows Pod的主机网络支持将被移除。新特性包括Linux Pod的用户命名空间支持和Pod资源的动态更新。
文章讨论了无根模式下运行Docker的安全性。虽然可以在无根权限下部署Docker容器,但某些组件仍需根权限。无根Docker通过用户命名空间实现特权隔离,安装简单,但存在无法访问特权端口等限制。尽管不是完美解决方案,无根模式仍能提高安全性,适合希望增强Docker安全性的用户。
Linux 提供用户命名空间以隔离容器内的用户和组标识符(UID 和 GID),增强安全性。Kubernetes 1.30 将用户命名空间功能移至测试阶段,允许容器以 root 身份运行,但限制与主机的交互权限,从而降低容器突破的风险。该功能依赖于 Linux 6.3 及以上版本,支持 CRI-O 和 containerd。
Kubernetes v1.30版本即将发布,带来动态资源分配、Linux节点内存交换支持、用户命名空间和结构化授权配置等重要更新。动态资源分配改善了资源管理,内存交换支持增强系统稳定性,用户命名空间提升Pod隔离,结构化授权配置实现更细粒度的请求验证。此外,基于容器资源指标的水平Pod自动扩缩功能也将稳定。
完成下面两步后,将自动完成登录并继续当前操作。