【发布时间】:2020-01-22 23:50:10
【问题描述】:
终极目标
从 dotnet/core/sdk devcontainer(使用 VSCode 远程容器),调试在我的主机的另一个 vm 上托管的 kubernetes 集群中运行的 .NET Core 应用程序。
当前设置
- 通过 Hyper-V 运行的适用于 Windows 的 Docker 桌面
- 默认 DockerNAT 网络适配器
- 在同一 Hyper-V 主机上运行的 Ubuntu VM(多通道)
- 在此 ubuntu 实例上运行的 microk8s 集群
- 默认的“默认交换机”网络适配器
错误
- 当我尝试通过主机名从 docker 容器 ping ubuntu vm 时,IP 已正确解析,但我收到错误“目标主机无法访问”
- 当我尝试 curl 集群 api 时,我收到错误“No route to host”
【问题讨论】:
-
所以你有一台运行 Windows(在虚拟环境中)和虚拟 Ubuntu 的机器,它又运行 micro k8s。我当时是对的吗?您是否能够从 docker 容器 ping 例如 8.8.8.8 ?你能从 Ubuntu 访问 Cluster aoi 吗?
-
我的主机是 Windows 10 Pro,运行 Docker for Desktop(Linux 容器)和一个虚拟 Ubuntu。 Bock docker 和 ubuntu 通过 Hyper-V 运行。 microk8s 集群在虚拟 Ubuntu 上运行。从 docker 容器中,我可以 ping 8.8.8.8 和 google.com 没问题。从 ubuntu vm,我可以访问集群 api。从 docker 容器中,我可以解析 ubuntu 主机名(microk8s.mshome.net),但我得到“Destination Host Unreachable”。
-
这看起来像是 Docker 和 Ubuntu 之间的网络问题。您是否尝试过创建单个 NAT 并将 VM 附加到它,如 docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/… 中所述?
-
我已经将两个虚拟机都放在了 Docker 的默认 DockerNAT 网络上,但这不起作用。我会尝试您的建议,但由于未知原因,该问题不再可重现,正如我将在“解决方案”中解释的那样。
标签: kubernetes hyper-v vscode-debugger vscode-remote