特定于基于Docker的部署,这两者之间有什么区别?由于Google App Engine Flexible现在也支持基于Dockerfile的部署,而且它也是完全托管的服务,似乎是更优选的选项,而不是在Container Engine上配置Kubernetes部署,不是吗?
在App Engine灵活使用Google容器引擎时,更倾向于使用哪些用例?
答案 0 :(得分:23)
他们是不同的东西。 App Engine Flexible专注于应用程序开发 - 即您有一个应用程序,并且您希望由Google部署和管理)。另一方面,Kubernetes更多的是拥有自己的基础设施。显然,您也可以在Kubernetes中部署应用程序,但由于它是您自己的“基础架构”,您可以直接管理应用程序和应用程序的行为(创建服务,创建可伸缩性策略,RBAC,安全策略......) 。
从这个意义上讲,Kubernetes在您可以实现的目标方面更加灵活。但是,作为开发人员,您可能根本不感兴趣的是基础架构,只是您的应用程序可以工作和扩展。对于这种配置文件,App Engine Flexible更适合。
另一方面,如果想管理一个完整的Container基础设施(更多SRE配置文件),那么Kubernetes就适合您。
答案 1 :(得分:10)
除Javier's answer中提到的以外,主要好处是使用Kubernetes使您的应用程序具有可移植性,并且独立于基础云平台。如果您想将应用程序迁移到AWS,Azure,本地等,则可以在使用Kubernetes时进行很少的更改,而如果使用App Engine Flex,则需要更多操作变化。
另一个差异是,如果您要创建许多具有复杂结构的不同微服务,则Kubernetes会比App Engine更适合于此。同样在App Engine中实现微服务架构也不是没有可能。您当然可以使用不同的yaml文件,但是这些文件并没有给您带来很大的灵活性,最终将需要移植任何复杂的应用程序。
此外,如果您要使用有状态的容器,则无法使用App Engine Flex做到这一点。
Kubernetes是一个开源项目,其社区比App Engine更具活力。 Google比App Engine更关注Kubernetes,对Kubernetes的更新比App Engine更频繁。
但这并不意味着App Engine的功能有所降低。我曾使用App Engine(标准和灵活的环境)开发了可为数十万(现在可能是一百万)用户提供服务的复杂应用程序,而我们从未想过将其从GAE迁移出去。我的意思是,如果它可以处理Pokemon Go的流量,那么它当然也可以处理您的应用程序。
在性能方面,有人进行了比较here。汇总结果如下-
服务之间的重要区别是App Engine Flex 将自动化偏重于Google的控制权,而Kubernetes Engine 需要客户的更多监督。 Kubernetes引擎正在发展 更快,并增加了更强大的自动化功能。
一个细微的区别是Flex使用容器作为达到目的的手段。 通常,Flex的用户可能会忽略正在使用容器 受雇,因为这是在幕后完成的。 Kubernetes 引擎-顾名思义-是基于容器的,并且 明确设计为可促进管理的工具 从容器构建的服务。有了Flex,服务永远是 一种类型的n容器。借助Kubernetes Engine,服务包括 m-pods和豆荚本身可能包含p容器。
- 将App Engine Flex部署迁移到GKE是可行的
- 在这种情况下(!),Flex的吞吐量比GKE高。
- 由于App Engine的快速性,出现了增加的速度
能够发出自动缩放事件信号; GKE迅速缩放豆荚
在现有节点集群中,但扩展速度稍慢 节点数。- App Engine和GKE共享基本的GCP资源,包括HTTP / S负载平衡器服务和托管基础架构组自动缩放。
- 对于相同的负载,使用相同的VM大小(1个vCPU和1GB RAM):App Engine Flex在6个实例VM(1个实例/ VM)上扩展为6个容器; GKE可在3个虚拟机(50%)上扩展到10个容器(1个容器/容器)。
答案 2 :(得分:2)
如果您希望24/7全天候运行应用程序,与App Engine相比,GKE还以较低的价格提供了更多的vCPU和RAM资源。如果您使用preemptible VMs(比普通VM便宜80%)运行应用程序,则可以进一步降低运行成本。在Kubernetes上,您的应用程序将在几秒钟的停机时间内重新启动。
GKE的另一个优点是,您可以在同一个集群中运行多个应用程序,而App Engine会对每个部署的应用程序收费。
PS:我在GKE群集上运行多个站点。在App Engine上执行此操作的费用比我目前支付的费用高出几倍。
答案 3 :(得分:0)
除了上面已经解释的内容之外,GKE 和 APP Engine Flexible 都不会缩放到零。但是 GKE 确实带有永久性磁盘和 TPU/GPU 访问权限,而这些功能在 APP Engine Flexible 中不可用。