在 OCP 4.3 上,从仪表板“复制登录命令”生成的 oc 登录命令
oc login --token=asdfghjk... --server=https://api.xxx.com:6443
失败:
error: dial tcp: lookup api.xxx.com on 192.168.0.1:53: no such host - verify you have provided the correct host and port and that the server is currently running.
当我用集群的公共 ip 替换它工作的主机名时。
oc login --token=asdfghjk... --server=https://1.2.3.4:6443
我可以成功ping api.xxx.com,“复制登录命令”生成的curl命令解析主机名,curl url在chrome中也有效。我已经尝试将主机和公共 ip 添加到我的 /etc/hosts 文件,但它仍然失败。
我缺少一些 oc 命令配置选项吗?或者也许是我需要启动的本地代理? (奇怪的是错误消息说
...on 192.168.0.1:53...
)
版本:
$ oc version
Client Version: openshift-clients-4.3.0-201910250623-88-g6a937dfe
Server Version: 4.3.0
Kubernetes Version: v1.16.2
$
更新:
我为此开了一个
oc
问题:
这不是oc客户端的问题。它按预期工作。
运行 oc 命令的计算机的 DNS 服务器不知道 OpenShift DNS 条目。
根据 IP 192.168.0.1 判断它是您的路由器。
如果您在云中部署了 OpenShift,则需要确保您使用的是公共 DNS 区域,以便可以从任何地方解析 DNS 条目。
或者,您可以将这些条目放在本地 Linux 机器上的 /etc/hosts 文件中(如果它的 Windows 路径不同),或者您可以将它们放在路由器的 DNS 设置中。
我遇到类似的“没有这样的主机”问题运行
oc rsh
命令。再次oc logout
和oc login
后,问题解决
今天在 MacOS 上遇到了同样的问题。 Ping 可以解析主机,但 nslookup 和 dig 都无法解析主机,dig 和 nslookup 使用的名称服务器是我的默认网关地址/端口 53。
修复: 转到系统偏好设置 > 网络 > 高级 > DNS 选项卡。添加解析主机名的名称服务器,在我的例子中是 Intranet 名称服务器(我是 VPN'ed)。为了以防万一,我还添加了几个公共名称服务器。
现在 Dig / nslookup 解析主机,我的 oc 登录有效
结论? 我不确定这是一个 oc 问题,还是一个 VPN 配置问题。似乎 VPN 没有正确添加内网 DNS。但是我无法解释为什么,在我添加名称服务器之前,ping 有效但 dig/nslookup 没有。
我遇到同样的问题,但同一区域中两个不同服务器之间的连接。 我不知道如何解决它。