我知道GKE是由下面的kubernetes驱动的。但我似乎还没有得到GKE照顾的部分和分层中的k8s是什么?在我看来,两者的主要目的是管理集群中的容器。基本上,我正在寻找一个更简单的解释与一个例子。
答案 0 :(得分:9)
简而言之,GKE是一个托管/托管的Kubernetes(即它是为您管理的,因此您可以集中精力运行您的pod /容器应用程序)
Kubernetes确实处理:
此外,Kubernetes还有几个“附加组件”,其中一些是GKE的一部分:
这些都不是开箱即用的,虽然它们很容易设置,但你需要维护它们。 没有真正的“日志记录”附加组件,但有各种项目可以执行此操作(使用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命令。
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)的托管实现。