0

如何访问主机网络中 IP 地址上的服务?

基本上,我在同一个网络上有 5 或 6 个 VMS,其中 3 个 VMS 用于创建 Kubernetes 集群。其中一个 VM 托管 Kubernetes (192.168.2.x) 外部的私有 npm 注册表。我正在使用在 Kubernetes 集群中运行的 gitlab 运行器。在 ci 管道的构建阶段进行 npm 安装时,由于 gitlab 构建运行器运行的 pod 无法访问主机网络上的私有 npm 注册表,该注册表通过 192.168.2.x 而不是在 Kubernetes 内簇。

有没有办法能够访问同一主机网络内的服务,但不能访问 Kubernetes 集群内的服务?

这是跑步者内部错误消息的示例:

$ npm install npm WARN 可选跳过可选依赖:fsevents@1.2.9 (node_modules/@angular/compiler-cli/node_modules/fsevents):npm WARN 网络跳过可选依赖:请求 https://devops.internal.ideam.co .za/repository/npm-group/fsevents失败,原因:连接 ETIMEDOUT 192.168.2.6:443

npm 错误!代码 ETIMEDOUT npm 错误!errno ETIMEDOUT npm 错误!对 > https://devops.internal.ideam.co.za/repository/npm-group/source-map的网络请求失败,原因:连接 ETIMEDOUT 192.168.2.6:443 npm ERR!网络 这是与网络连接有关的问题。

正如您所看到的,一旦受信任证书保护的 FQDN 解析为内部 IP 地址,就无法从 pod 内部访问 npm 注册表的主机 IP 地址。我已确保外部 FQDN 确实在调试 pod 中的 Kubernetes 集群中使用 busybox 和 nslookup 命令解析。

我提供了一个解释图来说明:

在此处输入图像描述

这是网络配置问题吗?有谁知道这是否可行或如何让它发挥作用?

4

0 回答 0