2

通过 GKE 进入 kubernetes,目前通过 kubeadm 在裸机上进行尝试。

在后面的环境中,不需要任何特定的负载均衡器;使用 nginx-ingress 和 ingresses 可以为 www 提供服务。

相反,在 gke 上,使用相同的 nginx-ingress,或使用 gke 提供的 l7,您总是会得到一个计费负载均衡器。

这是什么原因,因为它似乎最终不需要?

4

2 回答 2

3

(在上面转发我的评论)

一般而言,当一个人从外部世界接收流量时,该流量将被发送到一个或多个非 ACLd 公共 IP 地址。

如果你在裸机上运行 k8s,这些 BM 可以有公共 IP,你可以只在其中一个或多个上运行 ingress。

但是,出于安全原因,托管的 k8s 环境不允许节点拥有公共 IP。

相反,托管负载均衡器可以拥有公共 IP。这些配置为知道托管集群入口的私有节点 IP,并将相应地引导流量。

于 2018-02-14T23:27:34.557 回答
0

Kubernetes 服务有几种类型,每一种都建立在前一种之上:ClusterIP、NodePort 和 LoadBalancer。只有最后一个会在云环境中配置 LoadBalancer,因此您可以在 GKE 上避免它而无需模糊。问题是,然后呢?因为,在最好的情况下,你最终会得到一个入口(我假设我们在你的问题中公开入口),它在易失性 IP 上可用(节点可以随时滚动,新节点将获得新 IP)和高端口由节点端口服务。这意味着您不仅没有固定的 IP 可以使用,而且您还需要打开 http://:31978 之类的东西,这显然是垃圾。因此,在云中,您有一个简单的解决方案,即在其前面放置一个具有 LoadBalancer 服务类型的云负载均衡器。此 LB 将摄取端口 80/443 上的流量并将其转发到正确的后备服务/pod。

于 2018-02-15T00:37:29.013 回答