您的位置:首页 > 运维架构 > Docker

Kubernetes1.6本周正式发布

2017-03-30 11:32 495 查看

Kubernetes发布历史回顾

Kubernetes 1.0 - 2015年7月发布

Kubernetes 1.1 - 2015年11月发布

Kubernetes 1.2 - 2016年3月发布

Kubernetes 1.3 - 2016年7月发布

Kubernetes 1.4 - 2016年9月发布

Kubernetes 1.5 - 2016年12月发布

Kubernetes 1.6 - 2017年3月发布

Kubernetes1.6发布计划

第一阶段:2017年1月3日 - 2017年2月27日(已完成)

编写Kubernetes 1.6 代码

每两周发布一个alpha版本

确定1.6中所有要发布的特性

第二阶段:2017年2月27日 - 2017年3月22日(已完成)

代码冻结

修正bug

开始里程碑Burndown会议

更新文档

发布beta版本,目前已经发布了3个beta版本,v1.6.0-beta.1、v1.6.0-beta.2、v1.6.0-beta.3

在3月22日正式发布Kubernetes 1.6 RC版本

在3月28日正式发布Kubernetes1.6 GA版本(比原计划3月22日发布GA版本晚了几天,因为两个脚本的bug给耽误了)

Kubernetes1.6的新特性

如果用户想要扩大到比5000个节点更多的环境,或者散布于多个地区或多个云,联合(federation)让你可以结合多个Kubernetes集群,并通过单一的API端点来处理它们。在这个版本中,kubefed命令行实用工具成为了beta测试版,改进了支持本地集群的功能。kubefed现在可自动配置连接集群方面的kube-dns,可以将变量传递给联合的组件。

