5.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'

    输出示例

    NAME            LABELS
    helloworld-go   map[serving.knative.dev/route:helloworld-go serving.knative.dev/routeNamespace:default serving.knative.dev/service:helloworld-go]

    在这个输出中,标签 service.knative.dev/routeservice.knative.dev/routeNamespace 表示 Ingress 资源所在的 Route。应该会列出您的 Route 和 Ingress。

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

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

    $ oc get ingresses.networking.internal.knative.dev <ingress_name> --output yaml

    在输出的 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

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

5.6.1. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.