Kubernetes 1.7:安全加固、有状态应用更新和可扩展性


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

【3 天烧脑式容器存储网络训练营 | 深圳站】本次培训以容器存储和网络为主题,包括:Docker Plugin、Docker storage driver、Docker Volume Pulgin、Kubernetes Storage机制、容器网络实现原理和模型、Docker网络实现、网络插件、Calico、Contiv Netplugin、开源企业级镜像仓库Harbor原理及实现等。

这次发布的版本中安全方面的改进包括加密的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 关键特性的一部分。完整的列表可以查看发布说明

采用

感谢庞大的开放社区让这次发布成为可能。仅仅在三年时间内就完成了超过5万次提交,这还只是 Kubernetes 主要仓库的数量。 其他对于 Kubernetes 贡献到相关的仓库的扩展,提升了项目整体的稳定性。是速度让 Kubernetes 成为史上发展最快的开源项目之一。

世界的每一个角落都能发现 Kubernetes 的采用案例。从社区收集到的近期案例有:

  • GolfNow,一个 NBC Sports Group 成员,在把应用迁移到 Kubernetes 后,获得了更好的资源利用率,基础设施的开销砍掉一半

  • Bitmovin,一个视频基础设施解决方案提供商,向我们展示了他们在云环境和就地部署环境中如何实施多阶段金丝雀部署

  • Ocado,世界最大的在线超市,使用 Kubernetes 为他们的智能仓库打造分布式数据中心。可以这里查看他们完整的实施方案

  • 是否 Kubernetes 也帮助了你们的团队?欢迎同社区分享你们的故事。同时可以翻阅我们不断增加的用户场景分析,并从伟大的公司如 Box 学习如何在机构中采用 Kubernetes。


获取

Kubernetes 1.7 可以在 Github上下载。要开始上手Kubernetes,可以尝试使用互动式教程

参与

欢迎参加本年12月6号至8号在Austin举办的CloudNativeCon 和 KubeCon,这将是有史以来最大的 Kubernetes 聚会。演讲提案直到8月21日前都是开放的,在10月6日前购票都有折扣

参与最简单的方式是加入符合你兴趣的特别兴趣小组。是否有想同 Kubernetes 社区说的话?快来参加每周一次的社区聚会分享你的想法,或者使用以下渠道:
  • StackOverflow 上发表问题或者回答问题
  • K8sPort 上加入社区门户网站得到支持
  • 关注我们的 Twitter 账号 ( @Kubernetesio)获取最新咨询
  • Slack 上和社区互动
  • 分享你和 Kubernetes 的故事


非常感谢社区广大的贡献者和支持者,感谢你们让这次和所有的发布成为可能。

原文链接:Kubernetes 1.7: Security Hardening, Stateful Application Updates and Extensibility(翻译:钟最龙)

0 个评论

要回复文章请先登录注册