Kubernetes 如何从K8 pod向同一集群中的NodePort服务发出HTTP请求

Kubernetes 如何从K8 pod向同一集群中的NodePort服务发出HTTP请求,kubernetes,Kubernetes,我需要k8pod中的服务能够对下游服务进行HTTP调用,通过节点端口在同一集群和命名空间中平衡负载 我的限制是: 我只能通过操纵部署和服务来实现这一点 实体(无入口。我没有访问 集群) 我不能添加任何K8插件 NodePort公开的端口必须是随机的,而不是硬编码的 整个过程必须自动化。我无法使用文本值设置部署 暴露的端口。它需要由某种变量设置,或者 类似的过程 这可能吗?如果可能的话,如何实现?这可能是可以做到的,但这不是直接的,您可能需要添加一些自定义自动化。服务将由集群外的实体使用 对于

我需要k8pod中的服务能够对下游服务进行HTTP调用,通过节点端口在同一集群和命名空间中平衡负载

我的限制是:

  • 我只能通过操纵部署和服务来实现这一点 实体(无入口。我没有访问 集群)
  • 我不能添加任何K8插件
  • NodePort公开的端口必须是随机的,而不是硬编码的
  • 整个过程必须自动化。我无法使用文本值设置部署 暴露的端口。它需要由某种变量设置,或者 类似的过程

这可能吗?如果可能的话,如何实现?

这可能是可以做到的,但这不是直接的,您可能需要添加一些自定义自动化。服务将由集群外的实体使用

对于集群间通信,常规服务(带有ClusterIP)将按设计工作。您的服务可以使用连接到另一个服务。比如说
svc name.mynamespace.svc.cluster.local
将是
mynamespace
命名空间中
svc name
的DNS条目

如果您只能执行一个
节点端口
,它本质上是K8s节点上的一个端口,那么您可以创建另一个或Pod,类似或。然后让此部署由具有ClusterIP的常规K8s服务进行服务。然后让nginx或haproxy指向Kubernetes集群中所有节点上的节点端口。另外,对其进行配置,使其仅转发到具有某种健康检查的侦听节点报告


上述步骤似乎是一个额外的必要步骤,但如果您需要(出于某种原因)从集群内部进行NodePort,那么它应该可以做到这一点。

感谢您提供的所有信息。我喜欢DNS服务发现的想法。我必须看看我是否有权限建立它。不过,请澄清一下:一旦设置好,我就可以通过输入url来拨打电话了?我今天将尝试一下,看看是否可以验证DNS解决方案。谢谢。这对我帮助很大。测试并验证了DNS解决方案。答案被接受。