前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes v1.30 新特性一览

Kubernetes v1.30 新特性一览

作者头像
用户1107783
发布2024-03-25 17:25:44
2680
发布2024-03-25 17:25:44
举报

各位 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描述中:

代码语言:javascript
复制
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)下载的图像。
    • 举例说明:
代码语言:javascript
复制
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要使能):
代码语言:javascript
复制
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集群的全部潜力!为你的业务增添新的能力~~

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

本文分享自 云原生运维圈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 增强Pod安全性的User Namespaces
    • User Namespaces的好处
    • 工作原理
    • 启用User Namespaces
    • 重要注意事项
    • Kubernetes中增强的安全性
      • 改进的secret管理
      • 增强的节点和群集管理
      • 3.数据安全增强功能:
        • 开发人员获得更大的权力
        • 了解更多
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档