簡體   English   中英

Istio 虛擬服務運行不佳

[英]Istio Virtual Service is not working very well

我發現我的虛擬服務的重寫功能不能很好地工作。 這是我的虛擬服務和 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:

"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

我不確定發生了什么。 有人有什么主意嗎? 謝謝!

我認為您的問題是錯誤配置DestinationRule或服務名稱 conintion。

目的地規則

這些規則指定負載平衡的配置、來自 sidecar 的連接池大小和異常檢測設置,以檢測和從負載平衡池中驅逐不健康的主機。

可以通過定義命名子集並覆蓋在服務級別指定的設置來指定特定於版本的策略。

注意:在路由規則明確將流量發送到該子集之前,為子集指定的策略不會生效。

目的地規則子集

在此處輸入圖片說明

在我看來, 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

但是,如果這無濟於事 - 我鼓勵您檢查這個自行解決的問題

命名服務端口沒有相同的情況嗎? 我的意思是根據顯式協議選擇,您應該在服務名稱中添加后綴... name: <protocol>[-<suffix>]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM