Kubernetes 1.6:大规模的多用户,多工作负载

今天,我们宣布发布Kubernetes 1.6。

在此版本中,社区的重点是规模和自动化,以帮助您将多个工作负载部署到群集上的多个用户。我们宣布支持5,000个节点群集。我们将动态存储资源调配移至 稳定。基于角色的访问控制( RBAC), 胡闹, 库贝姆,并且一些计划功能正在迁移到 贝塔。我们还在整个过程中添加了智能默认值,以实现更高的自动化程度。

什么是新的

规模与联合 :寻求大规模性能证明的大型企业用户将很高兴知道Kubernetes的严格可扩展性 斯洛 现在支持5,000个节点(150,000个Pod)集群。借助新版本的,总群集大小增加了150% etcd v3 如果您要部署搜索或游戏之类的应用程序,这些应用程序可能会增长以消耗更大的集群,那么它是一个好消息。

对于想要扩展到超过5,000个节点或分布在多个区域或云中的用户, 联邦 使您可以组合多个Kubernetes集群并通过单个API端点对其进行寻址。在此版本中, 胡闹 命令行实用程序毕业于 贝塔 -改进了对本地群集的支持。现在小菜一碟 自动配置 连接集群上的kube-dns,可以将参数传递给联合组件。

安全与设置 :关心安全的用户会发现 RBAC,现在 贝塔 通过为系统组件设置更严格的默认角色,可显着提高安全性。 1.6中的默认RBAC策略向控制平面组件,节点和控制器授予范围内的权限。 RBAC允许群集管理员基于每个命名空间有选择地授予特定用户或服务帐户对特定资源的细粒度访问权限。从1.5升级到1.6的RBAC用户应查看指南 这里

寻求在物理或云服务器上配置安全集群的简便方法的用户可以使用 库贝姆,现在 贝塔。 库贝姆已通过一组命令行标志和包括RBAC设置在内的基本功能集得到增强, 引导令牌系统 和增强 证书API.

进阶排程 :此版本增加了一组 强大而通用的调度结构 使您能够更好地控制Pod的调度方式,包括将Pod限制在异构集群中特定节点的规则,以及将Pod分布或打包到故障域(例如节点,机架和区域)上的规则。

节点亲和/反亲和,现在在 贝塔,您可以根据节点标签限制窗格仅在某些节点上调度。使用内置或自定义节点标签来选择特定区域,主机名,硬件体系结构,操作系统版本,专用硬件等。根据需要您对调度程序执行严格性的严格程度,可以要求或首选调度规则。

一个相关功能,称为 污点和宽容使用,可以紧凑地表示从特定节点中排除Pod的规则。该功能,现在也在 贝塔,例如,通过将不需要的Pod排除在外,可以轻松地将节点集专用于特定的用户集,或将具有特殊硬件的节点保留给需要特殊硬件的Pod。

有时,您可能希望将服务或服务中的Pod安排在拓扑上彼此靠近,例如以优化南北或东西通信。或者,您想散布服务的Pod以实现容错能力,或者使对抗Pod分开,或者确保节点的唯一租赁。 Pod亲和力和反亲和力,现在在 贝塔通过让您设置在任意拓扑结构(节点,区域等)中相对于彼此扩展和打包Pod的硬性或软性要求,从而启用了这些用例。

最后,为了最大程度地提高调度灵活性,您可以在默认的Kubernetes调度程序旁边或代替其运行自己的自定义调度程序。每个调度程序负责不同的Pod集。 多个调度程序贝塔 在此版本中。 

动态存储配置 :部署有状态应用程序的用户将从此版本的Kubernetes中受益于广泛的存储自动化功能。

自成立以来,Kubernetes能够根据Pod规范自动附加和分离存储,格式化磁盘,安装和卸载卷,并且随着Pod在节点之间移动而无缝地进行操作。此外,PersistentVolumeClaim(PVC)和PersistentVolume(PV)对象将存储请求与特定存储实现分离开来,从而使Pod规范可在各种云和本地环境中移植。在此版本中 存储类动态卷配置 被提升为 稳定通过按需创建和删除存储来完成自动化过程,从而无需预先配置。

该设计使集群管理员可以定义和公开集群中的多种存储方式,每种存储方式都具有一组自定义参数。最终用户不必再担心如何配置存储的复杂性和细微差别,同时仍可以从多个存储选项中进行选择。

在1.6版本中,Kubernetes附带了一组内置默认值,以完全自动化存储供应生命周期,使您可以自由地处理应用程序。具体来说,Kubernetes现在为AWS,Azure,GCP,OpenStack和VMware vSphere预安装了系统定义的StorageClass对象 默认。这使这些提供程序上的Kubernetes用户可以动态配置存储,而不必手动设置StorageClass对象。这是一个 更改默认行为 在这些云上的PVC对象。请注意,默认行为是使用“删除”创建动态预配置的卷 回收政策。这意味着删除PVC后,动态配置的卷将自动删除,因此用户无需执行“清理”的额外步骤。

此外,我们总体上扩大了支持的存储范围,包括:

  • ScaleIO Kubernetes 音量插件 使Pod能够无缝访问和使用ScaleIO卷上存储的数据。
  • Portworx Kubernetes 音量插件 添加了将Portworx用作Kubernetes集群的存储提供程序的功能。 Portworx汇集了您的服务器容量,并将您的服务器或云实例转变为融合的,高度可用的计算和存储节点。
  • 使用以下命令在群集上支持NFSv3,NFSv4和GlusterFS COS节点图片 
  • 支持用户编写/运行动态PV供应商。可以找到一个golang库和示例 这里.
  • 贝塔 支持 安装选项 持续不断地

容器运行时接口,etcd v3和守护程序集更新 :尽管用户可能不会直接与容器运行时或API服务器数据存储区进行交互,但它们是Kubernetes中面向用户功能的基础组件。因此,社区投资于扩展这些和其他系统组件的功能。

  • Docker-CRI实现是 贝塔 并且默认在kubelet中启用。 Α 支持其他运行时, 批评, 弗拉克蒂, t,也已实施。
  • API服务器的默认后端存储为 已升级 使用 etcd v3 对于新集群,默认情况下。如果要从1.5群集升级,则应通过计划数据迁移窗口来确保连续性。 
  • 由于Kubelet公开了可配置的管理员,因此提高了节点可靠性 可分配节点 为系统守护程序保留计算资源的功能。
  • 守护程序集更新 使您可以对守护程序集执行滚动更新

Α功能 :此版本主要侧重于成熟的功能,但是,添加了一些alpha功能以支持路线图

  • 树外云提供商 支持添加了一个新的cloud-controller-manager二进制文件,该二进制文件可用于测试新的核心​​外云提供商流程
  • 逐个逐出 如果发生节点问题并结合toleranceSeconds,则用户可以调整Pod绑定到遇到问题的节点的持续时间
  • 吊舱注射政策 添加一个新的API资源PodPreset,以在创建时将诸如机密信息,卷,卷装载和环境变量之类的信息注入到pod中。
  • 自定义指标 在Horizo​​ntal Pod Autoscaler中将支持更改为使用 
  • 多个Nvidia GPU支持 仅在Docker运行时中引入

这些只是我们今年的第一版中的一些亮点。有关完整列表,请访问 发行说明.

社区
由于我们庞大而开放的社区,因此可以发布此版本。我们共同推动了大约275位作者的近5,000次提交。为了将我们的许多拥护者召集在一起,社区发起了一项名为 K8端口,这是一个在线中心,社区可以在其中参与游戏化挑战,并因其贡献而获得赞誉。阅读有关该程序的更多信息 这里.

发布过程

非常感谢 发布团队 1.6版(由CoreOS的Dan Gillespie领导)所做的工作使1.6发行版亮相。这个发布团队是Kubernetes社区对社区治理的承诺的典范。 Dan是第一位非Google发布经理,他与团队的其他成员一起,在整个发布过程中(基于1.5发布经理,Saad Ali的出色工作),发现并记录了部落知识,对工具和工具的了解。仍然需要特殊权限的进程,并优先处理工作以改进Kubernetes发行过程。非常感谢团队。

用户采用

我们仍在继续看到Kubernetes在所有行业和企业规模中的迅速采用。此外,从美国田纳西州的一家初创公司到中国的《财富》 500强公司,其采用都在全球范围内。 

  • 中国最大的互联网公司之一京东(JD.com)将Kubernetes与OpenStack部署结合使用。到目前为止,他们已经在Kubernetes上移动了20%的应用程序,并且每天已经运行20,000个Pod。阅读有关其设置的更多信息 这里
  • 总部位于田纳西州的初创公司Spire见证了其公共云提供商的停运,但由于Kubernetes能够将其工作负载转移到不同的区域,因此停机时间为零。阅读他们的完整经验 这里.

“有了Kubernetes,就再也不会出现恐慌的时刻了,只是看着这种自动缓解措施感到敬畏。”

  • 与社区分享您的Kubernetes用例故事 这里.

可用性
Kubernetes 1.6可供下载 这里 在GitHub和上 get.k8s.io。要开始使用Kubernetes,请尝试以下方法之一 互动教程

参与其中
柏林的CloudNativeCon + KubeCon 是2017年3月29日至30日,我们希望与社区中的大多数人聚在一起并在其中分享更多!

在我们的每周分享您的声音 社区会议

非常感谢您的贡献和倡导!

-Google Kubernetes高级产品经理Aparna Sinha

PS:请阅读 系列深入文章 Kubernetes 1.6的新功能