Kubernetes 1.7 发布,提供安全强化、StatefulSet 更新及可扩展特性

  • Daniel Bryant
  • Rays

2017 年 7 月 18 日

话题:DevOps语言 & 开发Kubernetes

Kubernetes 1.7已经发布,该版本聚焦于安全、存储和扩展性等交付特性,其中包括 Network Policy API、StatefulSets 自动升级策略以及可扩展的 API 聚合层。Kubernetes 的上一个发布版 1.6 版侧重于解决规模化和自动化上的问题,显然最新的 1.7 发布版力图为 Kubernetes 在企业组织中的进一步采用夯实基础。需注意的是,虽然 1.7 版的核心集群编排功能是以稳定版提供,但是其中给出的一些头条发布特性在文档中被标为 Alpha 版或 Beta 版。

新提供的安全特性包括:Network Policy API。该 API 当前已提升到稳定版,在实现为网络插件时,用户可以设置并强制使用规则,指定可相互通信的 Pod(类似于在用的网络 / 云 ACL);节点授权器(Node Authorizer)和准入控制(Admission Control)插件。它们是在 1.7 中以 Beta 版新添加的特性,用于限制kubelet访问那些控制 Secret、Pod 和其它基于节点对象的 Kubernetes API 操作;用于 Secret 的加密和其它存储在etcd的资源,当前以 Alpha 版提供可用;Kubelet TLS Bootstrapping,当前以 Alpha 版提供,支持客户和服务证书旋转(Rotation);由 API 服务器存储的审计日志,现在更改为可定制的和可扩展。

聚焦于存储和有状态工作负载管理的特性包括:StatefulSet Updates。它是在 1.7 中以 Beta 版新提供的特性,允许使用一系列的更新策略对有状态应用进行自动更新,包括滚动更新(rolling-update),以及金丝雀 (canary) 和分阶段(phased) 推出部署(rollout);本地持久卷(Local Persistent Volume)。当前以 Alpha 版发布,允许用户通过标准的PersistentVolumeClaims/PersistentVolume接口及 StatefulSets 中的StorageClasses访问本地存储卷;DaemonSets。该特性用于确保给定的 Pod 对每个节点准确地执行和运行一次,现已添加了rollback 和 history功能;新提供的StorageOS Volume 插件,它可在本地的或附加的节点存储上提供在整个集群范围内高可用的持久卷。

在可扩展性方面,1.7 中以 Beta 版的形式添加了API 聚合层,允许用户在他们的集群中添加 Kubernetes 风格的预先构建的、用户定义的或是第三方的 API。例如,其中添加了兼容Open Service Broker API的孵化特性service-catalog。与之相关的是,第三方资源(TPR,Third Party Resource)已经替代了用户资源定义(CRD,Custom Resource Definitions)。TPR 提供了更整洁的 API,并解决了在 TPR Beta 版期间出现的问题和极端案例。对此,CoreOS 发布了一个博客帖子,其中提供了差异的更多细节信息,并给出了一个创建 CRD 的走查过程。社区已规划在 Kubernetes 1.8 中移除 TPR Beta 版特性。容器运行时接口(CRI,Container Runtime Interface)实现从运行时中获取容器的度量指标,它已使用新的 RPC 调用得以改进。CRI 的验证测试已发布,并且与containerd集成的 Alpha 版的现已可用,它支持基本的 Pod 生命周期和镜像管理。在该Kubernetes 已发表的博客帖子中,可以了解到 CRI 的更多信息。

商业版的 Google Cloud Platform(GCP)Container Engine(GKE)提供了最新的 Kubernetes 1.7 发布版,并已进一步提供了开源的 Kubernetes 发布版与 Google 各平台间的集成,包括:使用Google Cloud Load Balancing(GCLB)的HTTP 重加密,使客户可以在从 GCLB 到他们的服务后端上使用 HTTPS;解决了 [对所有私有 IP 的 GA 支持] 问题 (https://cloud.google.com/container-engine/docs/ip-masquerade-agent)(RFC-1918),使用户可以在私有 IP 范围内创建集群并访问资源;服务可通过内部负载均衡(Internal Load Balancers)暴露,这是以 Beta 版提供的,允许 Kubernetes 和非 Kubernetes 服务在私有网络上相互访问(虽然当前通过 Cloud VPN 访问内部负载均衡的功能依然处于 Alpha 版);GKE 现在支持在Alpha Clusters中运行 NVIDIA K80 GPUs,该特性使得用户可以实验机器学习算法;自动修复,当前是 Beta 版。它通过对不健康节点进行主动监控,并在无需用户参与的情况下对节点做自动修复,保持了集群的健康运行;一些 GCP 优化的改进,用于简化集群从底层架构层上做自动扩展。

在 Kubernetes 博客及 GitHub 的Kubernetes 1.7 发行说明上,提供了关于Kubernetes 1.7 发布版的更多信息。

查看英文原文: Kubernetes 1.7 Released with Security Hardening, StatefulSet Updates and Extensibility Features

DevOps语言 & 开发Kubernetes