kubernetes和GKE有什么区别?

sou*_*ics 8 containers amazon-ecs docker kubernetes google-kubernetes-engine

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

MrE*_*MrE 10

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

Kubernetes确实处理:

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

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

  • DNS(你不能没有它,甚至认为它是一个附加组件)
  • 度量标准监控:使用Influxdb,grafana
  • 仪表板

这些都不是开箱即用的,虽然它们很容易设置,但你需要维护它们.没有真正的"日志记录"附加组件,但是有很多项目可以做到这一点(使用Logspout,logstash,elasticsearch等...)

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

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

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

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

通过外部负载平衡,GKE也可以完成所有这些工作.(在AWS上,它类似,ALB负责Kubernetes中的负载平衡)