如何从mac访问Istio入口网关



我用Docker Desktop for Mac启动了一个kubernetes集群,然后在集群上安装Istio,并按照向外部流量开放应用程序中的步骤创建Istio入口网关。现在,我有:

(base) ~/istio/istio-1.16.1 $ kubectl get svc -A
NAMESPACE      NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                                                                      AGE
default        details                ClusterIP      10.105.143.37    <none>        9080/TCP                                                                     5h5m
default        kubernetes             ClusterIP      10.96.0.1        <none>        443/TCP                                                                      6h16m
default        productpage            ClusterIP      10.106.2.22      <none>        9080/TCP                                                                     5h5m
default        ratings                ClusterIP      10.111.217.64    <none>        9080/TCP                                                                     5h5m
default        reviews                ClusterIP      10.104.251.134   <none>        9080/TCP                                                                     5h5m
istio-system   istio-egressgateway    ClusterIP      10.99.102.205    <none>        80/TCP,443/TCP                                                               6h15m
istio-system   istio-ingressgateway   LoadBalancer   10.108.135.209   localhost     15021:32723/TCP,80:32335/TCP,443:32040/TCP,31400:30864/TCP,15443:31429/TCP   6h15m
istio-system   istiod                 ClusterIP      10.101.35.195    <none>        15010/TCP,15012/TCP,443/TCP,15014/TCP                                        6h15m
kube-system    kube-dns               ClusterIP      10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP                                                       6h16m

根据Istio文档,对于Docker Desktop,入口网关主机设置为127.0.0.1。

$ export INGRESS_HOST=127.0.0.1

在这一点上,我不能访问127.0.0.1:80/productpage,也不能从我的Mac访问127.0.0.1:32335/productpage。但是根据istio文档,我应该能够访问该页。

我知道Docker for Desktop for Mac会设置一个linuxkit虚拟机,并在这个虚拟机上部署kubernetes。这个虚拟机有一个内部ip 192.168.65.4,我无法从我的mac主机到达。所以上面kubectl get svc命令中的localhost应该是指linuxkit VM,而不是我的mac主机。那么如何从我的mac主机访问linuxkit VM上的nodeport 32335 ?

您需要使用端口转发从Mac访问Istio入口网关。首先,找到Istio入口网关正在侦听的端口。

获得端口号后,运行以下命令将其转发到本地机器:

kubectl port-forward -n istio-system svc/istio-ingressgateway <PORT_NUMBER>

相关内容

  • 没有找到相关文章

最新更新