docker - Kubernetes 和 GKE 有什么区别?

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

我知道 GKE 是由底层的 kubernetes 驱动的。但我似乎仍然不明白 GKE 负责哪些部分,以及分层中的 k8s 负责哪些部分?在我看来,两者的主要目的是管理集群中的容器。基本上,我正在寻找一个更简单的例子来解释。

最佳答案

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

Kubernetes 确实处理:

  • 运行 Pod,在节点上调度它们,保证每个 Replication Controller 设置没有副本(即如果 Pod 失败则重新启动 Pod,如果节点失败则重新定位它们)
  • 服务:将流量代理到正确的 pod,无论它位于何处。
  • 工作

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

  • DNS(你不能没有它,即使它是一个附加组件)
  • 指标监控:使用 influxdb、grafana
  • 仪表板

这些都不是开箱即用的,尽管它们很容易设置,但您需要维护它们。 没有真正的“日志”插件,但有很多项目可以做到这一点(使用 Logspout、logstash、elasticsearch 等......)

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

GKE 为您提供所有这些开箱即用的组件,您无需维护它们。它们是为您设置的,并且与 Google 门户更“集成”。

每个人都需要一个重要的东西是 LoadBalancer 部分: - 由于 Pod 是临时容器,可以随时随地重新调度,它们不是静态的,因此需要单独管理入口流量。

这可以在 Kubernetes 中完成,方法是使用 DaemonSet 将 Pod 固定在特定节点上,并使用 hostPort 将该 Pod 绑定(bind)到节点的 IP。 显然这缺乏容错性,因此您可以使用多个并进行 DNS 循环负载平衡。

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

关于docker - Kubernetes 和 GKE 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37904711/

相关文章:

css - HTML5 和 Bootstrap 类 ="container",它可以应用于 body 还是只应用于 div?

javascript - 该行大于 Bootstrap 中的容器

ssl - 谷歌容器引擎中的 Kubernetes 负载均衡器 SSL 终止?

amazon-web-services - 无法在 kubernetes pod 中挂载只读卷(使用 AWS EKS 中的 EFS CSI 驱动程序)

sockets - 使用 golang docker 引擎创建容器时出错

docker - webdevops nginx-从网址中删除.php要求

linux - FileNotFoundError:[Errno 2]推送到heroku之后

windows - 如何在使用 Windows 主机时挂载 Docker 卷?

kubernetes - 控制容器的大小

asp.net - Docker 构建找不到 NETFramework 版本 5