将所有流量从isto-ingressgateway重定向/转发到先前的kubernetes入口

时间:2019-05-09 19:02:59

标签: google-kubernetes-engine kubernetes-ingress istio

我的Kubernetes项目(在GKE上部署)一直在使用Ingress(我将其命名为demo-ingress)来处理外部HTTP流量,并根据URL路径将流量转发到每个服务(/ node-a,/ node-b) ,/ node-c)

http:// External IP / node-a /使用 node-a-service

进行 node-a 部署

http:// External IP / node-b /使用 node-b-service

进行 node-b 部署

http:// External IP / node-c /使用 node-c-service

进行 node-c 部署
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: demo-ingress
spec:
  rules:
    - http:
        paths:
          - path: /node-a/*
            backend:
              serviceName: node-a-service
              servicePort: 80
          - path: /node-b/*
            backend:
              serviceName: node-b-service
              servicePort: 80
          - path: /node-c/*
            backend:
              serviceName: node-c-service
              servicePort: 80

在此项目上安装Istio-GKE附加组件后,我找不到从istio-ingressgateway重定向或转发流量到我当前的demo-ingress的方法(如上所示)。根据我的阅读,我必须配置一个新的网关来处理到istio: ingressgateway的流量,并且已经完成了

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
    name: backend-gateway
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
      - "*"

此外,我使用此网关的虚拟服务如下所示。我尝试将所有流量转发到demo-ingress

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend-ingress
spec:
  hosts:
  - "*"
  gateways:
  - backend-gateway
  http:
    - route:
        - destination:
            host: demo-ingress
            port:
              number: 80

但是,当我尝试卷曲到我的外部IP istio-ingressgateway时,仍然会收到HTTP 503。我在这里想念什么吗?

1 个答案:

答案 0 :(得分:0)

我只是发现我在这里误会了一些东西。

  1. 如果安装Istio,则应使用istio-ingressgateway 替换我们之前使用的入口。
  2. istio-ingressgateway结合了Gateway和VirtualService。他们使用默认名称空间。如果我的服务使用不同的名称空间,则每个服务都必须公开其 externalName