我们很高兴地公布Kubernetes 1.13版本,这是我们2018年年内第四次也是最后一次发布新的版本!
Kubernetes 1.13是迄今为止发布间隔最短的版本之一,距离上一次迭代仅为十周。此版本继续关注Kubernetes的稳定性与可扩展性,其中存储与集群生命周期相关的三项主要功能已经逐步实现普遍可用。此版本中的核心更新包括:利用kubeadm简化集群管理、容器存储接口(简称CSI)以及将CoreDNS作为默认DNS。
这些稳定的功能设计代表着我们为用户以及运营人员设定支持期望方面实现的重要里程碑。此外,我们还在持续推出一系列内部改进及新的alpha测试功能,这些也将在本版本当中供社区使用。关于这些功能,我们将在下文中“值得注意的其它功能更新”章节中进行详尽讨论。
下面让我们深入了解此次发布版本的主要特性:
容器存储接口(简称CSI)实现普遍可用
容器存储接口(简称CSI)在先后经历了1.9版本中的alpha测试与1.10版本中的beta测试之后,如今终于迎来普遍可用。在CSI的帮助下,Kubernetes分卷层将真正实现可扩展性。在其帮助之下,第三方存储供应商将可以直接编写可与Kubernetes进行互操作性的代码,而无需触及任何Kubernetes核心代码。事实上,相关规范也已经同步达到1.0状态。
在CSI实现稳定之后,插件编写者们可以按照自己的节奏开发核心存储插件。感兴趣的朋友也可以查看CSI说明文档[1]以获取完整的示例与生产驱动程序清单。
在1.11版本当中,我们宣布CoreDNS已经实现了基于DNS服务发现的普遍可用。而在1.13版本中,CoreDNS则正式取代了kuber-dns成为Kubernetes中的默认DNS服务器。CoreDNS是一种通用的权威DNS服务器,能够提供与Kubernetes向下兼容且具备可扩展性的集成能力。CoreDNS自身属于单一可执行文件与单一进程,因此其活动部件数量要少于以往的其它DNS服务器,且可通过创建自定义DNS条目以支持各类灵活的用例。另外,由于CoreDNS使用Go语言编写,因此具有强大的内存安全性。
CoreDNS现在已经成为Kubernetes 1.13及后续版本中的首选DNS解决方案。Kubernetes项目现在开始在常用测试基础设施中默认使用CoreDNS,我们亦建议用户尽快完成这一转换。我们至少将在未来一个版本内为KubeDNS提供支持,但请大家马上动手开始规划转换工作。另外,包括1.11版本中Kubeadm在内的不少OSS安装工具也已经进行了转换。如果您正在使用托管解决方案,请与您的服务供应商联系以了解此次转换会给您带来何种具体影响。
对第三方设备监管插件的支持已经进入alpha测试阶段。这意味着从kubelet当中删除现有与特定设备相关的知识,从而将未来一切可能要求特定设备知识的用例排除在外。
Kubelet设备插件注册表已经正式毕业并迎来稳定版本。其建立起一套通用的Kubelet插件发现模型,能够利用不同类型的节点级插件(例如设备插件、CSI与CNI等)与Kubelet之间建立起通信通道。
拓扑感知分卷调度功能目前正式进入稳定阶段。其使得调度程序能够识别出Pod分卷的拓扑约束条件,例如区域或者节点等等。
APIServer DryRun正逐步进入beta测试阶段。这项功能将对象管理的“应用”与声明从kubectl转移至apiserver,旨在修复大量目前无法得到解决的现有bug。
Kubectl Diff正逐步进入beta测试阶段。其允许用户运行一条kubectl命令以查看本地声明的对象配置与活动对象的当前状态之间的差异。
使用持久分卷源的原始块存储设备正逐步进入beta测试阶段。其通过一个持久分卷源使得原始块存储设备(非联网)转化为可供用户的资源。
社区当中的各特别兴趣小组(简称SIG)将继续立足各自的专业领域发布最重要的增强、修复与功能成果。关于SIG的完整工作清单,请参阅发布说明[2]。
Kubernetes 1.13目前已经在GitHub上开放下载[3]。要开始使用Kubernetes,请参阅以下交互式教程[4]。大家也可以利用kubeadm轻松安装此次发布的1.13版本。
相关链接:
https://kubernetes-csi.github.io/docs/Drivers.html
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.13.md#113-release-notes
https://github.com/kubernetes/kubernetes/releases/tag/v1.13.0
https://kubernetes.io/docs/tutorials/