Kubernetes v1.23 有什么新变化?

在这里插入图片描述
Kubernetes v1.23 是 2021 年的最后一个主要版本。领先的容器编排平台的最新更新将 11 个特性提升到稳定通道,将它们标记为适合一般用途。以下是您在升级之前需要了解的内容。

双栈 IPv4/IPv6 组网

双栈 IPv4/IPv6 网络在 v1.23 中普遍可用。该功能可以为 Pod 或 Service 分配 IPv4 和 IPv6 地址。您需要节点上的双栈网络接口和支持的 CNI 网络插件才能工作。

该.spec.ipFamilyPolicy字段定义了 Pod 或 Service 是接收单栈接口还是双栈接口。将其设置为PreferDualStack或RequireDualStack以激活双栈支持。默认为SingleStack。

spec:
    ipFamilyPolicy: RequireDualStack

双栈模式将从 IPv4 和 IPv6 地址空间分配服务集群 IP。您可以使用.spec.ipFamilies字段设置堆栈首选项顺序。这也允许将 IPv4 或 IPv6 指定为SingleStack模式系列。

临时卷

临时卷是 GA 状态的另一个毕业。临时卷与 Pod 相关联,并在 Pod 终止时被删除。它适用于所有支持动态配置的现有存储驱动程序。

临时卷是通过在Pod 规范部分的volumeClaimTemplate新ephemeral字段下嵌套 a来创建的volumes。本volumeClaimTemplate应该像一个普通PersistentVolumeClaim。

spec:
  volumes:
    - name: ephemeral-volume
      ephemeral:
        volumeClaimTemplate:
          metadata:
            labels:
              type: example-volume-type
          spec:
            accessModes: ["ReadWriteOnce"]
            storageClassName: example-storage-class
            resources:
              requests:
                storage: 1Gi

虽然“临时”音量最初听起来很奇怪,但此功能有几个用例。卷通常用于为 Pod 的进程提供仅访问一次的首次运行配置值。在这种情况下,临时 Pod 是理想的,因为它会在 Pod 停止时被删除,而不是重新附加到永远不会使用数据的未来 Pod。另一种可能的情况是缓存大量数据但不需要在各个 Pod 终止之间持久化的进程。

水平 Pod Autoscaler v2

五年后,Horizontal Pod Autoscaler API v2已经达到稳定。Autoscaling 允许 Kubernetes 自动调整您的 Deployments、ReplicaSets 和 StatefulSets 的副本数量以响应实时指标变化。

此促销目前不影响原始自动缩放器实现。v1 API 仍然可用并且不会被弃用。新autoscaling/v2API 取代了autoscaling/v2beta2之前的 Kubernetes 版本。

使用 v2 API 是有利的,因为您可以定义基于自定义指标的自动缩放决策。自动缩放控制器将进行任意 API 查询以通知副本更改,而不是将您限制为节点 CPU 和内存条件。

在 Pod 启动时跳过卷所有权更改

使用fsGroup卷上字段定义其持股比例目前导致Kubernetes递归执行chown(),并chmod()在每它安装在吊舱时间卷的内容。在处理主要由小文件组成的大卷时,这可能是一个重要的性能问题。在更改权限之前,Pod 不会启动。

Kubernetes 支持允许您覆盖此行为的fsGroupChangePolicy字段。它现在通常可以通过 Pod 的securityContext字段获得。将更改策略设置为OnRootMismatch仅chown()当卷的根目录权限不正确时才会调用。当权限已经与fsGroup声明兼容时,这会加速 pod 启动。

securityContext : 
  fsGroupChangePolicy : OnRootMismatch

其他亮点

alpha 和 beta API 有一些值得注意的补充。测试版频道现在包括:

结构化日志——更多组件支持生成 JSON 输出的结构化文本日志格式。外部工具更容易解析结构化日志,从而简化日志摄取和查询过程。

PodSecurity API –PodSecurity替换旧的PodSecurityPolicy准入控制器,让您可以在命名空间级别实施安全规则。PodSecurity提供了一种机制,用于规定 Pod 如果缺乏某些安全上下文保护就不能存在于命名空间中。

CSI 迁移支持– 此功能提供了一种无缝方式,可以从属于 Kubernetes API 一部分的树内存储驱动程序迁移kubernetes.io/aws-ebs到供应商提供的 CSI 驱动程序。迁移完成后,用户不应注意到他们的存储有任何变化。此功能现在是 AWS EBS、Azure Disk 和 GCE PD 的测试版。它被标记为 Ceph RBD 和 Portworx 的 alpha。

在 alpha 通道中,有一些额外的功能首次亮相:

服务器端字段验证- 当客户端尝试创建包含未知或重复字段的资源时,服务器端字段验证会从服务器发送警告。Kubernetes 历来删除了这些字段,可能会导致混乱的行为。启用ServerSideFeatureValidation功能门提供了解决此问题的方法。

CRD 的表达式语言验证——一种新的内联表达式语言促进了自定义资源定义 (CRD) 的验证。这有助于解决 CRD 的抽象性质,目前无法保证用户定义的资源符合现有控制器和客户端应用程序的要求。

OpenAPI v3 支持– OpenAPI v3 已添加到功能门 ( OpenAPIV3)后面。启用后,您可以为任何 Kubernetes 对象类型请求OpenAPI v3.0 规范,提供一种通过开放 API 标准以编程方式发现和遍历资源的方法。

结论

Kubernetes v1.23 稳定了几个重要功能,包括双栈网络、新的可定制 Horizontal Pod Autoscaler 和用于处理非关键数据的临时卷。除了两个弃用之外,还有许多其他更改:FlexVolume早于 CSI的存储驱动程序接口,以及将来会删除的几个日志记录标志。

共有 11 个现有功能已升级为 GA 状态。现在还有 17 项功能被标记为 Beta 版,而另外 19 项是全新的 Alpha 版功能。Kubernetes 发布策略侧重于尽早发布功能,允许社区指导其开发并帮助简化 API 实现。虽然 alpha 或 beta 功能通常会推进到稳定阶段,但这并不能保证。在开发过程中,API 可能会发生重大变化或被完全删除。

您可以在 GitHub 上阅读完整的 v1.23 发行说明。可在发布页面上下载。您可以按照文档中的指南升级使用 Kubeadm 创建的现有集群。对于托管云产品和第三方 Kubernetes 发行版的用户,该过程会有所不同。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值