kubernetes和GKE有什么区别?

时间:2016-06-19 06:54:38

标签: docker containers kubernetes google-kubernetes-engine amazon-ecs

我知道GKE是由下面的kubernetes驱动的。但我似乎还没有得到GKE照顾的部分和分层中的k8s是什么?在我看来,两者的主要目的是管理集群中的容器。基本上,我正在寻找一个更简单的解释与一个例子。

3 个答案:

答案 0 :(得分:9)

简而言之,GKE是一个托管/托管的Kubernetes(即它是为您管理的,因此您可以集中精力运行您的pod /容器应用程序)

Kubernetes确实处理:

  • 运行pods,在节点上安排它们,保证每个Replication Controller设置的副本数量(如果它们失败则重新启动pod,如果节点失败则重新定位它们)
  • 服务:将流量代理到任何位置的右侧pod。
  • 工作

此外,Kubernetes还有几个“附加组件”,其中一些是GKE的一部分:

  • DNS(你不能没有它,甚至认为它是一个附加组件)
  • 指标监控:使用Influxdb,grafana
  • 控制台

这些都不是开箱即用的,虽然它们很容易设置,但你需要维护它们。 没有真正的“日志记录”附加组件,但有各种项目可以执行此操作(使用Logspout,logstash,elasticsearch等...)

简而言之,Kubernetes负责编排,其余的服务将在Kubernetes之上运行。

GKE为您提供开箱即用的所有这些组件,您无需维护它们。它们是为您设置的,它们与Google门户网站更加“整合”。

每个人都需要的一件重要事情是LoadBalancer部分: - 由于Pod是短暂的容器,可以在任何地方随时重新安排,它们不是静态的,因此需要单独管理入口流量。

这可以在Kubernetes中通过使用DaemonSet修复特定节点上的Pod来完成,并使用hostPort将该Pod绑定到节点的IP。 显然这缺乏容错能力,因此您可以使用多个并进行DNS循环负载平衡。

GKE通过外部负载平衡来处理所有这些问题。 (在AWS上,它类似,ALB负责Kubernetes中的负载平衡)

答案 1 :(得分:2)

GKE (Google Container Engine)只是容器平台,Kubernetes可以管理。它不像kubernetes那样有“差异”。

如“Docker and Kubernetes and AppC ”所述(2015年5月,可以改变):

  

Docker目前是我们商业容器产品GKE(Google容器引擎)和GAE(Google App Engine)中唯一支持的平台即服务产品。

您可以在此示例中看到GKE上使用的Kubernetes:来自Spinning Up Your First Kubernetes Cluster on GKE的“Rimantas Mocevicius”。

gcloud API仍会在场景后面发出kubernetes命令。

https://deis.com/images/blog-images/first-kubernetes-cluster-gke-9.png

GKE将通过Kubernetes master

组织其平台
  

每个容器集群都有一个主端点,由Container Engine管理   主服务器提供了一个统一的集群视图,通过其可公开访问的端点,是与集群交互的门户。

     

托管主服务器还运行Kubernetes API服务器,该服务器为REST请求提供服务,在工作节点上安排pod创建和删除,并将pod信息(例如开放端口和位置)与服务信息同步。

答案 2 :(得分:0)

简而言之,在不涉及技术细节的情况下, GKE是托管的Kubernetes,类似于Google的Cloud Composer托管Apache Airflow和Cloud Dataflow托管Apache Beam的方式。

因此,某些Google Cloud Platform服务(GKE,Cloud Composer,Cloud Dataflow)是各种开源技术(Kubernetes,Airflow,Beam)的托管实现。