39.4. 调试路由器
现在,您已拥有 IP 地址,我们需要 ssh
到该计算机,并检查该计算机上的路由器软件是否在该计算机上运行并正确配置。因此,我们已有 ssh
来获取 OpenShift Container Platform 凭证。
检查路由器是否正在运行:
# oc get endpoints --namespace=default --selector=router NAMESPACE NAME ENDPOINTS default router 10.128.0.4:80
如果该命令失败,则您的 OpenShift Container Platform 配置出现问题。修复本文档的范围。
您应当会看到列出一个或多个路由器端点,但这不会告诉您是否在带有给定外部 IP 地址的机器中运行,因为端点 IP 地址将是集群内部的 pod 地址之一。要获取路由器主机 IP 地址列表,请运行:
# oc get pods --all-namespaces --selector=router --template='{{range .items}}HostIP: {{.status.hostIP}} PodIP: {{.status.podIP}}{{"\n"}}{{end}}' HostIP: 192.168.122.202 PodIP: 10.128.0.4
您应该会看到与外部地址对应的主机 IP。如果没有,请参阅 路由器文档,将路由器 Pod 配置为在正确的节点上运行(通过正确设置关联性)或更新您的 DNS,以匹配路由器运行的 IP 地址。
在本指南中,您应位于节点上运行路由器 Pod 的节点,但您仍然无法获取 HTTP 请求才能工作。首先,我们需要确保路由器将外部 URL 映射到正确的服务,如果有效,我们需要 dig 到该服务,以确保所有端点都可以访问。
让我们列出 OpenShift Container Platform 所知的所有路由:
# oc get route --all-namespaces NAME HOST/PORT PATH SERVICE LABELS TLS TERMINATION route-unsecured www.example.com /test service-name
如果您的 URL 中的主机名和路径与返回路由列表中的任何内容都不匹配,则需要添加路由。请参阅 路由器文档。
如果存在路由,则需要调试对端点的访问。这与您在服务中调试问题时相同,因此继续进行下一 第 39.5 节 “调试服务” 部分。