将流量可靠地路由到裸机kubernetes集群

时间:2020-09-20 19:41:37

标签: kubernetes k3s

我已经在家中启动了自己的kubernetes集群以学习kubernetes,并且在尝试公开自己的Web服务时一直陷入困境。 我已经用k3s引导了集群,并且一切运行良好,但是我无法弄清楚如何可靠地公开我的Web服务。 我已经安装了traefik 2.2作为入口控制器,并且它通过负载均衡器服务公开(我使用k3s中的lb)。

我有一个A记录,该记录指向一个群集节点的全局IP,并且已经将要公开的端口转发给了该节点。

我认为我没有以正确的方式将流量路由到我的负载均衡器。将流量路由到我的一个节点上的负载均衡器服务可行,但是如果出于某种原因需要重新引导群集,则负载均衡器可能会终止在另一个节点上,并且必须更改目标IP进行端口转发。设置负载均衡器服务的externalIP字段没有任何效果。

如何可靠地将流量路由到群集中?我觉得我对设置的某些部分有误解,如果有人能指出正确的方向,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

通常,您想使用ServiceType: LoadBalancer

使用云提供商的负载平衡器在外部公开服务。 NodePortClusterIP服务,外部负载 平衡器路线是自动创建的。

但是,由于Kubernetes并未为裸机环境提供负载平衡解决方案,因此很难在裸机集群中公开该服务。

您可以尝试的解决方案是MetalLB

MetalLB是用于裸机Kubernetes的负载均衡器实现 集群,使用标准路由协议。

Kubernetes不提供网络负载平衡器的实现 (类型为LoadBalancer的服务)用于裸机集群。的 Kubernetes附带的Network LB的实现都是 调用各种IaaS平台(GCP,AWS,Azure等)的粘合代码。 如果您未在受支持的IaaS平台(GCP,AWS,Azure等)上运行, 在以下情况下,LoadBalancers将无限期保持“待定”状态 已创建。

您可以在链接的文档中找到有关安装,配置和使用的必要详细信息。有了它,您应该可以轻松设置负载平衡。

相关问题