4.6. 检查 Ingress 和 Istio 路由


有时,当 Istio 用作 Ingress 层时,Ingress 和 Istio 路由会有问题。您可以使用 OpenShift CLI (oc)查看它们的详情。

流程

  1. 运行以下命令列出所有 Ingress 资源及其对应的标签:

    $ oc get ingresses.networking.internal.knative.dev -o=custom-columns='NAME:.metadata.name,LABELS:.metadata.labels'
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME            LABELS
    helloworld-go   map[serving.knative.dev/route:helloworld-go serving.knative.dev/routeNamespace:default serving.knative.dev/service:helloworld-go]
    Copy to Clipboard Toggle word wrap

    在这个输出中,label serving.knative.dev/routeservice.knative.dev/routeNamespace 表示 Ingress 资源所在的 Route。您的 Route 和 Ingress 应该被列出。

    如果您的 Ingress 不存在,路由控制器会假定 RouteService 对象的目标 Revision 对象未就绪。继续其他调试程序,以诊断 修订 就绪状态。

  2. 如果列出了 Ingress,请运行以下命令检查为路由创建的 ClusterIngress 对象:

    $ oc get ingresses.networking.internal.knative.dev <ingress_name> --output yaml
    Copy to Clipboard Toggle word wrap

    在输出的 status 部分中,如果 type=Ready 条件的状态为 True,则 Ingress 可以正常工作。否则,输出中会包含错误消息。

  3. 如果 Ingress 的状态为 Ready,则有一个对应的 VirtualService 对象。运行以下命令,验证 VirtualService 对象的配置:

    $ oc get virtualservice -l networking.internal.knative.dev/ingress=<ingress_name> -n <ingress_namespace> --output yaml
    Copy to Clipboard Toggle word wrap

    VirtualService 对象中的网络配置必须与 IngressRoute 对象匹配。因为 VirtualService 对象没有公开 Status 字段,您可能需要等待其设置传播。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat