Я пытаюсь переключиться с nginx Ingress на использование 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.
Я предположил, возможно, неправильно, что мне нужно иметь 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, чтобы выполнить маршрутизацию, мне нужно, чтобы все было в порядке?
Любые указатели оцениваются.