k8s

Kubernetes 1.7 新特性概览

Posted by Mathew on 2017-11-13

Kubernetes 1.7 新特性概览

Kubernetes1.7,这一里程碑版本引入了更为强大的安全性、存储以及扩展性因素,旨在满足Kubernetes在广泛企业环境下所面临的实际需求。

这次发布的版本中安全方面的改进包括加密的Serect,Pod到Pod通讯的网络策略,限制kubelet访问的节点授权器(node authorizer),和客户端/服务端 TLS 证书轮换。

对于在Kubernetes上伸缩数据库的用户,这次版本有一个重要特性向StatefulSet添加了自动化的更新,并增强了对DaemonSet的更新。同时我们宣布对本地存储和用于更快速伸缩StatefulSet的加速模式(burst mode)的alpha支持。

同时,对于高级用户,这次版本中的API聚合允许用户提供的API服务器和Kubernetes API在运行时一起提供服务。其他重点改进的地方包括可伸缩的准入控制器(admission controller),可插拔的云提供者,和容器运行时接口(CRI)。

新特性

安全:

  • 网络策略 API(Network Policy API)提升至稳定状态。网络策略通过一个网络插件实现,允许用户对管理哪些 Pod 可以彼此通信的规则进行设置和强制。
  • 节点授权器(Node authorizer)和准入控制插件(admission control plugin)是新增用来限制kubelet基于节点对Secret、Pod和其对象的访问。
  • Secret的加密和其他etcd中的资源,现在可用并处于alpha状态。
  • Kubelet TLS 启动现在支持客户端和服务端证书轮换。
  • 由 API 服务器存储的审计日志(Audit log),现在定制化和可扩展性更强,支持事件过滤和 webhook。它们同时为系统审计提供了更丰富的数据。

状态化工作负载:

  • StatefulSet Update 是1.7中一个新的 beta 状态的特性,能允许有状态应用如 Kafka,Zookeeper 和 etcd 的更新自动化。它使用了各种升级策略,包括滚动更新。
  • 对于无顺序要求的应用,通过 Pod 管理策略(Pod Management Policy),StatefulSet 现在支持更快的伸缩和启动。这可以大大提升性能。
  • 本地存储( alpha状态 )是有状态应用一个最常被请求添加的特性。用户现在可以通过标准的PVC/PV接口和StatefulSet中的StorageClass来访问本地存储卷。
  • DaemonSet,每一个节点上创建一个 Pod 已经有了一个更新特性,在1.7中添加了更加机智的回滚和历史回溯能力。
  • 一个新的 StorageOS 卷插件能从本地的和连接的节点存储中提供高可用的、集群范围的持久性卷。

可扩展性:

  • 运行时的 API 聚合是这次发布中最强大的特性,可以让高级用户向集群中添加预先构建的、第三方的或者用户自制的具有Kubernetes风格的API。
  • 容器运行时接口(CRI)通过新的从运行时获取容器指标的 RPC 调用得到增强。CRI 的验证测试已经发布,和containerd 1.0的整合处于 alpha 状态,现在支持基本的 Pod 生命周期和镜像管理。可以阅读我们之前深入介绍 CRI 的文章

其他特性:

  • 引入了对于外部的准入控制器的支持,现在处于 alpha 状态,提供了两种选项来向 API 服务器添加自定义业务逻辑在对象创建的时候进行更改,以及验证策略。
  • 对于联合的集群,引入了基于策略的联合资源放置(Policy-based Federated Resource Placement),处于alpha状态,其基于自定义的要求如规则、定价或者性能。

废弃:

  • 第三方资源(Third Party Resource,TPR)已经被自定义资源定义(Custom Resource Definition,CRD)取代,后者的API更加简洁,并且解决了 TPR beta 测试时出现的问题和边缘场景。鼓励从 TPR 迁移到 CRD,因为Kubernetes 1.9中社区会去掉TRP。

上面就是 Kuberenetes 1.7 关键特性的一部分。完整的列表可以查看发布说明。

参考:CHANGELOG-1.7.md