根据 Kubernetes Google Group 产品经理 Aperna Sinha 和 Kubernetes Mirantis 项目经理 Ihor Dvoretskyi 的说法,Kubernetes 1.7 中的 API aggregation 功能使用户可以在运行时添加自定义的 API 服务器,与 Kubernetes 默认的服务器同时运行。同时,extensible admission controllers, pluggable cloud providers, 和 container runtime interface (CRI) enhancements 也是发布的亮点。
Kubernetes 1.7: 功能落地于商业应用
不同于 Kubernetes 1.6 对规模和自动化的关注,Kubernetes 1.7 关注点集中在安全性、储存和扩展性功能上——这一举措是 Kubernetes 应用于企业环境中,并广泛使用的动力。
在 Kubernetes 1.7 中,安全性的改进包括,Encrypted secrets, network policy for pod-to-pod communication, node authorizer 限制 kubelet 访问和 客户端 / 服务端 TLS certificate rotation。
对于在 Kubernetes 上运行横向扩展数据库的用户, Kubernetes 1.7 中的一个主要功能是向 StatefulSets 添加自动更新,并增强了 DaemonSets 的更新。 重大利好:新版本有了对本地存储的 Alpha 支持和用于缩放 StatefulSets 的快速模式。
在 Storage 方面的改善,基于 Volume 的优化,可令企业级应用得到更为标准化的管理;Network 隔离方面也有相应的改善。
这说明 Kubernetes 已经从集群功能扩展到对企业功能支持,并落地到企业产品安全性需求上面。这对 Kubernetes 在企业中的落地化可谓是一次质的飞跃。
根据 Kubernetes Google Group 产品经理 Aperna Sinha 和 Kubernetes Mirantis 项目经理 Ihor Dvoretskyi 的说法,Kubernetes 1.7 中的 API aggregation 功能使用户可以在运行时添加自定义的 API 服务器,与 Kubernetes 默认的服务器同时运行。同时,extensible admission controllers, pluggable cloud providers, 和 container runtime interface (CRI) enhancements 也是发布的亮点。
Kubernetes 1.7 新功能
Kubernetes 1.7 版本增加了安全性、有状态的应用程序和可扩展性等功能。
安全性增强功能包括加密的机密数据,Pod 与 Pod 之间通信的网络策略,节点授权器限制 Kubelet 访问 API 资源以及 Kubelet 客户端/服务器 TLS 证书轮换。
有状态应用程序的主要功能包括 StatefulSets 的自动更新,DaemonSets 的增强型更新,用于更快的 StatefulSets 扩展的突发模式以及对本地存储的支持。
可扩展性功能包括 API 聚合,Custom Resource Definition,有利于 Third Party Resources,支持可扩展允许控制器,可插拔云提供商和容器运行时接口(CRI)增强功能。
网络
NetworkPolicy 已从 extension / v1beta1 升级到新的 networking.k8s.io/v1 API 组。结构与 v1beta1 API 保持不变。Namespaces 中的net.beta.kubernetes.io/network-policy 注释(用于选择隔离)已被删除。相反,隔离现在是以每个 pod 为基础确定的。 NetworkPolicy 可以通过在其spec.podSelector 中包含该 pod 来定位一个 pod 来进行隔离。 Targeted Pods 接受相应 NetworkPolicy 中指定的通信。默认情况下,任何 NetworkPolicy 未定位的 pod 都接受所有通信。
存储
删除 Alpha volume 配置,使用默认存储类。
Portworx volume 驱动程序不再需要在 master 上运行。
Cinder 存储类中的默认行为已更改。
hostPath volume 路径或者 volumeMount 子路径中包含父目录引用(例如../bar)的 Pod Spec 必须更改为绝对路径。 Backsteps 则不再允许。
更多其他新功能可以点击“阅读原文”查阅。
Kubernete 实践笔记
作为 Kubernetes 的深度用户及社区参与者,我们在迎接 Kubernetes 1.7 发布的同时会去思考其更深的意义。在有状态服务层面,StatefulSet 的 Rolling Update 功能进入了 Beta,意味着我们可以更加“自信地”更新有状态服务。当然,真正利用在生产上还需要我们进行更加深入的测试。另一方面,本地存储卷的功能使得我们可以将更多有状态服务运行在 Kubernetes 上。
——才云科技(Caicloud)CTO 邓德源
才云在 Kubernetes 企业化落地方面做了许多国内接地气的工作,比如:基于 Kubernetes 的 CI/CD 、对 Image 支持的 Cargo,对便于创建 Kubernetes 微服务的模版,令 Kubernetes 使用更简单,并且能更多地使用到基于 SaaS 层的应用。
他们计划利用本地存储功能将大数据的负载运行在 Kubernetes 内,包括对存储的管理也运行在 Kubernetes 中。本地存储卷管理与数据息息相关,在制定计划时才云倾向于保守,因此 Kubernetes 1.8 本地存储依然会是 Alpha,但是才云会从 1.7 版本开始尝试本地存储功能,并持续推动社区发展。
Kubernetes 1.7 的另一个重点可扩展性,例如 API aggregation, extensible admission controllers 等。实际上,Kubernetes 的一个核心优势就在于可扩展性,这次的更新并不意外。才云已经是 Kubernetes 可扩展性的受益者,例如:才云大量使用了 Kubernetes Thirdparty Resource (伴随着 1.7 的发布,需要迁移至 Custom Resoruce Definition) 管理内部资源,使用 Namespace Finalizer 进行资源清理,使用 External Scheduler 进行自定义调度管理等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。