当前位置: 首页 > 知识库问答 >
问题:

Kubernetes服务发现-跨命名空间

雍志新
2023-03-14

我有一个kubernetes集群,在namespaceA上有serviceA,在namespaceB上有serviceB。

我希望从serviceA使用kubernetes服务发现以编程方式列出serviceB。我计划使用spring云kubernetes(@EnableDiscoveryClient)。

但是,有一个公司范围的政策来阻止使用以下配置,这应该已经解决了这个问题:spring.cloud.kubernetes.discovery.all-namespaces=true

有什么办法可以规避这个问题吗?可能会将serviceB分配给两个不同的名称空间或其他我不知道的权限/配置?

共有1个答案

松波
2023-03-14

如果您试图通过库伯内特斯API按服务名称查找服务IP,那么通过kubectl或Java客户端进行查找并不重要,您传递给API的选项是相同的。

然而,重要的是服务名是只在同一个名称空间中查找还是在所有名称空间中查找。从不同的名称空间访问服务可以通过指定其名称和名称空间来完成,而不是< code>my-service,他们需要编写< code > my-service . some-namespace 。

没有选择器的服务也是一个选项,可以将服务从一个命名空间公开到另一个命名空间,以便在库伯内特斯对象中而不是在应用程序代码中指定命名空间。

如果有帮助,请告诉我。

 类似资料:
  • 我在Spring Boot应用程序上遇到了Kubernetes服务发现的问题。 无论spring boot应用程序是在Kubernetes集群内运行还是在Kubernetes集群外运行,我都应该能够发现这些服务。我们的本地发展不会在k8s集群上。 我正在通过DNS使用服务发现。我尝试使用spring-cloud-starter-kubernetes

  • 我有一个库伯内特斯集群,同一个应用程序运行几次,但名称空间不同。想象一下 现在我需要在所有这些 Pod 中每 10 分钟执行一次 cronjob。路径每次都是一样的。 有没有“最佳方法”来实现这一目标? 我在想一个以“CronJob”类型运行的 kubectl 图像,如下所示: 但我很确定这不是解决问题的正确方法。

  • 问题内容: AngularJS如何处理服务名称之间的冲突?例如,如果我声明了两个模块,每个模块包含一个名为“ foo”的服务。如果我想创建一个可重用的模块或要避免与其他第三方模块发生冲突,哪种是“​​命名空间”服务的好方法? 问题答案: 到目前为止,AngularJS不会处理服务的名称空间冲突, 因此,如果您使用相同的方式将两个不同的模块命名为服务,并且在应用程序中包含了两个模块,则只有一个服务可

  • Azure Service Bus有两种身份验证机制: SAS:共享访问签名 根据这里的说法, 对于2014年8月之前创建的所有(服务总线)命名空间,都会创建一个附带的ACS命名空间。 现在是2014年8月之后,所以当您通过Azure管理门户创建服务总线名称空间时,不会创建附带的ACS名称空间。 上面的同一链接还指示使用以下Azure PowerShell cmd let: 但事实证明,useAc

  • 使用“Spring service discovery Kubernetes”而不是直接使用来自Kubernetes的服务DNS有什么好处? 问题1。为了让服务-A能够使用服务DNS连接到服务-B,必须在服务-A之前部署服务-B? 问题2。使用spring Discovery的优点/缺点是什么?

  • 我正在使用典型的Spring云堆栈对简单的微服务架构进行POC,但不是Eureka服务器,而是使用不工作的Spring云Kubernetes进行服务发现。 整个POC都在这里-https://github.com/dhananjay12/spring-microservices-using-spring-kubernetes 网关作为边缘服务器和2个下游服务-用户服务和联系我们服务。 k8设置在k