2018年6月27日,Kubernetes1.11版本发布,这也是Kubernetes在2018年度的第二个大版本。该版本最大的变化是增强了集群内负载均衡,CoreDNS毕业成为GA版本,作为Kubernetes内置默认DNS服务。
该版本的主要亮点集中在网络层面,SIG-API Machinery和SIG-Node的两项主要功能成为beta版本,同时进一步增强存储功能。利用该版本,用户将能够更轻松地将任意基础设施——无论云平台还是内部环境——接入Kubernetes当中。
本版本最值得关注的是增加了两项备受期待的功能,分别为:基于IPVS的集群内负载均衡,以及将CoreDNS作为集群DNS的附加选项——这意味着生产应用的可扩展性与灵活性都将得到提升。
可以称得上是亮点的功能有:
IPVS(即IP虚拟服务器)能够提供高性能内核负载均衡功能,且其编程接口较iptables更为简单,且网络吞吐量更上一层楼、提供更低的编程延迟,但是仍然不是默认配置,需要自己配置打开。
CoreDNS之前一直是作为Kuberentes的一个插件独立开发,Kubernetes中最早使用的是名为KubeDNS的DNS组件,CoreDNS是一套灵活且可扩展的权威DNS服务器,可直接与Kubernetes API相集成。相较于原有DNS服务器,CoreDNS的移动部件更少——仅包含单一可执行文件与单一进程,且允许用户通过创建自定义DNS条目以支持更为灵活的用例。其同样使用Go语言编写而成,因此天然具备更理想的安全性水平。
通过这项改进,用户可以将新的Kubelet配置部署在运行中的集群之内。此前,Kubelet需要通过命令行标记进行配置,这导致我们很难对运行中的集群进行Kubelet配置更新。在此次beta功能的帮助下,用户将能够通过API Server随时配置集群中运行中的Kubelet。
CRD不再局限于对单一版本的定制化资源作出定义。如今,利用此项beta测试功能,用户可以为资源定义多个版本。未来,其还将进一步扩展以支持版本间自动转换功能。目前,该功能允许定制化资源作者“以安全变更的方式实现版本升级,例如由v1beta1
切换至v1
“,并为发生变化的资源创建迁移路径。
主要是增强了CSI,1.11版本为CSI带来了对原始数据块分卷的alph支持能力,将CSI与新的kubelet插件注册机制相集成,同时降低了向CSI插件传递秘密凭证的难度。支持对持久分卷进行在线大小调整(alpha版本)。这意味着用户能够增加持久分卷的大小,而完全无需终止pod并卸载对应分卷。用户可以更新VPC以提交新的分卷大小请求,kubelet则负责完成文件系统的大小调整。