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

OpenShift和Istio网关流量配置,以便使用外部域进行访问

吕宣
2023-03-14

在OpenShift上部署Istio 1.1.2之后,有一个istio-ingress网关路由及其关联的服务和pod。

我已成功使用该入口网关访问应用程序,并使用*作为主机配置网关和虚拟服务。

不过,我想配置一个域,例如insuranceinc。是的,访问应用程序。根据文档,我有一个Istio配置:

网关:

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

虚拟服务

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: insuranceinc
  namespace: istio-insuranceinc
spec:
  hosts:
    - insuranceinc.es
  gateways:
    - insuranceinc-gateway
  http:
    - route:
        - destination:
            host: insuranceinc-web
            port:
              number: 8080

如果我做这个卷发调用...

curlhttp://istio-ingressgateway-istio-system.apps.mycluster.com/login

... 我可以在入口网关吊舱中看到404错误:

[2019-04-12T15:27:51.765Z] "GET /login HTTP/1.1" 404 NR "-" 0 0 1 - "xxx" "curl/7.54.0" "xxx" "istio-ingressgateway-istio-system.apps.mycluster.com" "-" - - xxx -

这是有道理的,因为它不是来自保险公司。主持人。因此,我更改了curl以发送一个主机:insuranceinc。es标题:

curl-H“主机:保险公司”http://istio-ingressgateway-istio-system.apps.mycluster.com/login

现在我收到一个503错误,istio入口通道吊舱中没有日志

应用程序当前未在此终结点上为请求提供服务。它可能尚未启动或仍在启动。

这意味着istio ingressgateway路由尚未处理该请求-

由于它是一条Openshift路由,因此它必须需要一个包含路由主机istio ingressgateway istio系统的主机头。应用程序。我的群集。com。事实上,如果我发送curl-H“Host:istio incressgateway istio system.apps.mycluster.com”http://istio-ingressgateway-istio-system.apps.mycluster.com/login它由istio入口网关处理,返回404。

那么,我怎样才能把我的寄宿保险公司寄去呢。es报头并到达istio入口网关(实际上是OpenShift路由)?

共有1个答案

周凯捷
2023-03-14

您需要在istio系统名称空间中创建一个openshift路由,以与您创建的主机名相关。

例如:

oc -n istio-system get routes
NAME              HOST/PORT                                            PATH      SERVICES               PORT      TERMINATION   WILDCARD
gateway1-lvlfn    insuranceinc.es                                                istio-ingressgateway   <all>                   None
 类似资料:
  • 金属(版本0.7.3) Kubernetes(版本1.12.2) ISTIO(版本1.0.3) 我会从什么起作用开始。 所有补充服务均已部署,大部分正在工作: null 网关 虚拟服务 我仔细检查了一下,这不是DNS的问题,因为我可以通过busybox或使用K8S仪表板进入入口网关的shell

  • 我试图部署一个角应用程序在OpenShift与Istio作为服务网格。服务yaml: 到目前为止,一切都与http连接一起工作。为了切换到https连接,我将Red Hat Openshift服务Mesh operator安装提供的istio ingressgateway路由配置为使用passthrough 以及istio的网关资源: VirtualService指向angular app的808

  • 问题内容: 我有一个要登录的Maven&Spring应用程序。我热衷于使用SLF4J。 我想将所有配置文件放入包含log4j.xml的目录{classpath} / config中,然后使用spring bean进行初始化。 例如 但是,我得到此警告,没有日志记录。 log4j:WARN找不到记录器的附加程序(org.springframework.context.support.ClassPat

  • 我在我的客户端应用程序(我的Spring网关)中配置客户端凭据流时遇到了一些问题。 我的授权服务器功能正常,与邮递员一起测试,没有任何问题。 但在我的客户机应用程序中,oauth2配置似乎没有编译错误。 当我调用服务器资源上的受保护资源时,我的客户端应用程序似乎试图调用其基础中的URL,而不是授权服务器。 请参阅我的配置文件中的代码: 我的客户依赖: 我的网络客户端的配置: 我在资源上的呼叫者:

  • 问题内容: 新手问题-可能更适合ServerFault,如果这样的话,抱歉。 我将按照关于安装Node的出色的howtonode说明,在Ubuntu 11.10 上设置node。 我可以在127.0.0.1:8000上运行“ Hello World”页面,但是如何设置它以显示在服务器的外部IP上? 我习惯于配置Apache-与Apache的“ Hello World”页面等效的节点是什么? 谢谢你

  • Vistio GitHub地址:https://github.com/nmnellis/vistio Vizceral是Netflix发布的一个开源项目,用于近乎实时地监控应用程序和集群之间的网络流量。Vistio是使用Vizceral对Istio和网格监控的改进。它利用Istio Mixer生成的指标,然后将其输入Prometheus。Vistio查询Prometheus并将数据存储在本地以允许