在KVM Vagrant虚拟机(Ubuntu 20.04)中,我使用Knative和Istio设置了Kubernetes集群。目的是将功能部署到VM内的集群中,以便能够从我的主机调用它们(PopOs 22.04)。负载均衡器有一个外部IP: 192.168.1.240
kubectl get all --namespace=istio-system
NAME READY STATUS RESTARTS AGE
pod/cluster-local-gateway-6f45b9848f-pplbm 1/1 Running 0 38m
pod/istio-ingressgateway-865c54f859-8rqht 1/1 Running 0 38m
pod/istiod-597bf9bb5d-7wdxp 1/1 Running 0 39m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/cluster-local-gateway ClusterIP 10.103.42.182 <none> 15020/TCP,80/TCP,443/TCP 38m
service/istio-ingressgateway LoadBalancer 10.107.66.244 192.168.1.240 15021:32621/TCP,80:31238/TCP,443:30360/TCP,15012:32532/TCP,15443:32017/TCP 38m
service/istiod ClusterIP 10.100.95.76 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 39m
service/knative-local-gateway ClusterIP 10.111.64.124 <none> 80/TCP 37m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cluster-local-gateway 1/1 1 1 38m
deployment.apps/istio-ingressgateway 1/1 1 1 38m
deployment.apps/istiod 1/1 1 1 39m
NAME DESIRED CURRENT READY AGE
replicaset.apps/cluster-local-gateway-6f45b9848f 1 1 1 38m
replicaset.apps/istio-ingressgateway-865c54f859 1 1 1 38m
replicaset.apps/istiod-597bf9bb5d 1 1 1 39m
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
horizontalpodautoscaler.autoscaling/cluster-local-gateway Deployment/cluster-local-gateway <unknown>/80% 1 5 1 38m
horizontalpodautoscaler.autoscaling/istio-ingressgateway Deployment/istio-ingressgateway <unknown>/80% 1 5 1 38m
horizontalpodautoscaler.autoscaling/istiod Deployment/istiod <unknown>/80% 1 5 1 39m
当我从VM内部执行对已部署函数的函数调用时,调用执行成功,但当我试图从主机执行调用时,调用不执行。
是否有办法使Istio负载均衡器对我的主机可见/可访问?
如果您在Vagrant VM中运行Kubernetes,那么您需要考虑一下主机(Linux)上的网络路由是什么样子的。你可能想要从你的Linux机器路由一些ip到Vagrant VM,然后在VM中安装或使用类似MetalLB的东西来允许VM ("guest")将这些额外的ip路由到你的Kubernetes pod。