k8s

Kubernetes 1.11 新特性概览

Posted by Mathew on 2019-08-01

Kubernetes 1.11 重点特性:基于IPVS的集群内负载均衡,以及将CoreDNS作为集群DNS的附加选项——这意味着生产应用的可扩展性与灵活性都将得到提升。

1. 基于 IPVS 的集群内服务负载均衡进入到 GA 阶段

  新版本中,基于 IPVS 的集群内服务负载均衡功能已趋于稳定。IPVS(IP 虚拟服务器)提供了高性能的内核内负载均衡,其编程接口比 iptables 更简单。这个改变为集群范围内包含 Kubernetes Service 模型的分布式负载均衡提供了更好的网络吞吐,更好的编程延迟和更好的扩展性。IPVS 还不是默认设置,但集群可以在产品流量中使用。

2. CoreDNS 进入 GA 阶段

  CoreDNS 现在可用作集群 DNS 附加选项,在使用 kubeadm 时是默认选项。CoreDNS 是一个灵活的,可扩展的权威 DNS 服务器,并集成在 Kubernetes API 中。CoreDNS 比以前的 DNS 服务器拥有更少的移动部件,因为它是单可执行文件和单进程,并且通过创建自定义 DNS 条目来支持灵活的用例。它也是用 Go 语言编写的,具有内存安全性。

3. 动态 Kubelet 配置升级到 Beta 阶段

  通过此功能,可以在运行的集群中部署新的 Kubelet 配置。目前,Kubelet 可以通过命令行标志进行配置,这使得更新正在运行的集群中的 Kubelet 配置变得困难。借助此 beta 功能,用户可以通过 API server 在运行的群集中配置 Kubelet 。

CustomResourceDefinitions 现在可以定义多个版本

  CustomResourceDefinitions 不再局限于定义单一版本的自定义资源,这是一项难以解决的限制。现在,利用此测试版功能,可以定义资源的多个版本。在未来,这将扩大到支持一些自动转换; 目前,此功能允许自定义资源作者“以安全更改进行升级,例如 v1beta1 到 v1”,并为有变化的资源创建迁移路径。

  CustomResourceDefinitions 现在支持 “status” 和 “scale” 子资源,这些子资源与监控和高可用性框架相集成。这两项更改提高了使用 CustomResourceDefinitions 在生产中运行云原生应用程序的能力。

4. CSI 的增强

  容器存储接口(CSI)在过去几个版本中一直是一个主要问题。在 1.10 版本发布之后,1.11 版本继续增强 CSI 功能。1.11 版本将原始块卷的 alpha 支持添加到 CSI,将 CSI 与新的 kubelet 插件注册机制集成在一起,并且更容易将密钥传递给 CSI 插件。

5. 新的存储功能

  支持在线调整 Persistent Volume 的大小已被引入作为 alpha 功能。这使用户可以增加 PV 的大小,而无需先终止 Pod 并卸载卷。用户将更新 PVC 以请求新的尺寸,kubelet 将调整 PVC 的文件系统尺寸。作为 alpha 功能引入了对动态最大卷计数的支持。此新功能使 in-tree 卷插件能够指定可以附加到节点的最大卷数,并允许限制因节点类型而异。以前,这些限制是通过硬编码或通过环境变量进行配置的。

  StorageObjectInUseProtection 特性现在很稳定,可以防止删除绑定到 PVC 的 PV,以及 Pod 使用的 PVC。这一保护措施将有助于防止删除当前绑定到活跃 Pod 的 PV 或 PVC 的问题。