kubernetes 如何从mac访问Istio入口网关

8xiog9wr  于 2022-12-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(150)

我使用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

此时,我无法从Mac访问127.0.0.1:80/productpage,也无法访问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虚拟机,而不是Mac主机。那么,如何从Mac主机访问linuxkit虚拟机上的nodeport 32335呢?

hzbexzde

hzbexzde1#

您需要使用端口转发从Mac访问Istio入口网关。首先,找到Istio入口网关正在侦听的端口。
获得端口号后,运行以下命令将其转发到本地计算机:

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

相关问题