0

我有一个 REST API 在我的笔记本电脑上本地运行https://localhost:5001/something。我希望它可以通过K8s DNS 名称在 Kubernetes 集群内访问。例如,在 Pod 中运行的应用程序可以使用some-service而不需要整个 Url。

另外,由于localhost是相对于主机的,我如何在主机上而不是在 K8s 集群中获取or ServiceExternalNamelocalhost

我试过docker.host.internal(如建议的here)但没有奏效。这来自 K8s 文档说它不能是环回:

端点 IP 不得为:环回(IPv4 为 127.0.0.0/8,IPv6 为 ::1/128)或本地链路(IPv4 为 169.254.0.0/16 和 224.0.0.0/24,fe80::/64对于 IPv6)。

我在跑:

  • 主机: Ubuntu 20.04
  • K8s: k3d
  • Web API:(Linux 上的 .Net Core 3.1,创建者dotnet new webapi MyAPI
4

1 回答 1

0

Telepresence是一个工具,用于使用 k8s 集群快速本地测试您的应用程序。它允许您在本地运行单个服务,同时将其连接到远程 Kubernetes 集群。

它用双向网络代理代替了在 Kubernetes 集群中运行的普通 pod。这个 pod 将 Kubernetes 环境中的数据(例如 TCP 连接、环境变量、卷)代理到本地进程。本地进程的网络被透明地覆盖,以便 DNS 调用和 TCP 连接通过代理路由到远程 Kubernetes 集群。

另一种方法是创建受支持的服务ssh server running in a pod并使用反向隧道打开与本地计算机的反向连接。

于 2021-05-25T09:33:37.047 回答