博客 Kubernetes v1.30 新特性一览

Kubernetes v1.30 新特性一览

   数栈君   发表于 2024-04-01 23:22  104  0

各位 Kubernetes 用户们,请注意!1.30版本即将发布,这将对运维和开发者带来强大的功能。以下是关键特性的详细介绍:

增强Pod安全性的User Namespaces

Kubernetes 1.30引入了一个名为“ User Namespaces for Pods”的测试特性。该特性允许您将 pod 内使用的 UID (用户 ID )和 GID (组 ID )映射到主机系统上的不同值,从而显著提高了 pod 之间的安全性和隔离性。

User Namespaces的好处

  • 减少攻击面: 通过限制 pod 在主机系统上的特权,用户名称空间使得攻击者更难利用 pod 中的漏洞并访问主机。

  • 改进的隔离性: 使用不同用户命名空间运行的 pods 在不同的用户环境中运行,防止它们访问资源或相互干扰。

  • 可定制的安全性: 可以为 pod 定义自定义的 uid / gid 范围,对访问权限进行更细粒度的控制。

工作原理

  • 传统上,pod与主机系统共享相同的用户名称空间。

  • 启用User Namespaces后,将为每个pod创建单独的用户名称空间。

  • pod中使用的UID和GID映射到主机系统上的不同UID和Gid。

启用User Namespaces

要利用User Namespaces,需要显式地设置 hostUsers字段到 false在你的spec描述中:

apiVersion: v1
kind: Pod
metadata:
  name: ns-test
spec:
  hostUsers: false            #显式设置
  containers:
  - name: sleep
    command: ["sleep", "infinity"]
    image: ubuntu

重要注意事项

  • User Namespaces是Kubernetes 1.30中的一个beta特性,因此建议不在在生产环境中使用。

  • 目前并非所有容器运行时都支持User Namespaces。请查看容器运行时文档以了解兼容性。

总体而言,User Namespaces为Kubernetes pod提供了强大的安全增强功能。通过隔离pod并限制其对主机系统的访问,您可以显著降低安全漏洞的风险,并改善Kubernetes集群的整体安全状况。

Kubernetes中增强的安全性

Kubernetes 1.30带来了多项改进,可增强容器化应用程序的安全性。让我们仔细看看一些关键的功能:

改进的secret管理

  • 对下载的镜像进行更严格的控制:
    • 重要性:以前,与 IfNotPresent映像拉策略,如果攻击者获得了对节点的访问权限,则存在未经授权访问已下载image的风险。

    • 新功能:Kubernetes 1.30加强了更严格的控制。Pods 只有拥有正确的凭据才能访问下载的image,特别是使用secret(如private registry key)下载的图像。

    • 举例说明:

apiVersion: v1
kind: Pod
metadata:
  name: secret-image-pod
spec:
  containers:
  - name: container
    image: my-private-image
    imagePullPolicy: IfNotPresent
  imagePullSecrets:
  - name: my-registry-key

在本例中, kubelet  在允许它使用下载的image(my-private-image)之前会验证pod是否拥有secret my-registry-key。

  • 减少对基于secret的服务帐户令牌的依赖(KEP#2799):
    • 新功能:Kubernetes 减少了对不太安全的基于秘密的服务账户令牌的依赖。相反,它提倡绑定服务帐户令牌,这些令牌绑定到特定的 pods ,并且更加安全。

增强的节点和群集管理

  • Pods的用户名称空间:
    • 之前,pod共享主机系统的用户名称空间。

    • 启用用户名称空间后,每个pod都有自己的用户名称空间。

    • pod中使用的UID和GID映射到主机系统上的不同值。

    • 通过限制主机系统上的pod权限来减少攻击面。

    • 改进了运行在不同用户命名空间中的pod之间的隔离。

    • pod可自定义的安全性与自定义的UID/GID范围。

    • 工作原理:

      • 之前,pod共享主机系统的用户名称空间。

      • 启用用户名称空间后,每个pod都有自己的用户名称空间。

      • pod中使用的UID和GID映射到主机系统上的不同值。

    • 示例(指定 hostUsers: false要使能):

apiVersion: v1
kind: Pod
metadata:
  name: secure-pod
spec:
  hostUsers: false
  # ... other pod configurations

3.数据安全增强功能:

  • 防止未经授权的卷模式转换(KEP#3141):
    • 作用:防止在从快照恢复卷时对卷模式进行未经授权的更改。这样,可以保护卷内的数据完整性。

附加安全措施:

  • Kubelet 对镜像文件系统拆分的支持( KEP # 4191 ):隔离容器内的可写和只读文件系统层,减少未经授权修改的风险。

  • AppArmor Support ( KEP # 24 ):启用在容器级别使用 AppArmor 配置文件定义和执行安全策略。

  • 结构化授权配置( KEP # 3221 ):允许更细粒度的、可自定义的授权控制

总之,Kubernetes 1.30为您的容器化工作负载提供了显著的安全改进。这些特性使您能够为您的应用程序创建一个更加安全和隔离的环境。

  • 更严格的secret控制:Kubernetes 1.30确保只有经过授权的pod才能访问它们,即使它们共享登录详细信息。这对于电子商务交易等依赖密钥或密码的应用程序来说至关重要。

开发人员获得更大的权力

  • 细粒度资源分配情况:需要您的pod根据实时需求调整资源使用情况吗?Kubernetes 1.30允许您基于特定指标定义资源请求和限制。想象一下,一个应用程序可以在高峰时段自动分配更多的资源,为您的客户提供平稳的业务整理。

  • 容器级 Pod 自动缩放Kubernetes 1.30允许您基于内存使用或其他特定于容器的指标自动缩放pod。对于像图像处理工具这样很吃内存的应用来说,这是非常好的。

了解更多

这些只是其中的几个亮点!Kubernetes 1.30提供了一个工具箱,包含其他改进,包括支持节点内存交换(alpha)和更多授权控制(beta)。请继续关注官方版本,深入了解这些功能并释放Kubernetes集群的全部潜力!为你的业务增添新的能力~~



本文系转载,版权归原作者所有,

转载自  云原生运维圈  如若侵权请联系我们进行删除!  



《行业指标体系白皮书》下载地址:https://www.dtstack.com/resources/1057/?src=bbs

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001/?src=bbs

《数栈V6.0产品白皮书》下载地址:https://www.dtstack.com/resources/1004/?src=bbs

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack 
0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群