1

我正在尝试从nginxIngress 切换到 usingIstio以利用路由权重进行金丝雀部署和集成监控等。

我的常规路由定义为:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: solar-demo
  annotations:
    nginx.org/server-snippet: "proxy_ssl_verify off;"
spec:
  rules:
  - host: shmukler.example.com
    http:
      paths:
      - path: /city/*
        backend:
          serviceName: solar-demo
          servicePort: 3000
      - path: /solar/*
        backend:
          serviceName: solar-demo
          servicePort: 3001
--
kind: Service
apiVersion: v1
metadata:
  name: solar-demo
spec:
  ports:
  - name: city
    protocol: TCP
    port: 3000
    targetPort: 3000
  - name: solar
    protocol: TCP
    port: 3001
    targetPort: 3001
  selector:
    app: solar-demo

我什至不需要auth,现在。当我开始时install/kubernetes/istio-demo.yaml,它在命名空间中创建了一堆 pod 和服务istio-system

我想,可能是错误的,我需要VirtualService定义一个可能的路由规则。写道:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: solar-demo
spec:
  hosts:
    - shmukler.example.com
  http:
  - route:
    - destination:
        host: shmukler.example.com
        subset: blue
      weight: 90
    - destination:
        host: shmukler.example.com
        subset: green
      weight: 10

端口是否在常规服务中定义,而权重和路径在VirtualService? 我需要将任何东西粘贴到istio-system名称空间中吗?有没有可能,我需要扩展istio-demo.yaml什么来做路由,我需要,只是为了让事情顺利进行?

任何指针表示赞赏。

4

1 回答 1

2

你需要一个网关和一个虚拟服务。

查看此任务以获取示例。

于 2018-08-15T22:51:13.440 回答