当前位置: 首页 > 知识库问答 >
问题:

如何在路由器中为Istio入口网关配置传入端口

曹焱
2023-03-14

我尝试使用openshift路由配置istio入口。据我所知,请求路径如下:

request -> route -> ingress service -> gateway -> virtual service -> app service -> app
kind: Route
  ...
spec:
  host: my-app.com
    to:
      kind: Service
      name: ingress-service
      weight: 100
    port:
      targetPort: http
  ...
kind: Service
metadata:
  name: ingress-service
...
spec:
  ports:
    - name: status-port
      protocol: TCP
      port: 15020
      targetPort: 15020
    - name: http
      protocol: TCP
      port: 9080
      targetPort: 9080
  selector:
    app: ingressgateway
    istio: ingressgateway
  type: ClusterIP 
kind: Gateway
metadata:
  name: ingress-gw
...
spec:
  servers:
    - hosts:
        - my-app.com
      port:
        name: http
        number: 9080
        protocol: HTTP
  selector:
    istio: ingressgateway
kind: VirtualService
...
spec:
  hosts:
    - my-app.com
  gateways:
    - ingress-gw
  http:
    - route:
      - destination:
          host: my-app
          port: 9080
  exportTo:
    - .

共有1个答案

乌学博
2023-03-14

外部暴露的端口号取决于OpenShift上的路由器(HAProxy)pod侦听端口。如果您想要9080端口而不是80,您应该更改路由器(HAProxy)POD上的端口。或者您可以处理LB上的端口号以使用其他端口号。

访问流程如下。

LB(80, 443) 
   -> Router pod(80, 443) 
      -> Ingress-Gateway pod
         -Through Gateway and VirtualService -> Backend pod
 类似资料:
  • 我有一个在kubernetes pod中运行的应用程序(在我的本地docker桌面上,启用kubernetes),监听端口8080。然后我有以下kubernetes配置 这个很好用。但我想把443端口改成其他端口,比如8443(因为我将有多个网关)。当我有这个,我不能再访问应用程序了。是否有一些配置我遗漏了?我猜我需要配置Istio来接受8443端口?我使用以下命令安装了istio: 编辑:我读了

  • 我试图在安装服务网格、网关和应用路由策略后,在我的Istio入口网关上启用HTTPS。最初的Istio安装是使用一个配置文件完成的,该配置文件包括一个istio-ingress网关服务。当我这样做时,它将入口网关创建为,而不是。 我看了这个:https://istio.io/latest/docs/tasks/traffic-management/ingress/secure-ingress/但是

  • 我们的GKE集群共享给公司的多个团队。每个团队可以有不同的公共域(因此希望有不同的CA证书设置和不同的入口网关控制器)。在Istio怎么做?Istio网站上的所有教程/介绍文章都使用了共享入口网关。请参见ISTIO-1.0.0安装的共享入口网关示例:https://istio.io/docs/tasks/traffic-management/secure-ingress/

  • 这起作用了 这不是

  • 当将外部负载平衡器与istio入口网关(分布在不同节点上的多个副本)一起使用时,它如何识别可能命中的istio入口网关,即我可以手动访问任何节点的nodeip:nodeport/endpoint,但外部负载平衡器如何知道所有节点。 这是手动配置的还是负载均衡器从API中使用此信息是否有绕过外部负载均衡器的推荐策略,例如。roundrobin跨知道节点ip/端口的DNS? 这个问题的根源是——我们如

  • 我有一个用于测试本地docker、本地Kubernetes和Istio设置的演示应用程序。最初,我将演示服务公开为type=NodePort,它可以正常工作http://localhost: 部署后,导航到http://localhost/会出现HTTP 404错误。服务、VS、网关在集群上一切看起来都很好。因为我是新来的,我不确定我是否在Istio或库伯内特斯身上错过了一些基本的东西。