如何从主机访问在VM中运行的Istio负载均衡器



在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。

最新更新