【问题标题】:unable to access the service via virtual service in Istio无法通过 Istio 中的虚拟服务访问服务
【发布时间】:2019-02-02 22:14:37
【问题描述】:

我是 istio 的新手,我的整个代码都在 http://github.com/VenkateshSrini/IstioTest 中。我已经创建了托管 Kubernetes 服务所需的服务(回购中的istio-test-deployment.yaml)。我在 docker desktop for windows(启用了 Kubernetes)上对其进行了测试,我得到了同样的工作正常。我通过端口5000 暴露了我的服务。在 docker for windows 中,外部 IP 始终是 localhost。

现在我使用 istoctl 创建了一个已创建的边车部署。这可以从istio-test-dep-injected.yaml 看出。我执行了这个,服务是用 Sidecar 创建的。现在无法通过http://localHost:5000 访问相同的服务,我认为这是正确的

然后我继续创建虚拟网关。相同的定义可以在 virtual-gateway.yaml 中看到。然后我根据 virtualservice.yaml 创建了一个虚拟服务。其中我提供了主机和 Kubernetes 服务名称的名称以及端口为 5000。

即便如此,我还是无法使用 URL http://localHost/api/version 访问服务

有人可以帮助我吗,因为我在使用 Istio 和 Docker for Windows 时找不到太多帮助

【问题讨论】:

标签: kubernetes istio docker-for-windows docker-desktop


【解决方案1】:

您似乎忘记添加匹配规则了。尝试添加match字段

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: istio-test-virtualservice
spec:
  gateways:
  - istio-test-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: istio-test
        port:
          number: 5000

【讨论】:

  • 还是不行。我尝试使用 localhost:31380/api/version 访问该服务,然后尝试 localhost:5000/api/version ,然后尝试 localhost/api/version 但仍然无法正常工作。我什至尝试将主机作为 istio-test.istio-apps.svc.local 甚至 localhost 也不起作用。卡住了
  • 另外,我在 pod 日志中看到了来自服务器的错误(BadRequest):必须为 pod istio-test-5744c6c67d-f676h 指定容器名称,请选择以下之一:[istio-test istio-proxy]或其中一个初始化容器:[istio-init]
  • 我也向 Istio 团队提出了这个问题@github.com/istio/istio/issues/10568,但我也没有得到任何回应
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 2020-03-08
  • 2021-12-12
  • 2021-06-09
  • 2016-08-13
  • 2021-11-22
  • 1970-01-01
  • 2019-07-06
相关资源
最近更新 更多