从Kubernetes吊舱访问主机上的web应用程序

从Kubernetes吊舱访问主机上的web应用程序,kubernetes,dns,Kubernetes,Dns,我有一个开发环境,其中一些服务在本地Kubernetes集群中运行,而其他服务在集群外的本地nginx和IIS窗口中运行。这些服务中的大多数都是HTTP API,我有时需要它们相互通信。我找到了一种方法,通过使用IIS作为代理,让非Kubernetes服务访问集群内的服务,但不是相反 基本上,在我的容器中,我需要能够做卷曲https://app-running-in-iis.local. 地址app-running-in-iis.local应解析为运行Kubernetes群集的主机的IP 最简单

我有一个开发环境,其中一些服务在本地Kubernetes集群中运行,而其他服务在集群外的本地nginx和IIS窗口中运行。这些服务中的大多数都是HTTP API,我有时需要它们相互通信。我找到了一种方法,通过使用IIS作为代理,让非Kubernetes服务访问集群内的服务,但不是相反

基本上,在我的容器中,我需要能够做卷曲https://app-running-in-iis.local. 地址app-running-in-iis.local应解析为运行Kubernetes群集的主机的IP

最简单的方法是什么?

在Kubernetes最佳实践中:

您可以找到两个如何使用服务和端点将外部资源映射到集群的示例:

kind: Service
apiVersion: v1
metadata:
 name: nginx
Spec:
 type: ClusterIP
 ports:
 - port: 31500
   targetPort: 27017

kind: Endpoints
apiVersion: v1
metadata:
 name: nginx
subsets:
 - addresses:
     - ip: 10.240.0.4
   ports:
     - port: 27017
额外资源:


希望这有帮助。

您有DNS解决问题或路由问题吗?恐怕这没有帮助,因为所有这些方法都假定您知道要访问的资源的IP地址。我需要访问Kubernetes主机,其IP地址对我来说是未知的,重新启动后可能会更改。因此,在这种情况下,您是否有此主机的dns记录?指向主机的唯一主机名是host.docker.internal,但我无法使用它访问网站,因为此机器运行多个网站,每一个都有自己的主机名。您试图从kubernetes容器访问外部服务吗?如回答中所述,您还可以使用类型ExternalName,它将为您提供本地服务,而群集DNS服务将返回具有正确值的CNAME记录。如果这不是你的情况,请详细说明。无论如何,为了从集群内部连接到外部服务,它应该是可访问的。我不确定如何进一步澄清我的问题,但我会尝试。我有一台Windows计算机运行多个网站site1.local、site2.local等。这是一台开发计算机,因此这些网站没有公共DNS记录,它们仅在这台计算机上可用,DNS记录通过本地主机文件配置。同一台机器正在运行一个k8s群集,我需要所有的POD能够将site1.local、site2.local解析为主机的IP,这对我来说是未知的,可能会不断更改,并访问这两个网站。