Istio 目标规则子集不起作用

2024-04-13

我的 istio 目标规则不起作用,在 kiali 中出现以下错误

enter image description here VirtualService and destination rule for echo service:

我的召唤echo-svc:8080 and echo-svc:8080/v1从我的另一个虚拟服务,我无法在特定版本中进行路由。

从另一个虚拟服务发出请求时:echo-svc:8080/v1 or echo-svc:8080,我收到了两个子集的响应。

---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: echo-vsvc
spec:
  hosts:
  - "echo-svc.default.svc.cluster.local"
  http:
  - match:
    - uri:
        prefix: "/v1"
    route:
    - destination:
        host: echo-svc.default.svc.cluster.local
        subset: v1
  - route:
    - destination:
        host: echo-svc.default.svc.cluster.local
        subset: v2
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: echo-destination
spec:
  host: echo-svc.default.svc.cluster.local
  subsets:
  - name: v1
    labels:
      version: v0.1
  - name: v2
    labels:
      version: v0.2

如果我将回显服务附加到网关,然后向v1通过 istio-ingress 端点,我的所有请求都路由到所需的 k8s 服务,但如果它是内部的(echo 服务未附加到网关),特使不会将请求路由到所需的 k8s 服务。

Update:

 $ > k get pods --show-labels
NAME                              READY   STATUS    RESTARTS   AGE     LABELS
echo-deploy-v1-bdf758994-8f54b    2/2     Running   0          2m56s   app=echo-app,pod-template-hash=bdf758994,version=v0.1
echo-deploy-v2-68bb64684d-9gg2r   2/2     Running   0          2m51s   app=echo-app,pod-template-hash=68bb64684d,version=v0.2
frontend-v2-569c89dbd8-wfnc4      2/2     Running   2          12h     app=frontend,pod-template-hash=569c89dbd8,version=v2

发现我的错误,要使 istio 目标规则发挥作用,请务必小心这些:https://istio.io/docs/setup/kubernetes/spec-requirements/ https://istio.io/docs/setup/kubernetes/spec-requirements/.

我的错误是命名端口为了服务。将其从“web”更新为“http-web”对我有用。它的形式应该是:<protocol>[-<suffix>]

---
apiVersion: v1
kind: Service
metadata:
  name: echo-svc
  labels:
    app: echo-app
spec:
  ports:
  - port: 80
    targetPort: 8080
    name: http-web
  selector:
    app: echo-app
---
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Istio 目标规则子集不起作用 的相关文章

随机推荐