你需要知道的有关Kubernetes 1.23版的更新都在这里

你需要知道的有关Kubernetes 1.23版的更新都在这里

译文
作者:陈峻 2021-12-27 08:00:00

云计算 本文将重点关注Kubernetes 1.23版在Kubernetes API、容器与基础设施、存储、网络和安全性等方面的关键性更新。

[[442113]]

【51CTO.com快译】近期即将发布的Kubernetes圣诞版共带有45项针对成熟性、安全性、以及可扩展性方面的增强功能。在本文中,我将重点关注Kubernetes API、容器与基础设施、存储、网络和安全性等方面的关键性更新。

Kubernetes API

让我们首先来看看具有可扩展性的Kubernetes API。api-machinery、CLI和autoscaling SIG这三大变更将作为1.23版的一部分被发布。

Kubectl事件命令

一直以来,您可能会受到kubectl get命令的选项和数据收集方法的限制。对此,1.23的alpha版将首发一个新的命令–kubectl event。使用kubectl的get events,您可以更便捷地观察到集群的整体状态,并解决相关问题。具体而言,其主要特点包括:

  • 能够查看与特定资源相关的所有事件
  • 监控集群中的特定事件
  • 按照事件的状态或特定命名空间中的类型,去过滤事件

除了上述特点,您也可以通过查看设计文档,以了解在后续版本中即将推出的新功能。值得一提的是,您可以在安装了新的kubectl版本后,立即开始使用kubectl events命令。

将HPA API升级为一般可用性

Horizontal Pod Autoscaler(HPA)是Kubernetes的核心组件,可以根据各项指标自动扩展Pod的数量。HPA可以扩展或缩减的资源包括:副本集、部署、以及CPU利用率等众所周知的指标状态集。自2015年以来,它一直是Kubernetes API中的一部分。如今,它最终走向了一般可用性(General Availability,GA)。

如果您已经在客户端和控制器中使用到了HPA,那么您可以直接使用v2,而非v2beta1。从这次发布,我们可以看到HPA已经作为了Kubernetes API的核心组件,并为加入最终产品做好了准备。因此,您可以放心地使用HPA了。

CRD验证表达式语言

作为一个强大的抽象层,Custom Resource Definition(CRD)扩展了Kubernetes,并使其与所有可自定义的资源协同工作。不过,如果用户定义了新的自定义资源、及其相关规范,那么使用Webhooks、控制器和客户端工具进行验证时,则可能比较繁琐。不过庆幸的是,我们可以将诸如Common Expression Language之类的内联表达式语言,集成到CRD中进行验证。

在1.23版本中,作为alpha功能被提供的验证规则,可以方便您添加x-kubernetes-validation-rules。您可以在Kubernetes文档中查看到如下类似的示例:

  1. ... 
  2.      openAPIV3Schema: 
  3.        type: object 
  4.        properties: 
  5.          spec: 
  6.            type: object 
  7.            x-kubernetes-validation-rules: 
  8.             - rule"self.minReplicas <= self.replicas" 
  9.               message: "replicas should be greater than or equal to minReplicas." 
  10.             - rule"self.replicas <= self.maxReplicas" 
  11.               message: "replicas should be smaller than or equal to maxReplicas." 
  12.            properties: 
  13.             ... 
  14.             minReplicas: 
  15.               type: integer 
  16.             replicas: 
  17.               type: integer 
  18.             maxReplicas: 
  19.                type: integer 
  20.            required: 
  21.             - minReplicas 
  22.             - replicas 
  23.             - maxReplicas   

假设您要创建如下违反了第二条规则的自定义资源实例:

  1. apiVersion: "stable.example.com/v1" 
  2. kind: CronTab 
  3. metadata: 
  4.    name: my-new-cron-object 
  5. spec: 
  6.    minReplicas: 0 
  7.    replicas: 20 
  8.    maxReplicas: 10 

那么Kubernetes API将会以如下错误消息作为响应:

  1. The CronTab "my-new-cron-object" is invalid: 
  2. * spec: Invalid value: map[string]interface {}{"maxReplicas":10, "minReplicas":0, "replicas":20}: replicas should be smaller than or equal to maxReplicas. 

可见,如果您在集群中准备使用CRD,那么就必须在Open API架构和控制器中使用相应的验证机制。而在这次新的版本中,您可以将它们迁移到x-kubernetes-validation-rules,让Kubernetes API为您完成繁琐的工作。

容器与基础设施

在新的版本中,我发现了Windows和node SIG两个值得注意的功能。它们属于临时容器和Windows特权容器。

临时容器

