Kubernetes 1.14发布重大功能更新,支持Windows节点的云原生平台

204 阅读6分钟
原文链接: dockone.io

3月25日,开源Kubernetes云原生平台1.14版本正式亮相,这也是Kubernetes在2019年的首次发布。按照Kubernetes的发布节奏,Kubernetes从alpha版进展到beta版并最终稳定下来,Kubernetes 1.14已经全面可用。

Kubernetes1.14版本由31项增强功能组成,具体包括:10项稳定版功能,12项beta测试功能,以及7项全新功能。此次版本的核心主题在于可扩展性,以及在Kubernetes上支持更多工作负载。本轮共有三项主要功能迎来通用版本,另有一项重要安全功能步入beta测试阶段。

推出对Windows节点的生产级支持

Kubernetes1.14版的最新版本已经推出了针对Windows节点的生产级支持,以及迈向稳定版的10个增强功能。

“我最自豪的是,这个版本比Kubernetes的任何版本都有最稳定的增强,”谷歌高级测试工程师和Kubernetes 1.14发布主管AaronCrickenberger表示。“你已经听到人们谈论Kubernetes专注于稳定性和成熟度,这就是这个版本的结果。“

Crickenberger为Windows特别兴趣小组负责人迈克尔·迈克尔、微软和其他公司在Windows节点上的工作提供了支持,这项工作始于三年前。

现在,您可以使用Docker在Kubernetes上调度WindowsServer 容器。“这项工作的重点在修改Kubelet和Kube代理,以使Windows操作系统得到支持,而Windows上的Docker功能得到了适当的考虑,” Michael说。

第二个重要部分是关于网络基础设施的。随着容器网络接口(CNI)的添加,网络基础设施也必须在Windows上运行良好。这涉及到与许多网络供应商和网络插件的集成,以确保他们的CNIs版本也能在Windows上工作。这项努力正在进行中。

Kubernetes 1.14包括:

工作节点和容器可以使用Windows Server 2019;
使用Azure-CNI、OVN-Kubernetes和Flannel支持网络连接;
改进了对pod、服务类型、工作负载控制器和指标/配额的支持,以便与Linux容器提供的功能紧密匹配;

Michael说,大多数企业都同时拥有Windows和Linux工作负载,这推动了对Windows支持的需求。“如果你是一家企业,同时拥有Linux和Windows应用程序,你不会想要使用两个不同的编排。您希望在您的生态系统中采用云原生方法,”他说。

kubectl重要增强功能

重写了kubectl的文档,重点是使用声明性Resource Config来管理资源。这份文档目前以独立站点的形式发布,采用电子书格式,并在k8s.io文档中提供对应链接。还有一个kubectl标志和名为kubee-cuddle的吉祥物。

kustomize 的声明性 Resource Config 创作功能现在可通过 -k 标志(如用于命令 apply、get 等命令)和 kustomize 子命令在 kubectl 中获得。Kustomize使用kubernetes原生概念帮助用户编写和重用Resource Config。

kubectl插件机制逐渐稳定。它允许开发人员将自定义的kubectl子命令发布为独立的二进制文件。

持久化本地Volumes已经GA。它们允许用户将本地连接存储作为持久卷来源。

进程ID(PID)正在升级为beta版。解决了达到Task Limit并导致主机不稳定的问题,此功能允许管理员能够通过默认每个Pod的PID数量来提供pod-to-podPID隔离。另一个alpha特性是能够为用户pod预留多个分配的PID。

Pod优先级和抢占机制使Kubernetes调度程序能够按优先级调度工作,并根据需要删除不太重要的pod。最终为意义更重大的Pod保留运行空间。具体重要性由优先级机制负责指定。

Pod Readiness Gates为pod的就绪情况提供外部反馈的扩展点。

RBAC发现集群角色绑定的默认强化。这在很大程度上是由11月发现的Kubernetes漏洞所驱动的。移除了原本默认可通过未授权访问的API集发现功能,旨在提升CRD隐私性以及默认集群的总体安全水平。

Kuberentes更稳定更清晰的未来

“将Windows作为一种潜在的工作负载,意味着我们必须更准确地定义Kubernetes在某些环境中支持什么,不支持什么。”Crickenberger说。

“我相信诸如pod readinessgates,优先级和pre-emption等特性对于人们编排高级工作负载非常有帮助。一些应用程序可能需要非常特殊的方法来表明它们是否准备好处理流量,并且pod-readyiness gate允许这样做。“

Kubectl的增强功能通过自定义子命令提供了一种kube-native方式,可以更有效地管理资源以及指定自己工作负载的插件。

他说,向Kubernetes引入Windows支持确实迫使该项目就普遍可用的方式进行了讨论。“这鼓励我们在发布过程中引入更多形式和流程,”他说。

“我认为,我们已经达到了一个与Kubernetes有关的非常有帮助的状态,如果我们能更好地记录所有期望。我们现在称之为增强功能,而不是特性。我们有整个增强过程,”他说。“我们已经确保这次发布的所有内容都是按照一致的标准来衡量。你能记录下alpha或beta或稳定/GA是什么意思吗?我们希望以一种交叉的方式审查API设计原则是否始终如一地使用,这样最终用户就不必完全重新学习某种操作方法。”

Michael补充说:“这个过程和成熟度确实让我们能够以统一的方式与每个SIG对话,从一开始就设定期望,让各个SIGs独立运行,并在发行版结束时满足这些期望。”

Crickenberger说,Kubernetes指导委员会不会控制项目的方向,但确保社区与未来的方向保持一致。

“我们对添加大量的特性不感兴趣,我们感兴趣的是Kubernetes是一个非常稳定,定义非常明确的东西,有非常清晰明显的扩展点,这甚至有点“无聊”。例如,允许审计的动态扩展就是一个明确的延伸点。

展望未来,他预计将从Kubernetes核心功能中提取出更多的可扩展组件,包括存储、CSI、DNI和容器网络,以及为更多的云提供商工作。