当前位置: 首页 > 知识库问答 >
问题:

wsl2 docker桌面上的Istio入口网关

沙靖琪
2023-03-14

我正在尝试在本地使用wsl2和docker desk运行bookinfo示例。由于连接被拒绝,我试图通过网关访问productpage服务时遇到问题。我不确定我是否错过了什么。以下是我在网上搜索了很多次后所做的事情

  1. 部署了bookinfo示例中的所有服务,并且所有服务都处于运行状态,我可以使用kubectl exec从其他服务中创建productpage
  2. 使用示例中的文件部署bookinfo网关,默认名称空间下没有任何更改
Name:         bookinfo-gateway
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  networking.istio.io/v1beta1
Kind:         Gateway
Metadata:
  Creation Timestamp:  2021-06-06T20:47:18Z
  Generation:          1
  Managed Fields:
    API Version:  networking.istio.io/v1alpha3
    Fields Type:  FieldsV1
    fieldsV1:
      f:metadata:
        f:annotations:
          .:
          f:kubectl.kubernetes.io/last-applied-configuration:
      f:spec:
        .:
        f:selector:
          .:
          f:istio:
        f:servers:
    Manager:         kubectl-client-side-apply
    Operation:       Update
    Time:            2021-06-06T20:47:18Z
  Resource Version:  2053564
  Self Link:         /apis/networking.istio.io/v1beta1/namespaces/default/gateways/bookinfo-gateway
  UID:               aa390a1d-2e34-4599-a1ec-50ad7aa9bdc6
Spec:
  Selector:
    Istio:  ingressgateway
  Servers:
    Hosts:
      *
    Port:
      Name:      http
      Number:    80
      Protocol:  HTTP
Events:          <none>

在确定指令中的入口IP和端口部分之后。

我INGRESS_HOST=127.0.0.1INGRESS_PORT80

*   Trying 127.0.0.1:80...
* TCP_NODELAY set
* connect to 127.0.0.1 port 80 failed: Connection refused
* Failed to connect to 127.0.0.1 port 80: Connection refused
* Closing connection 0

试试这个http://127.0.0.1/productpage在浏览器上,返回404。这404是否意味着网关已启动,但虚拟服务无法运行??

进一步询问是否相关。我现在有点困惑wsl2是如何工作的。看起来windows浏览器上的localhost和wsl2终端不是一回事,尽管我知道有一种从windows到wsl2服务器的转发(我可以从/etc/resolv.conf获取其IP)。如果是相同的,为什么一个返回连接被拒绝,而另一个返回404

在windows上,我试图禁用IIS或在端口80(net stop http)上运行的任何东西。不知怎么的,我仍然可以看到一些东西,听80端口

netstat -aon | findstr :80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4


tasklist /svc /FI "PID eq 4"

Image Name                     PID Services
========================= ======== ============================================
System                           4 N/A

我想知道这是否是导致第7点差异的原因?当windows在端口80上的另一台超文本传输协议服务器上运行时?

我知道这被问了很多问题。我相信我们中许多对istio和wsl2不熟悉的人可能有类似的问题。希望这也能帮助其他人。请指教。

共有2个答案

法风畔
2023-03-14

我设法让这个工作:这就是我所做的。Shell进入发行版(我的是Ubuntu 20.04 LTS)

运行:

    sudo apt-get -y install socat
    sudo apt update
    sudo apt upgrade
    exit

上面将添加soc at(我在查看istio日志时出错-连接拒绝),并将发行版更新为最新更新(并升级它们)

现在,您必须运行一个端口转发,才能承载localhost:以点击istio网关:

    kubectl port-forward svc/istio-ingressgateway 8080:80 -n istio-system

如果您已经在使用8080,只需从命令中删除它,只需使用: 80,端口转发将选择一个空闲端口。

现在去

    http://localhost:8080/productpage

你应该点击页面,端口向前输出

    Handling connection for 8080

希望这能帮助。。。好的是,现在我不必使用Hyper-V或其他群集安装程序,比如minikube/microk8s,也不用使用docker desktop中的内置kubernetes,还有。。。我的笔记本电脑似乎也没有因为我正在做的事情而负荷过重。

督阿苏
2023-03-14

WSL2本身似乎存在问题,可能与运行在WSL2中的本地站点有关,这些站点在浏览器#5298中无法访问。

你可以通过发布

ip addr show

在WSL发行版中,将127.0.0.1/localhost替换为eth0地址。在我的例子中,它是172.21.29.254——所以URL是http://172.21.29.254/productpage

这种变通方法对我很有效。

 类似资料:
  • 我有一个在kubernetes pod中运行的应用程序(在我的本地docker桌面上,启用kubernetes),监听端口8080。然后我有以下kubernetes配置 这个很好用。但我想把443端口改成其他端口,比如8443(因为我将有多个网关)。当我有这个,我不能再访问应用程序了。是否有一些配置我遗漏了?我猜我需要配置Istio来接受8443端口?我使用以下命令安装了istio: 编辑:我读了

  • 我试图在安装服务网格、网关和应用路由策略后,在我的Istio入口网关上启用HTTPS。最初的Istio安装是使用一个配置文件完成的,该配置文件包括一个istio-ingress网关服务。当我这样做时,它将入口网关创建为,而不是。 我看了这个:https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/但是

  • 这起作用了 这不是

  • 我正在努力遵循istio网关和虚拟服务指南,网址是——https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/#determining-入口ip和端口 我可以看到这些资源(网关) 我正在看istio代理日志,在k日志http://pod-c istio代理-n my-bookinfo,并没有看到太多。我试图找出我

  • 我很难理解Istio网关端口到底是如何使用的。我指的是下面例子中的第14行 从Istio文档中: 代理应在其上侦听传入连接的端口。因此,如果您应用上面的yaml文件并检查istio-ingress网关pod以监听TCP端口,您会发现实际上使用了端口8169(见下面的输出) 但棘手的部分来了。如果在应用Gateway之前更改istio-ingress网关服务如下: 然后应用网关,实际使用的端口不是8

  • 从外部客户端到库伯内特斯集群内的服务器的TLS握手失败。这是关于理解为什么。 我已经配置了一个Istio入口网关,以通过端口15433上接收的TLS,并将其路由到端口433上的服务器。 当客户端尝试TLS握手时,入口网关日志显示活动,但不显示服务器日志,也不显示istio代理日志。 TLS客户端: 日志 Istio入口网关日志: 其中192.168.101.136是myservice pod的IP