Istio路由端口规范

时间:2018-08-13 10:46:46

标签: kubernetes minikube kubernetes-ingress istio envoyproxy

我正在尝试从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来进行路由,只是为了使事情滚动?

任何指针都值得赞赏。

1 个答案:

答案 0 :(得分:2)

您需要网关和VirtualService。

this task为例。