Kubernetes 1.3 发布,支持跨集群联合服务和有状态服务

阅读数:1410 2016 年 8 月 9 日

话题:DevOps语言 & 开发Kubernetes

Kubernetes 1.3已经发布,改进了集群上下扩展、跨集群联合服务、本地开发工具,支持 CoreOS 的 rkt 容器格式,为支持新兴的 OCI 镜像格式和 CNI 网络标准奠定了基础,并包含尚处于 alpha 阶段的“PetSet”特性,为实现有状态应用程序提供支持。

据 Kubernetes 官方博客介绍,该版本包含的特性主要是为了实现两个用户愿望:一个是跨集群、区域和云边界部署服务;另一个是在容器中运行更为多样化的工作负载,包括有状态服务。为此,Kubernetes 1.3 有能力在多个公有云和本地私有云及数据中心之间架起桥梁,而且还集成了有状态服务的 alpha 支持,比如键 - 值存储和数据库。

Kubernetes 1.3 还包含若干其他新特性

  • 提升规模和自动化——允许用户根据应用程序需求自动向上和向下扩展他们的服务。Kubernetes 1.3 简化了集群的自动向上和向下扩展,并且将每个集群的最大节点数量提升了到了原来的两倍。
  • 跨集群联合服务——服务可以跨一个或多个(可能是远程的)集群,并且集群内外采用了一致的访问方式。据 Kubernetes 官方博客介绍,跨集群的服务有“更高的可用性,提供了地理分布,使混合云和多云场景成为可能”。Kubernetes 1.3 引入了跨集群的服务发现,让容器和外部客户端可以采用一致的方法确定服务,不管它们是部分地运行在其他集群中,还是完全地运行在其他集群中。
  • 有状态应用程序的 alpha 支持——受“宠物 vs 牛”这个类比的启发,Kubernetes API 新增了一个“PetSet”对象。借助以下新特性,它让操作者可以将应用程序视为宠物:
    • 多次重启也不会变化的永久性主机名;
    • 自动为每个容器配置永久性磁盘,可以在容器生命周期结束后继续存在;
    • 组内唯一标识,允许群集和群首选举;
    • 初始化容器,对启动集群应用程序至关重要。
  • 简化本地开发——Kubernetes 1.3 引入了Minikube,只要一条命令,开发人员就可以在笔记本上启动一个本地 Kubernetes 集群,而且与一个完整 Kubernetes 集群的 API 兼容。运行 Minikube需要使用一个虚拟机,比如 VirtualBox、VMware Fusion 或 KVM。相应地,由于使用 VM 对某些开发人员来说可能是一种限制,Mike Metral创建了nanokube。这是一个有着类似目标的开源项目。借助该项目,只需要在本地安装 Docker,就可以运行一个完整的 Kubernetes 集群。
  • 支持rkt容器镜像和 OCI&CNI容器标准——Kubernetes 1.3 为新兴的标准提供了原生支持,比如容器网络接口(CNI),并且为支持“开发容器计划(OCI)”打下了基础,该计划尚在审批中。CoreOS 的 rkt 已经作为 Kubernetes 节点中一种可选的容器运行时引入,优先集成了 rkt 和 kubelet。
  • 更新 Kubernetes 仪表板 UI——开发人员现在可以使用 Kubernetes 开源仪表板完成绝大多数同集群的交互,可以不必使用 CLI。更新后的 UI 让开发人员可以控制、编辑和创建所有工作负载资源(包括部署和 PetSets)。

7 月还见证了其他容器编排平台的里程碑发布,包括:Mesos 1.0提供了新的联合 HTTP API、标准统一的容器化(包括支持运行 Docker 和 rkt 格式的容器,而且不需要相应的原生运行时)、CNI 网络支持、经过改进的安全性和新增的外部存储支持。Docker 1.12 正式版发布,Docker Engine 现在对Docker Swarm ‘mode’提供了开箱即用的集成(InfoQ 之前有篇文章报道过 Swarm mode 中的新特性)。

Battery Ventures 技术专家Adrian Cockcroft在 Twitter 上表示,多个容器编排平台,如 Mesos、Swarm 和 Kubernetes,似乎都趋向一个共同的特性集,并提出了“最终的差异化在哪里”的疑问。这条推文的回复里有一些激烈的争论,最主要的评论来自谷歌云平台(Kubernetes 的创建者)的“员工开发大使(Staff Developer Advocate)”Kelsey Hightower,他认为,从社区的角度来看,“人们只是想要一些可以工作的东西”,并指出,当编排平台真正变得商业化以后,“人们会根据人的因素,如客户服务,选择产品”。

Get.k8s.ioKubernetes Github 开源库均提供了 Kubernetes 1.3 的下载。Kubernetes 的官方博客表示,Kubernetes 是一个开放式构建的社区项目,他们对所有的贡献者表示了感谢,其中,相关的 GitHub 库现在已经有 843 名不同的贡献者。

查看英文原文:Kubernetes 1.3 Released with Cross-Cluster Federation and Alpha Support for Stateful Services