Kubernetes中的UnknownHostException [英] UnknownHostException in kubernetes
问题描述
我在kubernete和docker中使用微服务,当Zuul(网关)将请求数据转发到服务时,我得到了 UnknownHostException
我无法按Pod名称ping服务容器(但是当我使用docker swarm而不是Kubernetes时,我通常可以按主机名ping)
这是我的服务Yaml文件
apiVersion:apps/v1beta1种类:部署元数据:名称:商人服务标签:运行:商人服务规格:模板:元数据:标签:名称:商人服务规格:容器:-名称:merchantservice图片:merchantservice:最新端口:-containerPort:8001环境:-名称:EUREKA_SERVER值:"eureka1"-名称:EUREKA_SERVER2值:"eureka2"-名称:CONFIG_SERVER值:"configserver"---apiVersion:v1种类:服务元数据:名称:商人服务规格:选择器:名称:商人服务端口:-端口:8001targetPort:8001类型:LoadBalancer
这是错误输出
2019-05-28 04:29:53.443警告1 --- [nio-8444-exec-6] o.s.c.n.z.filters.post.SendErrorFilter:过滤期间出错com.netflix.zuul.exception.ZuulException:转发错误...引起原因:com.netflix.client.ClientException:空...造成原因:java.lang.RuntimeException:java.net.UnknownHostException:merchantservice-79cc77d9cc-224mf:再试一次在rx.exceptions.Exceptions.propagate(Exceptions.java:57)〜[rxjava-1.3.8.jar!/:1.3.8]在rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:463)〜[rxjava-1.3.8.jar!/:1.3.8]在rx.observables.BlockingObservable.single(BlockingObservable.java:340)〜[rxjava-1.3.8.jar!/:1.3.8]在com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:112)〜[ribbon-loadbalancer-2.3.0.jar!/:2.3.0]...省略了158个通用框架引起原因:java.net.UnknownHostException:商人服务-79cc77d9cc-224mf:再试一次...
确保已在必须通过zuul路由的微服务的application.properties文件中添加了eureka.instance.preferIpAddress = true.>
Im using microservice in kubernete and docker and I got an UnknownHostException
when Zuul (gateway) forward request data to service
I can't ping to service container by pod name (but when i use docker swarm instead of Kubernetes, i can ping by host name normally)
This is my service yaml file
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: merchantservice
labels:
run: merchantservice
spec:
template:
metadata:
labels:
name: merchantservice
spec:
containers:
- name: merchantservice
image: merchantservice:latest
ports:
- containerPort: 8001
env:
- name: EUREKA_SERVER
value: "eureka1"
- name: EUREKA_SERVER2
value: "eureka2"
- name: CONFIG_SERVER
value: "configserver"
---
apiVersion: v1
kind: Service
metadata:
name: merchantservice
spec:
selector:
name: merchantservice
ports:
- port: 8001
targetPort: 8001
type: LoadBalancer
And this is error output
2019-05-28 04:29:53.443 WARN 1 --- [nio-8444-exec-6] o.s.c.n.z.filters.post.SendErrorFilter : Error during filtering
com.netflix.zuul.exception.ZuulException: Forwarding error
...
Caused by: com.netflix.client.ClientException: null
...
Caused by: java.lang.RuntimeException: java.net.UnknownHostException: merchantservice-79cc77d9cc-224mf: Try again
at rx.exceptions.Exceptions.propagate(Exceptions.java:57) ~[rxjava-1.3.8.jar!/:1.3.8]
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:463) ~[rxjava-1.3.8.jar!/:1.3.8]
at rx.observables.BlockingObservable.single(BlockingObservable.java:340) ~[rxjava-1.3.8.jar!/:1.3.8]
at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:112) ~[ribbon-loadbalancer-2.3.0.jar!/:2.3.0]
... 158 common frames omitted
Caused by: java.net.UnknownHostException: merchantservice-79cc77d9cc-224mf: Try again
...
Make sure that you have added eureka.instance.preferIpAddress = true in your application.properties file of the microservice which has to be routed via zuul.
这篇关于Kubernetes中的UnknownHostException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!