【问题标题】:Istio Virtual Service is not working very wellIstio 虚拟服务运行不佳
【发布时间】:2021-09-21 06:33:22
【问题描述】:

我发现我的虚拟服务的重写功能不是很好。这是我的虚拟服务和 DestinationRule yaml 文件:

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: leads-http
  namespace: seldon
spec:
  gateways:
  - istio-system/seldon-gateway
  hosts:
  - '*'
  http:
  - match:
    - uri:
        prefix: /seldon/seldon/leads/
    rewrite:
      uri: /
    route:
    - destination:
        host: leads-leads
        port:
          number: 8000
        subset: leads
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: leads-leads
  namespace: seldon
spec:
  host: leads-leads
  subsets:
  - labels:
      version: leads
    name: leads
  trafficPolicy:
    connectionPool:
      http:
        idleTimeout: 60s

当我发送一个http请求时:

curl --location --request POST 'http://localhost/seldon/seldon/leads/v2/models/leads-lgb/versions/v0.1.0/infer'

我发现 istio-proxy 服务打印 404 not found in the logs:

"POST /seldon/seldon/leads/v2/models/leads-lgb/versions/v0.1.0/infer HTTP/1.1" 404

即使我期望:

POST /v2/models/leads-lgb/versions/v0.1.0/infer HTTP/1.1

我不确定发生了什么。有人有什么主意吗?谢谢!

【问题讨论】:

  • 很奇怪。你的重写规则似乎是正确的。过几天再仔细看看。有趣的故事
  • 同时..你能帮帮我吗? 1. 你的 istio 版本; 2.stackoverflow.com/a/63450007/9929015 中有 2 个 nginx pod 的工作示例。是否有可能部署这些清单并检查它是否对您有用?因为再次,你的规则对我来说看起来不错

标签: kubernetes cloud istio seldon


【解决方案1】:

我认为您的问题是错误配置DestinationRule 或服务名称连接。

DestinationRule:

这些规则指定负载平衡的配置、sidecar 中的连接池大小以及异常值检测设置,以从负载平衡池中检测和驱逐不健康的主机。

可以通过定义命名子集并覆盖在服务级别指定的设置来指定版本特定的策略。

注意:为子集指定的策略在路由规则明确向该子集发送流量之前不会生效。

DestinationRule-Subset:

在我看来,name 应该在结构中排在第一位。至少我还没有看到/遇到其他例子。 所以在你的情况下正确(至少我希望)DR是:

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: leads-leads
  namespace: seldon
spec:
  host: leads-leads
  subsets:
  - name: leads
    labels:
      version: leads

但是,如果这没有帮助 - 我鼓励您查看 this self-resolved question:

命名服务端口不也有同样的情况吗?我的意思是按照Explicit protocol selection,您应该在服务名称中添加后缀... name: <protocol>[-<suffix>]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2021-06-09
  • 2019-08-12
  • 2019-09-14
  • 1970-01-01
  • 2020-07-04
相关资源
最近更新 更多