首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有Kubernetes的MetalLB,不能连接VIP或端口

带有Kubernetes的MetalLB,不能连接VIP或端口
EN

Stack Overflow用户
提问于 2019-09-18 05:26:06
回答 1查看 1.6K关注 0票数 4

使用MetalLB负载均衡器时无法连接到Kubernetes部署(App)。尝试配置浮动IP,以便当一个节点失败并且工作负载跨时,我仍然知道在具有新地址的新节点上IP是什么。

已部署:

  1. Raspbian on 4x Raspberry Pi 4s
  2. 启用以太网端口
  3. Docker+ Kubernetes
  4. CNI - Weave (set NO_MASQ_LOCAL = 1)上的混杂模式。我还将此设置为Flannel,其结果与image
  5. MetalLB的
  6. NGINX码头Layer2相同(节点网络为192.168.0.0/24,MetalLB的YAML有一个分配给VIP 192.168.0.240/28)

的小子网)。

经核实:

  1. 部署(NGINX)工作在CNI上(10.44.0.1:80)。使用curl从节点托管container.
  2. Deployment (NGINX)到容器IP验证,使用节点IP (192.168.0.102)在Nodeport上工作。从膝上型计算机到节点的curl验证。

部署.yaml

metallb.yaml

代码语言:javascript
复制
 `apiVersion: v1     kind: ConfigMap     metadata:         namespace: metallb-system         name: config     data:         config: |             address-pools:                 - name: my-ip-space                   protocol: layer2                   addresses:                       - 192.168.0.240/28` 

nginx.yaml apiVersion: apps/v1beta2 kind: Deployment metadata: name: nginx spec: selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1 ports: - name: http containerPort: 80

nginx服务-lb.yaml apiVersion: v1 kind: Service metadata: name: nginx labels: app: nginx spec: selector: app: nginx type: LoadBalancer ports: - port: 80 name: http protocol: TCP targetPort: 80

结果

我认为是可行的:

  1. ARP从我认为正在工作的笔记本电脑向贵宾请求,出现承载容器的节点的MAC地址。

不管用:

  1. 部署负载均衡器,它分配一个VIP 192.168.0.240和端口X,但是当我试图从工作节点或我的笔记本电脑连接到它时,没有成功。我的笔记本电脑IP在同一个网络里。此VIP所在的节点也无法执行curl请求。
  2. i尝试将负载平衡子网与部署一起作为节点的/32,以查看它是IP问题还是ARP问题。在这样做时,我能够验证MetalLB分配的端口是否打开,但没有响应。这是用我的笔记本电脑做的。

膝上型电脑的结果

  1. ~用户$ curl 192.168.0.102:31854
    • curl:(7)未能连接到192.168.0.102端口31854: Connection

来自笔记本电脑.102的ARP请求是节点,.240是MetalLB分配的VIP。

ethernet上的

  1. ~用户$ arp 192.168.0.102
    • ?(192.168.0.102) dc:a6:32:b:fc:d

ethernet上的

  1. ~用户$ arp 192.168.0.240
    • ?(192.168.0.240) dc:a6:32:b:fc:d

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 18:46:01

我们遇到了一个完全相同的问题,我们追溯到Windows网络桥接MetalLB网络与另一个网络(我们的办公室无线)。

还有其他可能以类似方式出现的问题(例如防火墙配置),因此要验证桥接网络是否导致了这些问题,请运行

代码语言:javascript
复制
arping -I <interface> <target ip>

其中,<interface>是MetalLB网络上的一个接口路由(在您的例子中是en0),而<target ip>是Kubernetes服务的外部IP (在您的示例中是192.168.0.240)。如果桥导致了问题,您将看到与两个不同的MAC地址相关联的IP (或更多,取决于桥接器的特性)。

一旦MetalLB分配了IP地址,即使在重新部署服务或部署新服务时,连接网络似乎也是有效的。

如果存在桥,并且必须对其进行维护,请考虑在BGP模式下配置MetalLB。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57985614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档