临时容器可以起到观察其他Pod的状态、故障排除和调试等作用。这个新的功能还附带了一个CLI命令。用户可以使用kubectl debug,来轻松地进行排障。其实,该命令运行在pod的一个容器中,而kubectl exec命令则在该容器中运行一个进程。

使用1.23版本,您将能够在PodSpec.EphemeralContainer下添加临时容器,作为pod规范的一部分。虽然与容器规范类似,但是它们并不涉及到各种资源请求或端口,毕竟它们只是临时被添加到pod中的。例如,您将能够为my-service pod添加一个Debian的容器,并以交互的方式连接,从而让用户进行实时调试。具体请见如下代码段:

  1. $ kubectl debug -it -m debian my-service -- bash 
  2. root@debug:~# ps x 
  3.    PID TTY      STAT   TIME COMMAND 
  4.      1 ?        Ss     0:00 /pause 
  5.     11 ?        Ss     0:00 bash 
  6.    127 ?        R+     0:00 ps x 

其实,临时容器在1.22版本中已经处于alpha版状态了。这次,它们将在1.23版本中被升级为beta版。如果您尚未试用它的话,我建议您最好创建各种调试容器的镜像,并在自己的工具箱中包含kubectl debug命令。

Windows特权容器和主机网络模式

作为一种强大的容器实例,特权容器可以访问和使用主机资源。这和直接运行在主机上的进程非常类似。在Linux容器被广泛使用时,它们虽然在某种程度上构成了安全威胁,但是有利于管理主机的实例。

随着1.23版本的发布,Windows实例的特权容器和主机网络模式将升级为beta版。如果您的集群中有Windows节点,或计划在将来包含这些节点的话,那么请查看功能性和GA计划的设计文档。

贮存

在1.23版本中,存储SIG变化主要体现在卷挂载期间,卷的所有权更改上。

目前,在卷绑定之前,卷的权限会递归地更新为pod规范中的fsGroup值。显然,当卷的体积过大时,所有权的更改可能会导致在创建Pod期间的等待时间过长。因此,我们往往需要添加一个新的字段–pod.Spec.SecurityContext.FSGroupChangePolicy,来允许用户指定该如何操控权限和所有权的更改。

而在1.23版中,此功能已升级到了GA,您可以使用以下两个选项去指定相关策略:

  • Always:始终更改各种权限和所有权,以匹配fsGroup字段。
  • OnRootMismatch:仅当顶级目录与fsGroup字段不匹配时,才更改相应的权限和所有权。

如果您正在使用诸如数据库等,对于权限更改敏感的应用,那么请检查新的字段,并将其包含在您的pod规范中,以避免在pod创建的过程中,等待过长的时间。

联网

自从IPv6在Kubernetes 1.9版中作为alpha功能被添加以来,它已是用户对Kubernetes团队期待已久的功能。在最新版本中,双栈式的IPv4/IPv6网络终于具有了一般可用性。

该功能包括了对于各种Pod和服务的多个IPv4/IPv6地址的感知。同时,它还支持原生IPv4到IPv4的通信,以及与集群之间IPv6到IPv6的通信。

尽管Kubernetes提供了双栈式网络,但您可能会受到底层基础架构和云提供商的能力的限制。由于节点需要具有可路由的IPv4/IPv6网络接口,而pod需要具有双栈式网络连接,因此您还需要一个能够感知双栈式网络的插件,来为pod和服务分配IP地址。目前,诸如kubenet之类的CNI插件已经可以支持双栈式网络了,并且Kubeadm和kind也正在逐渐增加对于此类生态系统的支持。

安全性

1.23版本在auth SIG方面的增强主要体现在,将Pod安全标准升级到了beta版。

在之前的版本中,Pod安全标准是作为Alpha功能,用来替换PodSecurityPolicy的。在命名空间和标签的帮助下,他们创建了一种限制pod权限的方法,来执行相应的策略。在将其包含到部署之中后,您便可以提高pod和集群的安全性了。

小结

在2021年的最后一个版本中,Kubernetes带来了更具可扩展性和可靠性的API和基础设施的增强功能。此外,在存储、网络和安全性方面的改进,也使得Kubernetes成为了真正的、面向未来的、业界领先的容器编排平台。

最后,请通过Kubernetes的博客和其发行说明,来进一步了解更多最新的增强功能吧!

原文标题:Kubernetes Version 1.23 Is Out: Everything You Should Know,作者: Amir Kaushansky

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/308367.html<

(0)
管理的头像管理
上一篇2025-05-27 13:29
下一篇 2025-05-27 13:30

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注