谷歌继续完善其Kubernetes开放源码容器编制引擎,以处理持续变大的工作量。近期发布的1.3版具有新的功能,包括在不同网络(包括云和本地部署)管理资料库系统规则以及支持有状态应用的“联邦”能力。
谷歌云平台负责谷歌容器引擎和Kubernetes的高级产品经理David Aronchick在其电子邮件中这样写道:“我们生活在一个多重云的环境中,企业部署本地和公共云中的应用程序和数据。企业希望灵活应对客户和企业环境的变化。通过提供集群联邦服务,Kubernetes已迈出了为企业提供真正的可移植性和灵活性的第一步。”
现在可在GitHub下载 Kubernetes 1.3版本或 获取代码 。
联邦服务
跨集群联邦服务容许服务跨越一个以上的集群,甚至是远程集群。这可以在很大程度上改善服务的可靠性,甚至是开展严重损坏修复操作。
联邦能力允许组织在不同的可用区域中建立多个集群,甚至在地区或数据中心电力中断时可以继续运行。
Aronchick 解释说:“通过一个单命令,它们可以加入各个集群,形成一个联邦应用程序接口(API),允许用户同时通过多个集群部署一项服务;部署新服务时,各个集群可以创建适用于自身环境的负载平衡器,进一步简化管理任务。”
根据谷歌博客中详述特征的博文所述,该特征的部分功能为跨集群服务发现,允许容器“始终提供服务,无论其在其他集群中是部分运行还是完全运行”。
最终实现了有状态应用
Kubernetes 1.3版同时是首个可支持使用数据库或键值存储库等有状态应用的版本。当今的工作负载中,大部分都会涉及到某种状态,因此,支持有状态的工作负载是编制软件的一个重大突破。
Aronchick表示:“各个使用有状态存储的应用程序需要存储数据,确保数据有效期长于单资源(容器、VM或持久磁盘),以避免单点故障”。
到目前为止,大量Kubernetes插件程序可以将无状态服务连接到有状态应用,如MySQL、PostgreSQL和Zookeeper。但是,Kubernetes研发小组想要实施一种更为集成的方法。
有状态支持通过一个 “PetSet”新对象得以实现。例如,PetSet支持永久留存主机名,无需为每次重启获取一个新主机名,而且可以在整个系统中更新新地址。
PetSet还可以识别初始化容器。Aronchick解释说:“初始化容器在重启时只初始化一次,允许执行的动作包括首项选择、数据复制或与同组内其他服务器共享身份”。作为正常启动服务的一部分,初始化容器可以从之前的重启中准备数据或恢复状态。同时,PetSet可以为未使用的容器提供永久的磁盘空间。
还有什么?
Kubernetes 1.3版本还有很多其他特点,比如:
规模增大和自动化程度提高
谷歌称,如今当单个集群节点最大数量加倍时,可以更简单地实现集群的自动伸缩。目前,软件最多可以跟踪每个集群2000个节点,这是旧版本的两倍。
MiniKube – Kubernetes 学习工具
一个在笔记本电脑上启动集群的命令行工具,应用程序接口与Kubernetes完全兼容。这对本地测试非常有用。
升级的用户界面仪表盘
目前,仪表盘可显示集群的绝大部分活动,允许用户创建、编辑、控制所有工作负载资源。公司还宣布对由其托管并全权管理的Kubernetes版本 谷歌容器引擎 (GKE)进行了升级。尤其是,公司已经将GKE和 谷歌云身份和访问管理( IAM)功能进行了集成,授予了管理访问权限。
Aronchick称“集中式身份&访问管理是安全战略的基石之一,通过提供集中式的角色管理、用户审计和行为限制,组织可以限制其整个界面面积,改善安全保护。”
现在,通过GKE的NodePools功能,GKE可以识别固态驱动器,还可以跨区域运行不同的机器类型,这将开辟一种新方法,为特定工作负载进行集群定制。 另外,除Docker版本外,Kubernetes 1.3版本还可以全力支持CoreOS rkt容器格式。
产品负责人Wei Dang在其邮件中写道:“现在,社区可以根据架构、站点或部署的特定需求在Kubernetes支持的运行时间中选择最合适的运行时间”。
CoreOS
CoreOS, 提供商业版Kubernetes,即Tectonic,此版本在Kubernetes 基础上进行了大量改善工作,尤其是围绕Kubernetes应用程序接口添加了验证和授权,允许访问个别资源,进行更精细的管理控制。
针对容器的跟踪,Kubernetes 1.3版本同时还使用了CoreOS研发的最新版etcd,版本3具有产品级扩展增强功能,包括一组分布式协作基元,如分布式锁、选举以及软件事务内存。
本文由寄云科技翻译,转载请联系原作者。欢迎关注寄云科技订阅号(neuclouddy),这里有最新云服务行业资讯,更有与PaaS、运维相关的技术干货!