我正在尝试从nginx
入口切换到使用Istio
来利用金丝雀部署的路由权重,以及集成监控等。
我的常规路由被定义为:
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
时,它在istio-system
名称空间中创建了一堆pod和服务。
我认为我需要定义一个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
来完成路由,仅仅是为了让事情开始呢?
感谢任何人的指点。
发布于 2018-08-16 06:51:13
您需要一个网关和一个VirtualService。
有关示例,请查看this task。
https://stackoverflow.com/questions/51820552
复制相似问题