Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

39.4. 调试路由器

现在您已拥有了一个 IP 地址,我们需要通过 ssh 连接到该机器,并检查路由器软件是否在该计算机上运行并正确配置。因此,让我们来到这里 ssh 并获得管理 OpenShift Container Platform 凭证。

注意

如果您有权访问管理员凭据,但不再以 默认系统用户 system :admin 身份登录,您可以随时以此用户身份重新登录,只要 CLI 配置文件中 仍然存在凭据。以下命令登录并切换到 默认 项目:

$ oc login -u system:admin -n default

检查路由器是否正在运行:

# 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 映射到正确的服务;如果这起作用,我们需要浏览该服务以确保所有端点都可以访问。

我们来列出 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 节 “调试服务” 部分。