Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot K8s上的Netflix OSS Eureka Spring boot 2.0应用程序返回名称而不是ip地址_Spring Boot_Kubernetes_Netflix Eureka - Fatal编程技术网

Spring boot K8s上的Netflix OSS Eureka Spring boot 2.0应用程序返回名称而不是ip地址

Spring boot K8s上的Netflix OSS Eureka Spring boot 2.0应用程序返回名称而不是ip地址,spring-boot,kubernetes,netflix-eureka,Spring Boot,Kubernetes,Netflix Eureka,我正在尝试在kubernetes上部署spring boot netflix OSS发现服务器。服务器部署得很好,我的应用程序在服务器上注册,我甚至在使用Eureka客户端查询时获得了一个实例url @Autowired private EurekaClient discoveryClient; @GetMapping("/get_instance/") public String serviceUrl() { return getUrlFromEureka(); } privat

我正在尝试在kubernetes上部署spring boot netflix OSS发现服务器。服务器部署得很好,我的应用程序在服务器上注册,我甚至在使用Eureka客户端查询时获得了一个实例url

@Autowired
private EurekaClient discoveryClient;

@GetMapping("/get_instance/")
public String serviceUrl() {

    return getUrlFromEureka();
}

private String getUrlFromEureka() {
    InstanceInfo instance = discoveryClient.getNextServerFromEureka("DEMO-SERVER", false);
    return instance.getHomePageUrl();
}
这将返回如下所示的url
http://demo-server-86c7cd568-xzzgt:8080/

这将返回pod的名称和它所在的端口,因此我尝试查询它以从服务器获得响应,但它超时了。 这就是我使用的方法

@GetMapping("/get-from-demo-server")
public String getFromDemoServer(){
    RestTemplate restTemplate = new RestTemplate();
    return restTemplate.getForObject(getUrlFromEureka(), String.class);

}
我将discovery server和spring boot应用程序部署到相同的k8环境中

下面是运行在k8中的eureka服务器的屏幕截图。

这一切都在我的本地minikube环境中运行。 谢谢你对我的帮助

这是我的客户机的依赖项

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-openfeign -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/net.logstash.logback/logstash-logback-encoder -->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>5.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-sleuth</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
SpringBootStarterWeb
org.springframework.cloud
spring cloud starter netflix eureka客户端
org.springframework.cloud
SpringCloudStarterConcur配置
org.springframework.cloud
spring cloud starter netflix ribbon
org.springframework.cloud
春季云启动程序
net.logstash.logback
logstash logback编码器
5
org.springframework.cloud
斯普林云侦探
org.springframework.boot
弹簧靴开发工具
运行时
org.projectlombok
龙目
真的
org.springframework.boot
弹簧起动试验
测试
以下是Eureka服务器的依赖项

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

org.springframework.cloud
spring cloud starter netflix eureka服务器
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
弹簧起动试验
测试

默认情况下,问题在于客户端更喜欢主机名而不是ip。可以使用spring属性覆盖该属性。
eureka.instance.preference ip address=true
。 这非常适合我的用例