Platform9 推出“Kube2Go”及“Fission”无服务器框架

  • Daniel Bryant
  • 王强

2017 年 3 月 23 日

话题:DevOps语言 & 开发Kubernetes

Platform9发布了“Kube2Go”。这是一项基于 web 界面的 Kubernetes 集群部署服务,可被视为该公司近期推出的 Kubernetes 多重云托管服务的补充。此外 Platform9 还公布了名为“Fission”的无服务器框架,同样基于 Kubernetes。

用户可以使用 Platform9 的“Kube2Go”部署服务通过 web 界面创建高可用的 Kubernetes 集群,这与业内其他服务(如StackpointKCluster) 的做法类似。Kube2Go 目前只支持部署到基于 AWS(亚马逊云)的云环境中,但根据项目博客的声明,未来其将加入对微软 Azure 和谷歌云平台的支持。

使用“kops”命令行工具可以手动部署一个“生产级”的 Kubernetes 集群,但在集群的生命周期中用户都需要自行管理。管理 Kubernetes 集群是一项复杂的任务,因此该行业出现了一些基于 SaaS(软件即服务)的托管服务。例如 Kube2Go 就是对 Platform9 公司的Kubernetes 托管服务的一种增强,提升了后者的可用性。这项托管服务完全以 SaaS 解决方案的形式部署和运营。此外根据文档说明,平台管理的所有 Kubernetes 集群都可以进行跨越本地裸机(on-premise bare metal)和公有云基础设施的部署。

Plaftorm9 的 Kubernetes 托管服务的核心功能包括:

  • “纯净”的 Kubernetes:Platform9 Kubernetes 托管服务会将开源平台的上游版本打包为 SaaS 服务。
  • 企业集成:一些 Kubernetes 的集成会包含在整套服务中:端到端安全、集成 SSO(单点登录)的用户配额多租户控制、以及集成外部(云服务商)的持久存储和负载均衡器。
  • 高可用的:Kubernetes 托管会创建高可用、多主(multi-master)、多etcd(multi-etcd)的 Kubernetes 集群。它们可以跨越用户的私有或公有云环境中的不同可用区域。
  • 与 OpenStack 部署的集成:Kubernetes 托管服务可以使用与 Platform9 的 OpenStack 托管服务相同的界面接口来运行和管理。

InfoQ 最近采访了 Platform9 的联合创始人兼产品副总裁Madhura Maskasky。他强调这项新托管服务的关键特性是多重云组合:

公有/私有混合云可被视为一种“必要之恶”。因为组织都在设法避免依赖单一服务商,并选择报价各异的厂商来控制成本。纯粹的虚拟技术很难实现上述目的,因此如今容器成为了事实上的部署单元。我们将 Kubernetes 视为已有的虚拟化技术之上的关键抽象层。

Platform9 的 Kubernetes 托管服务的更多资料请访问官网页面。该领域内其他的 Kubernetes 托管服务包括:CoreOS TectonicGoogle GKEGiant Swarm Microservices Platform

Platform9 还发布了Fission。这是一款开源的功能即服务(FaaS)“无服务器”框架,构建并运行于 Kubernetes 之上。Fission“仅操作代码”,一般的操作无需考虑 Docker 和 Kubernetes 的基础容器和调度技术,不过如果有必要,在对 Fission 进行扩展时可以使用这些技术。

Fission 的核心以 Go 语言编写,特定语言的组件被隔离在“环境”中。所谓环境其实是一个容器外加一个 web 服务器和动态加载器。这种设计很像Cloud FoundryHeroku的“bulidpacks”的概念。Fission 目前的 alpha 版本支持 NodeJS 和 Python,很快还会支持更多语言(包括.NET 和 php7)。开发者亦可创建自己定制的环境。

Fission 的“函数”是一段遵循特定接口的代码。其他组件可以将事件映射到函数中以触发它。Fission 目前支持 HTTP 路由、定时器和 Kubernetes 事件作为事件触发器。为了保持对事件触发的快速响应,Fission

保有一个“热”容器池,池中的容器都包含一个小型动态加载器。当函数被初次调用时(亦即“冷启动”),Fission 会选择一个运行中的容器来加载它。根据文档介绍,典型的冷启动延迟大约在 100 毫秒左右。

Fission 的潜在使用场景包括:

  • 部署简单的 REST API:无需调整服务器就能创建 web 与移动应用的后端 API。开发者编写函数代码,Fission 通过 Kubernetes 完成部署、路由、扩展和保证可用性。

  • 创建“Bot”和 Webhook(钩子):Fission 可用于实现 Webhook。函数可以映射一个 URL 触发器,第三方 Webhook 则指向这个 URL。

  • 处理 Kubernetes 事件:Fission 支持基于 Kubernetes watch 来触发函数。例如,函数可以被配置为观察(watch)某个特定命名空间内所有符合特定标签的 pod。这些事件处理函数可以用作简单的监视器。

Fission 代码库可以从Fission Github获取。该领域的其他开源项目有 Skippbox 的kubeless、fabric8 的funktion与 Apache OpenWhisk

查看英文原文:Platform9 Introduce 'Kube2Go' Alongside Managed Kubernetes and 'Fission' Serverless Framework


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

DevOps语言 & 开发Kubernetes