Kubernetes 如何在istio中编写自定义入口网关?

Kubernetes 如何在istio中编写自定义入口网关?,kubernetes,kubernetes-ingress,istio,Kubernetes,Kubernetes Ingress,Istio,我是istio新手,我有一个简单的测试yaml文件,有点长。我想做的是为我的网关编写一个定制的入口网关服务。测试后,错误的部分是位于顶部的入口通道定义。整个yaml如下所示: apiVersion: v1 kind: Service metadata: name: batman-ingressgateway labels: app: batman-ingressgateway spec: type: LoadBalancer selector: app: batm

我是istio新手,我有一个简单的测试yaml文件,有点长。我想做的是为我的网关编写一个定制的入口网关服务。测试后,错误的部分是位于顶部的入口通道定义。整个yaml如下所示:

apiVersion: v1
kind: Service
metadata:
  name: batman-ingressgateway
  labels:
    app: batman-ingressgateway
spec:
  type: LoadBalancer
  selector:
    app: batman-ingressgateway
  ports:
  - port: 80
    targetPort: 80
    nodePort: 31389
    name: http
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: batman-gateway
spec:
  selector:
    app: batman-ingressgateway
      #istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: batman
spec:
  hosts:
  - "*"
  gateways:
  - batman-gateway
  http:
    - match:
      route:
      - destination:
          host: batman
          port:
            number: 8000
          subset: v1
        weight: 80
      - destination:
          host: batman
          port:
            number: 8000
          subset: v2
        weight: 20
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: batman-destination
spec:
  host: batman
  subsets:
  - name: v1
    labels:
      version: v1
      run: batman
  - name: v2
    labels:
      version: v2
      run: batman
我想从浏览器访问我的应用程序,地址如下:。现在的问题是入口网关没有将流量路由到我的网关。有人能帮我吗?
谢谢。

关于istio网关路由的文档在这里

如果你看网关规范,他们有

选择器:
istio:ingressgateway#使用istio默认网关实现

当你有

选择器:
应用程序:蝙蝠侠入口通道
#istio:ingressgateway

有关VirtualService定义,请参见此处 您可以尝试将请求路由到您的服务/文章

apiVersion:networking.istio.io/v1alpha3 种类:虚拟服务 元数据: 名称:文章路线 规格: 主持人: - * http: -匹配: -uri: 前缀:“/article” 路线: -目的地: 主持人:

您应该在网关定义中使用31389端口。