Kai*_*rac 6 java spring kubernetes netflix-zuul
我在 kubernete 和 docker 中使用微服务,UnknownHostException当 Zuul(网关)将请求数据转发到服务时,我无法通过 pod 名称 ping 到服务容器(但是当我使用 docker swarm 而不是 Kubernetes 时,我可以正常通过主机名 ping )
这是我的服务 yaml 文件
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
Run Code Online (Sandbox Code Playgroud)
这是错误输出
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
...
Run Code Online (Sandbox Code Playgroud)
我发布@Matthew L Daniel 评论中的答案,以获得更好的可见性:
\n\n\n\nkube-dns 不会为 Pod 创建 DNS 记录,因为它们是短暂的;如果您想对 Pod 进行寻址,请使用其 IP 或使用服务\n \xe2\x80\x93 Matthew L Daniel
\n
| 归档时间: |
|
| 查看次数: |
7289 次 |
| 最近记录: |