Cloud Native Computing Foundation (CNCF)发布了 Kubernetes 容器编排和调度系统的 1.5版 。其核心改进之处在于提供了与带状态应用的部署和扩展以及不中断应用的情况下执行集群操作相关的beta功能。它也提供了对可插拔容器运行时、Windows Server 2016节点以及Windows Server容器调度的alpha支持。由于配置存在潜在安全问题,建议所有用户跳过1.5.0版,改为使用具有 更安全的默认配置 的1.5.1版。
Kubernetes的初始 1.5版 主要关注标记为“alpha”和“beta”的交付:
在12月12号发布Kubernetes的初始1.5.0版之后,在谷歌Kubernetes声明小组内进行的一场 讨论 ,强调了几处配置选项的改动可能导致潜在的安全问题,这些配置在单独使用时没有问题,但是合在一起就会导致 集群不安全 。为了解决这一问题,Kubernetes的 1.5.1版 第二天就发布了。建议所有用户跳过1.5.0版,改为使用具有 更安全的默认配置 的1.5.1版。本文接下来介绍添加到最初的1.5.0版本的新功能。
beta阶段的 StatefulSet (之前叫“PetSet”)支持Kubernetes上持久标识和每实例存储的 创建 、 扩展 、 删除 和 修复 。该功能做了几点关键的安全性提升。为了确保绝不会有pod具有相同标识,Kubernetes节点控制器不再自动“强制删除”无响应节点上的pod,而是等待下列三个条件之一成立:Kubelet确认老的pod被结束了;集群管理员删除了对应的节点;集群管理员通过命令行接口“强制删除”了pod。有一份升级 指南 帮助操作员从PetSet升级到StatefulSet。
beta阶段的 PodDisruptionBudget 是一个API对象,它指定了一个pod集合任何时候可用时副本的最少数目或最小比例。根据Kubernetesd的发布说明,通过使用PodDisruptionBudget,应用部署人员能够确保完成组织的服务级目标(SLO),通过保证自愿清除pod的集群操作绝不会同时清除过多的pod以致数据丢失、宕机或者“不可接受的服务降级”。
alpha版的 Kubefed 是一个新的命令行工具,辅助联合集群的管理、降低部署新的联合控制面板的难度以及从现有联合集群中添加或者移除集群。集群联合方面还为 ConfigMaps 、 DaemonSets 以及 部署 到 联合API 新加了alpha版的API功能,因此可以从单一端点创建、更新和删除跨多个集群的对象。
Windows server容器 containers 为Windows Server 2016节点和 Windows Server容器 Containers 以及 Hyper-V容器 Containers 的调度提供了初步支持。该功能的实现是由Apprenda领衔多厂商联袂打造的,其中谷歌、小红帽和微软作出了卓越的贡献。在1.5版本中,Kubernetes控制面板(API服务器、调度器、控制器管理器等等)继续运行在Linux上,而kubelet和 and kube-proxy可以在Windows Server上运行。网络通信功能是使用L3路由实现的。但是依据Kubernetes文档,当前第三方网络插件(例如,flannel、calico等等)无法直接在Windows Server上运行,因此为了提供核心的网络通信功能,依赖了Windows和Linux内置的现成技术。
Kubernetes的 1.5版可以从GitHub和get.k8s.io上下载。在Kubernetes博客上可以找到本次发布的额外信息。
查看英文原文: Kubernetes 1.5 Released with Improved StatefulSets and Alpha Support for Windows Server 2016
感谢冬雨对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。