无法使用 MetalLB 访问集群外部的 LoadBalancer

无法使用 MetalLB 访问集群外部的 LoadBalancer

我正在使用 Kubespray 和 MetalLB。我设法使用 LoadBalancer 创建了一项服务。问题是,外部 IP 只能由任一 VM 节点访问。

仅供参考,VM 节点为:10.214.47.21、10.214.47.22 和 10.214.47.23(均充当工作节点和控制器)。

LB 生成的负载均衡器外部 IP 为 10.214.47.1。同级虚拟机(相同的 10.214.47/24,但不是集群虚拟机)可以 ping 通它,但无法使用 curl 访问服务。确切的 curl 仅在 3 个集群虚拟机中的一个内有效。集群和同级虚拟机的防火墙均已关闭/失效。

这是我在 Kubespray 设置期间的配置,具体针对 MetalLB:

插件.yml:

+metallb_enabled: true
+metallb_speaker_enabled: false
+metallb_protocol: "layer2"
+metallb_config:
+   controller:
+     nodeselector:
+       kubernetes.io/os: "linux"
+     tolerations:
+       - key: "node-role.kubernetes.io/control-plane"
+         operator: "Equal"
+         value: ""
+         effect: "NoSchedule"
+   address_pools:
+     primary:
+       ip_range:
+         - 10.214.47.0/24
+       auto_assign: true
+       avoid_buggy_ips: true # When set to true, .0 and .255 

k8s-net-calico.yml:

+calico_advertise_service_loadbalancer_ips: "{{ metallb_config.address_pools.primary.ip_range }}"

我在这里做错了什么?

相关内容