Kubernetes 1.15:可扩展性和持续改进

作者: 1.15 发布团队

我们很高兴宣布Kubernetes 1.15的交付,这是我们的2019年第二版! Kubernetes 1.15包含25项增强功能:2项已升级至稳定版,13项Beta版本和10项alpha版本。此版本的主要主题是:

  • 连续的提高
    • 项目的可持续发展不仅与功能有关。许多SIG一直在努力提高测试范围,确保基础结构保持可靠以及核心功能集的稳定性,并致力于使现有功能成熟并清理积压的工作。
  • 可扩展性
    • 社区一直在寻求对扩展性的持续支持,因此此周期的重点是围绕CRD和API机械进行的更多工作。此周期中的大多数增强功能均来自SIG API机械及相关领域。

让我们深入了解此版本的主要功能:

围绕核心Kubernetes API的可扩展性

有关CustomResourceDefinitions的新开发的主题是数据一致性和本机行为。用户不应注意到交互是与CustomResource还是与Golang本机资源进行的。我们正在迈出重要的一步,努力在下一个版本中发布CRD的GA版本和准入webhooks的GA。

In this direction, we have rethought our OpenAPI based validation schemas in CRDs and from 1.15 on we check each schema against a restriction called “structural schema”. This basically enforces non-polymorphic and complete typing of each field in a CustomResource. We are going to require structural schemas in the future, especially for all new features including those listed below, and list violations in a NonStructural condition. Non-structural schemas keep working for the time being in the v1beta1 API group. But any serious CRD application is urged to migrate to structural schemas in the foreseeable future.

关于如何使架构结构化的详细信息将在本周晚些时候在kubernetes.io上的博客文章中发布,这当然是 Kubernetes 文档中记录的内容.

beta:CustomResourceDefinition Webhook转换

自1.14开始,CustomResourceDefinitions支持多个beta版本。借助Kubernetes 1.15,他们可以即时在不同版本之间进行转换,就像用户习惯于长期从本地资源中获取资源一样。 CRD的转换是通过webhooks实现的,由集群管理员在集群内部部署。此功能已在Kubernetes 1.15中提升为beta版,从而将CRD提升到了全新的水平,可用于严重的CRD应用程序。

beta:CustomResourceDefinition OpenAPI发布

OpenAPI specs for native types have been served at /openapi/v2 by kube-apiserver for a long time, and they are consumed by a number of components, notably kubectl client-side validation, kubectl explain and OpenAPI based client generators.

适用于CRD的OpenAPI发布将以Kubernetes 1.15作为beta版本提供,但仅适用于结构化架构。

beta:CustomResourceDefinitions修剪

修剪是自动删除发送给Kubernetes API的对象中的未知字段。如果未在OpenAPI验证模式中指定该字段,则该字段未知。这既是数据一致性又是与安全性相关的功能。它强制仅将CRD开发人员指定的数据结构持久化到etcd。这是本地资源的行为,也将适用于CRD,从Kubernetes 1.15中的beta版本开始。

Pruning is activated via spec.preserveUnknownFields: false in the CustomResourceDefinition. A future apiextensions.k8s.io/v1 variant of CRDs will enforce pruning (with a possible, but explicitly necessary opt-out).

修剪要求CRD开发人员提供顶级或所有版本的CRD的完整结构验证方案。

alpha:CustomResourceDefinition默认值

CustomResourceDefinitions get support for defaulting. Defaults are specified using the default keyword in the OpenAPI validation schema. Defaults are set for unspecified field in an object sent to the API, and when reading from etcd.

默认值将在Kubernetes 1.15中以alpha形式用于结构化架构。

beta:入学Webhook的重新调用和改进

对于扩展Kubernetes API的项目来说,变异和验证准入网络钩子已成为越来越主流。到现在为止,变异的Webhook仅按字母顺序被调用一次。较早运行的webhook无法对链中稍后调用的webhooks的输出做出反应。使用Kubernetes 1.15将会改变:

Mutating webhooks can opt-in into at least one re-invocation by specifying reinvocationPolicy: IfNeeded. If a later mutating webhook modifies the object, the earlier webhook will get a second chance.

这要求webhook具有类似idem-potent的行为,可以应对第二次调用。

计划不添加另一轮调用,以使Webhook作者仍然必须注意对其实现的允许对象的更改。最后,调用验证webhook来验证是否满足承诺的不变量。

的 re are more smaller changes to admission webhook, notably objectSelector to exclude objects with certain labels from admission, arbitrary port (not only 443) for the webhook server.

