我已经在VMware vSphere私有云上部署了Kubernetes集群。
规格:
当我简单地添加部署:
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运行良好,我可以从节点访问它。
发布于 2022-01-22 09:04:56
解决方案是:您的虚拟机和服务必须位于不同的子网中。在我的例子中,我拥有192.168.50.0/24网络,并将其划分为两个子网( 192.168.50.0/25 )-用于虚拟机,192.168.50.128/25用于MetalLB服务。
https://stackoverflow.com/questions/70808828
复制相似问题