我正在尝试从nginx
Ingress 切换到 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
什么来做路由,我需要,只是为了让事情顺利进行?
任何指针表示赞赏。