集群生命周期稳定性和可用性改进

使kubernetes的安装,升级和配置更加可靠的工作一直是SIG集群生命周期这一周期的主要重点(请参阅我们的最后一篇) 社区更新)。已将裸机工具和生产就绪用户案例中的错误修复(例如高可用性用例)的优先级定为1.15。

库贝姆 , the cluster lifecycle building block, continues to receive features and stability work required for bootstrapping production clusters efficiently. 库贝姆 has promoted high availability (HA) capability to beta, allowing users to use the familiar 库贝姆 init and 库贝姆 join commands to 配置和部署HA控制平面。专门创建了一个全新的测试套件,以确保这些功能将随着时间的推移保持稳定。

证书管理在1.15中变得更加强大,kubeadm现在可以在证书过期之前无缝轮换您所有的证书(在升级时)。检查 库贝姆 文档 有关如何管理证书的信息。

库贝姆 配置文件API正在1.15中从v1beta1迁移到v1beta2。

最后,让我们现在庆祝kubeadm 有自己的徽标!

 库贝姆 官方徽标

CSI持续改进

在Kubernetes v1.15中,SIG存储继续进行 启用树内卷插件的迁移 到容器存储接口(CSI)。 SIG存储致力于通过树内功能(包括调整大小,内联卷等功能)使CSI具有同等功能。 SIG Storage在CSI中引入了Kubernetes Storage子系统中尚不存在的新alpha功能,例如卷克隆。

卷克隆使用户可以在配置新卷时将另一个PVC指定为“数据源”。如果基础存储系统支持此功能并在其CSI驱动程序中实现“ CLONE_VOLUME”功能,则新卷将成为源卷的克隆。

其他重要功能更新

检查 发行说明 有关重要功能和修复的完整列表。

可用性

Kubernetes 1.15可用于 在GitHub上下载。要开始使用Kubernetes,请查看以下内容 互动教程。您也可以使用以下命令轻松安装1.15 库贝姆 .

功能博客系列

如果您想更深入地探索这些功能,请在本周以及我们的Days of Kubernetes 系列中查看下一个,我们将重点介绍以下功能的详细演练:

  • CRD的未来:结构模式
  • 为Kubernetes引入批量克隆Alpha
  • Kubeadm中的自动化高可用性

发布团队

在数百名贡献了技术和非技术内容的个人的努力下,此版本才得以实现。特别感谢 发布团队 由Pivotal Software的高级技术程序经理Claire Laurence领导。发布团队中的38个人协调了发布的各个方面,从文档到测试,验证和功能完整性。

随着Kubernetes社区的发展,我们的发布过程很好地展示了开源软件开发中的协作。 Kubernetes 继续迅速吸引新用户。这种增长创造了一个积极的反馈周期,更多的贡献者提交了代码,从而创建了一个更加活跃的生态系统。 Kubernetes 已经结束了 32,000个人贡献者 迄今为止,已有超过66,000人的活跃社区。

项目速度

CNCF继续完善DevStats,这是一个雄心勃勃的项目,旨在可视化项目中做出的无数贡献。 K8s DevStats 阐述了主要公司贡献者的贡献细目,以及令人印象深刻的一组预先配置的报告,涵盖了从单个贡献者到请求生命周期的所有内容。在过去一年中, 379家不同公司和2,715多名个人 每月为Kubernetes做贡献。 查看DevStats 了解有关Kubernetes项目和社区整体速度的更多信息。

用户亮点

已建立的全球组织正在使用 生产中的Kubernetes 大规模。社区最近发布的用户故事包括:

Kubernetes 在帮助您的团队吗? 分享你的故事 与社区。

生态系统更新

酷比康

全球最大的Kubernetes大会KubeCon + CloudNativeCon即将到来 上海 (与开放原始码峰会位于同一地点)自2019年6月24日至26日,以及 圣地亚哥 从11月18日至21日。这些会议将包括技术会议,案例研究,开发人员深度潜水,沙龙等! 立即注册!

网络研讨会

7月23日太平洋标准时间上午10点加入Kubernetes 1.15版本团队的成员,以了解此版本的主要功能。寄存器 这里 .

参与其中

参与Kubernetes的最简单方法是加入众多方法之一 特别兴趣小组 (SIG)符合您的兴趣。您有什么想向Kubernetes社区广播的内容吗?在我们的每周分享您的声音 社区会议,并通过下面的渠道。感谢您一直以来的反馈和支持。