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 配置文件 中,您可以随时以这个用户身份登录。以下命令登录并切换到 default 项目 :

$ 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 映射到正确的服务,如果有效,我们需要 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 节 “调试服务” 部分。