安全和设置:关注安全的用户会发现,现在是beta测试版的RBAC通过为系统组件赋予范围更严格限定的默认角色,增添了一个显著的安全优点。版本1.6中的默认RBAC策略授予了划定范围的权限,以便通过控制平面来管理组件、节点和控制器。RBAC让集群管理员可以为特定的用户或服务帐户,选择性地授予细粒度访问权限,以便根据命名空间来访问特定的资源。从版本1.5升级到1.6的RBAC用户应该参阅此处的指导(https://kubernetes.io//docs/admin/authorization/rbac.md#upgrading-from-15)。

如果用户在寻找一种简单的方法来配置物理或云服务器上的安全集群,可以使用kubeadm,它现在是beta测试版。kubeadm已由一组命令行标志和一系列基本的特性得到了改进,这些特性包括RBAC设置、使用Bootstrap Token系统和经过改进的Certificates API。

先进的调度:这个版本增添了一组功能强大、用途广泛的调度构件,让你可以更灵活地控制如何调度pod,包括将pod限制于异构集群中特定节点的规则,以及跨故障域(比如节点、机架或区域)分布或包装pod的规则。

节点亲和性/反亲和性(node affinity/anti-affinity):该功能现是beta测试版,让你可以限制pod,以便基于节点标签,只在某些节点上进行调度。使用内置或自定义的节点标签来选择特定的区域、主机名称、硬件架构、操作系统版本和专用硬件等。可能需要或优选调度规则,这取决于你希望调度程序执行这些规则有多严格。

一项相关的功能名为taints和tolerations,有了这种机制,就可以紧凑地表示将pod排除在某些节点之外的规则。这项功能现在也是beta测试版,比如说它让用户很容易将一组组节点专门分配给一组组特定的用户,或者让拥有特殊硬件的节点可以被需要该特殊硬件的pod使用,只需将不需要特殊硬件的pod排除在外。

有时候,你想要共同调度服务、服务里面的pod,或者从拓扑结构上来看彼此靠近的pod,比如说为了优化南北通信或东西通信。或者你想要分布服务的pod,以实现故障容错,或者让对立的pod分离开来,或者确保独自租用节点。pod亲和性与反亲和性现在是beta测试版,它就能够支持这类使用场合,因为让你可以设置严格或宽松的要求,以便相对任意拓扑结构(节点和区域等)里面的其他pod,分布和包装pod。

最后,为了获得最高的调度灵活性,可以与默认的Kubernetes调度程序一起运行自己的一个或多个自定义调度程序,也可以用自定义调度程序取代Kubernetes调度程序。每个调度程序负责几组不同的pod。在这个版本中,多个调度程序是beta测试版。

动态存储配置:如果用户部署了有状态的应用程序(stateful application),将得益于Kubernetes的这个版本中全面的存储自动化功能。

自一开始,Kubernetes就能够自动连接和拆卸存储资源、格式化磁盘、按照pod的规格挂载和卸载卷,而且在pod在节点之间移动的过程中,无缝地执行这类操作。此外,PersistentVolumeClaim(PVC)和PersistentVolume(PV)对象将存储请求与特定的存储实现分离开来,因而让pod规格可以跨一系列广泛的云和本地环境来移植。在这个版本中,StorageClass和动态卷配置已被提升为稳定版,可按照需要创建和删除存储资源,不需要预先配置,从而真正实现了自动化。

这种设计让集群管理员可以定义和公布一个集群里面多种形式的存储系统,每种存储系统都有一组自定义参数。最终用户不用再为资源配置方面的复杂性和微妙细节而操心,同时仍可以从多种存储方案中进行选择。

在版本1.6中,Kubernetes随带一组内置默认值,使存储配置生命周期完全自动化,让你得以一心开发应用程序。具体来说,Kubernetes如今在默认情况下,为AWS、Azure、GCP、OpenStack和VMware vSphere预先安装了系统定义的StorageClass对象。这让在这些提供商上的Kubernetes用户获得了这个好处:不必手动安装和设置StorageClass对象,就能实现存储动态配置。这是这些云上的PVC对象的默认行为出现的变化。请注意:默认行为是,动态配置的卷是使用“删除”回收策略而创建的。那意味着,一旦PVC被删除,动态配置的卷就自动被删除,那样用户没必要完成多余的步骤:“清理”。

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

ScaleIO Kubernetes 卷插件让pod能够无缝地访问和使用存储在ScaleIO卷上的数据。

Portworx Kubernetes卷插件增添了这项功能:使用Portworx,作为Kubernetes集群的存储提供者。Portworx将服务器容量汇集起来,把你的服务器或云实例变成融合的、高可用性的计算和存储节点。

支持使用COS节点镜像的集群上的NFSv3、NFSv4和GlusterFS。

支持用户编写/运行的动态PV配置工具。这里附有Golang库和示例(http://github.com/kubernetes-incubator/external-storage)。

对持久卷中挂载选项的beta测试版支持。

容器运行时接口、etcd v3和守护进程组(daemon set)方面的更新:虽然用户可能并不直接面对容器运行时接口或API服务器数据存储,但是这些是Kubernetes中功能的用户不可忽视的基本组件。正因为如此,社区致力于扩展诸如此类的系统组件的功能。

Docker-CRI实现是beta测试版,默认情况下在kubelet中启用。针对其他运行时环境、cri-o、frakti和rkt的alpha测试版支持也得到了实施。

针对API服务器的默认后端存储已得到了升级,可在默认情况下使用tcd v3,用于新集群。如果你从1.5集群升级过来,就要小心行事,规划好数据迁移窗口,确保连续性。

节点可靠性得到了增强,因为Kubelet公布了管理员可配置的Node Allocatable功能,为系统守护进程预留了计算资源。

守护进程组方面的更新让你可以对守护进程组执行滚动更新。

alpha测试版功能:然而,该版本主要专注于让功能成熟,增添了几项alpha测试版功能,以支持路线图。

树外(Out-of-tree)云提供商支持增添了新的云-控制器-管理器二进制代码,可用于测试新的核心外(out-of-core)云提供商流程。

防止节点故障的Per-pod-eviction结合tolerationSeconds,让用户可以调整pod在出现问题的节点里面停留的持续时间。

Pod Injection Policy增添了新的API资源PodPreset,以便在创建时往pod里面注入密钥、卷、卷挂载和环境变量等信息。

增添了对充分利用Horizontal Pod Autoscaler中自定义度量指标(custom metrics)的支持。

支持多英伟达GPU的功能随Docker运行时环境一并推出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息