春季启动Kubernetes服务发现 [英] Spring boot Kubernetes Service Discovery

查看:106
本文介绍了春季启动Kubernetes服务发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Spring Boot应用程序上遇到Kubernetes Service Discovery的问题.

I am running into issues with Kubernetes Service Discovery on Spring Boot applications.

无论我的Spring Boot应用程序是在Kubernetes集群内运行还是在Kubernetes集群外运行,我都应该能够发现服务.我们的本地开发不会在k8s集群上进行.

I should be able to discover the services whether my spring boot application is running within or out of Kubernetes cluster. Our local development won't be on k8s cluster.

我正在通过DNS使用服务发现.我尝试使用 spring-cloud-starter-kubernetes

I am using Service Discovery via DNS. I tried using spring-cloud-starter-kubernetes

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-kubernetes</artifactId>
        <version>0.2.0.RELEASE</version>
    </dependency>

根据文档,您应该能够自动连接DiscoveryClient,并且很方便

As per documentation you should be able to autowire DiscoveryClient and good to go

@Autowire
private DiscoveryClient discoveryClient;

DiscoveryClient是spring-cloud-commons的一部分. spring-cloud-starter-kuberenetes没有.

DiscoveryClient is part of spring-cloud-commons. spring-cloud-starter-kuberenetes doesn't have it.

有人使用相同或不同的库解决了类似的问题吗?请分享解决方案

Anyone solved similar problem using the same library or a different one? Please share the solution

谢谢!

推荐答案

我已经使用Spring Cloud Kubernetes依赖关系解决了这个问题

I have solved this issue using the Spring Cloud Kubernetes Dependencies

<spring.cloud.kubernetes>0.2.0.RELEASE</spring.cloud.kubernetes>

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-kubernetes-ribbon</artifactId>
        <version>${spring.cloud.kubernetes}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-kubernetes-config</artifactId>
        <version>${spring.cloud.kubernetes}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-kubernetes-core</artifactId>
        <version>${spring.cloud.kubernetes}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-kubernetes-discovery</artifactId>
        <version>${spring.cloud.kubernetes}</version>
    </dependency>

对我来说非常重要的是功能区依赖关系,因为它利用负载平衡的rest模板来替换服务名称,以替换您在kubernetes集群中找到的正确Pod IP.

What was very important for me was the ribbon dependency as it makes use of a load balanced rest template in order to substitute service names for the correct pod IP's that are found in your kubernetes cluster.

我创建了一个git repo作为回答更多问题的一部分,但是如果有人正在寻找一种方法来代替Eureka或Consul来实现Kubernetes服务发现,那应该绰绰有余.

I have created a git repo as part of answering a larger set of questions but it should be more than sufficient if someone is looking a way to implement Kubernetes service discovery in place of Eureka or Consul.

https://github.com/foundery-rmb/kubernetes-service-discovery

这篇关于春季启动Kubernetes服务发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