Kubernetes 1.24发布了—有什么新变化

云计算
Kubernetes 1.24,一直延迟到5月3日才发布。此版本带来了46项增强,其中13项升级到稳定版,14项是不断改进的现有功能,13项是全新的,6项已弃用的功能。

原本计划于4月19日发布的Kubernetes 1.24,一直延迟到5月3日才发布。此版本带来了46项增强,其中13项升级到稳定版,14项是不断改进的现有功能,13项是全新的,6项已弃用的功能。

主要更新如下:

完全移除Dockershim

在 v1.20 中标记弃用后,dockershim 组件已从 kubelet 中删除。从 v1.24 开始,您将需要使用其他受支持的运行时之一(例如 containerd 或 CRI-O),或者如果您依赖 Docker 引擎作为容器运行时,则使用 cri-dockerd。

CSI卷健康监控

能够加载一个检查持久卷健康状况的sidecar是一个受欢迎的补充。现在,管理员将能够更好、更快地对 Kubernetes 外部删除持久卷等事件做出反应,必然会增加 Kubernetes 集群的可靠性。

kubelet:公开 OOM 指标

从 1.24 开始,kubelet提供了一个新的 Prometheus 指标,用于记录容器中发生的OOM(OutOfMemory)事件的数量。当内存限制不能满足容器的使用和需求时,这提供了对 Kubernetes 操作中反复出现的问题的更多可见性。

使用这个新指标,SRE 可以更好地了解问题的最终原因,并更好地确定它是反复出现的问题还是边缘情况。更快的故障排除,更快乐的用户。

Beta API 默认关闭

之前的版本,默认会启用被认为不稳定的 Beta API,这加速了这些功能的采用,然而也会造成问题。例如,一个测试版 API 有一个错误,它将出现在 90% 的已部署集群上。

从 Kubernetes 1.24 开始,新的 beta API 将默认禁用。

选择您想要的 LoadBalancer 类型

在Kubernetes 1.24中,Service.Spec.LoadBalancerClass GA。

在托管 Kubernetes 集群中创建 LoadBalancer 类型的服务会创建一个负载均衡器。Kubernetes 服务提供者负责创建这个负载均衡器。

通过这个LoadBalancerClass 字段,用户可以指定他们想要的负载均衡器类型,这将允许云提供商本地提供不同类型的负载均衡器。到目前为止,主要依赖于注解或自定义控制器,这可能是笨重且违反直觉的:注解通常因提供者特定控制器的一个版本而异,希望这将使托管 Kubernetes 服务的用户更容易联网。

不推荐使用 Service.Spec.LoadBalancerIP 字段

说到注解,Kubernetes 团队决定弃用Service.Spec.LoadBalancerIP 字段。原因是它没有被详细说明,并且在不同的实现中具有不同的含义,也不支持需要 IPv4 和 IPv6 地址的双栈Service。

官方建议提供者依赖注释而不是该字段。

OpenAPI v3

Kubernetes 1.24 提供了以OpenAPI v3 格式发布其 API 的 beta 支持。

存储容量和卷扩展普遍可用

存储容量跟踪支持通过CSIStorageCapacity 对象 公开当前可用的存储容量, 并增强使用具有后期绑定的 CSI 卷的 pod 的调度。

卷扩展增加了对调整现有持久卷大小的支持。

gRPC探针升级到 Beta

在Kubernetes 1.24 中,gRPC探测功能已进入测试阶段,默认情况下可用。您现在可以在 Kubernetes 中为您的 gRPC 应用程序本地配置启动、活动和就绪探测,而无需公开 HTTP 端点或使用额外的可执行文件。

服务帐户默认没有Secret

只会影响使用 Kubernetes 存储在 Secrets 中的长期服务帐户令牌的 Kubernetes 用户。

在 Kubernetes 1.23 之前,在集群中创建服务帐户会导致 Kubernetes 自动为该服务帐户创建一个带有令牌的 Secret。此令牌永不过期,这可能很有用,但也是一个安全问题。从 Kubernetes 1.24 开始,这些 Secret 将不再自动创建。

您可能会问自己:该令牌不是安装到使用该服务帐户的 Pod 中吗?不。创建新 Pod 时,kubelet 使用TokenRequest API为该 Pod 生成一个令牌,该令牌被挂载为一个投影卷。令牌在一小时后或 Pod 被删除时过期,以先到者为准。Kubelet 会定期更新令牌,因此 Pod 始终挂载有效令牌。

如果您绝对需要存储在 Secret 中的永不过期令牌,您仍然可以通过自己创建 Secret 并添加特殊注释来获得。然后 Kubernetes 将为您将令牌添加到 Secret。

RuntimeClass.Overhead字段GA

使用默认容器运行时之外的原因有很多:运行不受信任的工作负载或需要 GPU 的工作负载,仅举几例。Kubernetes 原生支持为这些用例定义自定义运行时类。

这些自定义运行时可能会产生一些开销:运行时本身而不是内部运行的容器使用 CPU 和内存。RuntimeClass.Overhead 字段在Kubernetes 1.24 中达到普遍可用性,允许集群操作员指定此开销,以便 Kubernetes 在制定调度决策时将其考虑在内。

其他值得关注的更新:

  1. maxUnavailable for StatefulSets。
  2. CronJobs支持TimeZone。
  3. NetworkPolicyStatus。
  4. 使用go 1.18.1构建。
  5. non-graceful node shutdown。

详情参见

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md。


责任编辑:姜华 来源: 今日头条
相关推荐

2021-11-10 15:41:20

iOS苹果系统

2009-09-18 09:00:56

Ubuntu新版发布

2015-07-13 14:24:48

Kubernetes容器平台Google

2013-07-02 14:45:21

Foxmail 7.1邮件

2012-03-12 12:52:24

JavaDataNucleus

2022-03-23 11:13:18

LinuxLinux 内核

2024-01-05 15:56:10

2011-11-02 17:08:48

OpenBSD发布

2012-03-15 16:46:02

JavaMyBatis

2009-06-21 13:37:53

2009-02-25 09:35:12

LinuxBASH 4.0OS X v10.4

2009-09-27 13:41:55

Eclipse 3.5

2019-08-27 09:12:33

iOS 12.4.1漏洞越狱

2015-11-16 11:31:35

Kubernetes网络性能新版本特性

2012-11-14 09:31:13

CloudStackIaaSCitrix

2011-02-24 09:36:33

LibreOffice

2011-12-21 08:58:23

Java

2011-06-07 10:07:06

LibreOffice

2011-08-02 09:15:49

LibreOffice

2012-03-15 09:57:59

JavaDynamicRepo
点赞
收藏

51CTO技术栈公众号