Kubernetes 一直在快速发展,不断推出新版本,以进一步增加庞大的功能集合。然而去年 11 月,在北美 Kubecon + CloudNativeCon 期间,Kubernetes 联合创始人 Stephen Augustus 宣布,他们将放缓发布频率。该决定一部分是受到了疫情的影响,但主要原因是许多组织仍在使用 Kubernetes v1.15。通过降低 Kubernetes 版本的发布速度,让提供商赶上 Kubernetes 的步伐。
2020 年,Kubernetes 仅发布了三个小的升级版本 v1.18、v1.19 和 v1.20,并计划在 2021 年继续保持这种速度。
但是尽管 2020 年没有大版本的发布,Kubernetes 还是推出了一些新功能,让我们看一下一些最抢手的功能及其毕业状态。
Kubernetes Topology Manager
在许多高性能工作负载中,CPU 和硬件加速器的组合被用于提供高吞吐量的并行计算。为了从工作负载中获得最佳性能,需要进行各种优化,例如 CPU 隔离以及内存和设备分配。然而,在 Kubernetes 中,这些任务是针对不相交的组件集执行的,因为设备管理器和 CPU 在分配资源时都是独立工作的。这可能会导致性能下降以及延迟增加。
Kubernetes Topology Manager(拓扑管理器)是在 Kubernetes v1.18 时作为 beta 版推出的。拓扑管理器是一个 kubelet 组件,有助于减少延迟并提高关键任务应用程序的性能。拓扑管理器通过一个名为 “Hint Providers” 的组件的接口为各个组件提供单一的来源。组件可以使用该接口来制定与拓扑一致的资源分配决策,从而为关键工作负载提供低延迟和优化性能。
要启用此功能,需要启用 TopologyManager feature gate。在 v1.18 版及更高版本中,默认情况下会启用该功能。
Kubectl node debug(节点调试)功能在 Kubernetes v1.18 作为 alpha 版本启动,现已在 v1.20 中升级为 beta 版本。此功能允许最终用户通过 kubectl 调试他们的节点。用户可以调试正在运行的 Pod,而无需重新启动它们或依赖进入容器来执行调试任务,例如检查文件系统、执行其他调试实用程序、通过主机名称空间执行初始网络请求。用户现在可以执行以下操作:
-
通过使用不同的容器镜像或命令创建 Pod 副本,对启动时崩溃的工作负载进行故障排除。
-
通过将带有调试工具的新容器添加到 Pod 副本或临时容器中来排除 Distroless 容器故障。
-
通过创建在主机工作空间上运行并可以访问主机文件系统的新容器来排除节点故障。
有了此功能,
K
ubernetes 希望不再使用 SSH 进行节点调试、维护。Kubernetes v1.20 将默认启用 kubectl 调试。
自 Kubernetes v1.1 起,该 API 就已作为 beta 版本使用,并进行了各种增强。Ingress 成为用户和负载均衡器中流行的 API,其在 K8s 社区中已成为事实上的 GA 地位。Ingress API 通过公开相关的 HTTP 和 HTTPS 路由来处理对服务的外部访问。Ingress 执行各种任务,例如负载平衡、提供基于名称的虚拟主机、终止 SSL/TLS。Ingress 资源依赖于 Ingress 控制器。K8s 目前支持各种 Ingress 控制器,例如 nginx 等。在 v1.18 中,Kubernetes 对 Ingress 进行了一些关键更改。新的路径类型字段变为可用,默认情况下设置为 ImplementationSpecific。用户现在可以使用 “Exact” 和 “Prefix” 指定路径类型。
用户可以使用 IngressClass 字段来指定 K8s 集群中的 Ingress 类型。从 Kubernetes v1.18 开始,提供了一个名为 IngressClassName 的新字段指定 Ingress 类,取代了先前的 kubernetes.io/ingress.class。
当涉及大容量工作负载时,快照并不是最可靠的备份、还原解决方案。但如果正确使用,快照将有助于提供不停机的备份和还原功能。这一增强功在 Kubernetes v1.16 作为 beta 版本启用,并为 Kubernetes 容器存储接口(CSI)插件提供了 API 支持,以获取 PersistentVolume 快照并在需要时进行还原。为确保快照可靠,用户应确保整个应用程序级别、主机操作系统和存储系统中的数据一致性。如果快照是在内存存储应用程序数据之前拍摄的,那么将没有任何用处。
在 Kubernetes v1.20 中,数据卷快照操作功能已 GA。该功能允许用户以标准化方式拍摄数据卷快照,从而确保可靠性。
快照操作是可移植的,能集成到各种 Kubernetes 环境或受支持的存储提供程序中。这些快照操作原语可用于开发 K8s 的高级存储管理功能,从而实现集群和应用程序级备份。
此新功能是在最新 K8s 版本中以 alpha 版本推出的。该功能解决了 Pod 关闭时许多用户和集群管理员所面临的问题。Pod 并不总是遵循 Pod 生命周期。这可能发生在运行 Pod 中的节点系统关闭时。由于 Pod 无法知道节点已关闭,因此 Pod 可能会遇到问题,并无法正常运行。GracefulNodeShutdown(节点优雅关闭)功能通过使 kubelet 意识到节点关闭导致正常终止运行的 Pod,来解决此问题。
Pod 水平自动伸缩(HPA)API 是一项 alpha 功能,它允许基于某些指标值将 Pod 自动缩放为副本集。当涉及到可能受到流量波动影响的应用程序时,该功能非常有用。现在,HPA 带有可选的字段行为,用户能根据其功能和已知行为,为不同的应用程序设置不同的伸缩比例。
Kubernetes 新功能:2021 年即将推出
这些只是用户一直期待的众多功能中的一部分。去年其他几种功能(如 TLS v1.3 支持、不可变 Secret、ConfigMap 和 Kubernetes API Server Egress Proxy)已在各种可用性状态下推出。Kubernetes 即将推出许多新功能,一些功能正在等待普遍可用性。随着发布周期速度的放缓,Kubernetes 正试图扩展对以前版本的支持,使组织更容易跟上快速发展的步伐。而且,这些新功能势必会鼓励组织进行这种过渡。让我们继续期待这种新的发行策略会如何为 Kubernetes 带来成功,以及有哪些新功能会在 Kubernetes v1.21 中逐步进入到 GA。
原文链接:http://techgenix.com/top-kubernetes-features-of-2020/