首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能从K8s节点(MetalLB Layer2)访问的服务

不能从K8s节点(MetalLB Layer2)访问的服务
EN

Stack Overflow用户
提问于 2022-01-21 23:53:03
回答 1查看 238关注 0票数 0

我已经在VMware vSphere私有云上部署了Kubernetes集群。

规格:

  • 操作系统:Ubuntu20.04.3 云图 (也尝试18.04和21.04)
  • Kubernetes: 1.23.1 (也尝试1.21.8) -使用kubeadm和kube代理(采用strictARP和ipv模式)
  • 码头工人20.10.12
  • MetalLB v0.11.0 (第2层模式)
  • 纤毛1.11.1
  • 192.168.50.0/24子网中的所有节点

当我简单地添加部署:

kubectl create deployment nginx --image k8s.gcr.io/nginx:latest

并暴露出来:

kubectl expose deployment nginx --type=LoadBalancer --port=80

一切看起来都很好。服务从ExternalIP池获得MetalLB:

nginx LoadBalancer 10.96.56.118 198.168.50.152 80:32325/TCP 4s

在kube 0接口上发布的新ip地址:

kube 0:< NOARP> mtu 1500 qdisc noop状态下组默认 ..。 inet 198.168.50.152/32范围全球kube-ipvs0 0 valid_lft永远preferred_lft永远 ..。

但是,我无法从所有K8s节点访问ExternalIP,也无法从其他局域网访问服务,curl返回:

curl: (7) Failed to connect to 192.168.50.152 port 80: No route to host

ClusterIP运行良好,我可以从节点访问它。

EN

回答 1

Stack Overflow用户

发布于 2022-01-22 09:04:56

解决方案是:您的虚拟机和服务必须位于不同的子网中。在我的例子中,我拥有192.168.50.0/24网络,并将其划分为两个子网( 192.168.50.0/25 )-用于虚拟机,192.168.50.128/25用于MetalLB服务。

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

https://stackoverflow.com/questions/70808828

复制
相关文章

相似问题

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