coredns: java.net.UnknownHostException with rewrite name
I meet java.net.UnknownHostException when I use coreDns rewrite plugin in kubernetes.
coreDns config:
.:53 {
errors
log stdout
health
kubernetes cluster.local 20.0.0.0/16
rewrite name kms.services.dev.ofc kms.default.svc.cluster.local
proxy . /etc/resolv.conf
cache 60
}
java error stack
^V^ [ERROR] [2018-05-09 16:06:09.478] [test_0] [com.ciicgat.sdk.lang.controller.Controller:42] kms.services.dev.ofc
java.net.UnknownHostException: kms.services.dev.ofc: Name or service not known
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at com.ciicgat.sdk.lang.controller.Controller$1.run(Controller.java:37)
at java.lang.Thread.run(Thread.java:748)
^V^ [ERROR] [2018-05-09 16:06:14.479] [test_0] [com.ciicgat.sdk.lang.controller.Controller:42] kms.services.dev.ofc
java.net.UnknownHostException: kms.services.dev.ofc
at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at com.ciicgat.sdk.lang.controller.Controller$1.run(Controller.java:37)
at java.lang.Thread.run(Thread.java:748)
^V^ [ERROR] [2018-05-09 16:06:19.483] [test_0] [com.ciicgat.sdk.lang.controller.Controller:42] kms.services.dev.ofc
java.net.UnknownHostException: kms.services.dev.ofc: Name or service not known
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at com.ciicgat.sdk.lang.controller.Controller$1.run(Controller.java:37)
at java.lang.Thread.run(Thread.java:748)
^V^ [ERROR] [2018-05-09 16:06:24.483] [test_0] [com.ciicgat.sdk.lang.controller.Controller:42] kms.services.dev.ofc
java.net.UnknownHostException: kms.services.dev.ofc
at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at com.ciicgat.sdk.lang.controller.Controller$1.run(Controller.java:37)
at java.lang.Thread.run(Thread.java:748)
Pod’s /etc/resolv.conf
content is
[root@for-test-jar-fd574ffdd-2dj6h apache-tomcat]# cat /etc/resolv.conf
nameserver 20.0.0.11
search default.svc.cluster.local. svc.cluster.local. cluster.local.
options ndots:5
Pod’s /etc/hosts
content is
[root@for-test-jar-fd574ffdd-2dj6h apache-tomcat]# cat /etc/hosts
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
1.0.7.90 for-test-jar-fd574ffdd-2dj6h
But it’s strange that when I use nslookup
or dig
or curl
,there’s no error!
[root@for-test-jar-fd574ffdd-2dj6h apache-tomcat]# nslookup kms.services.dev.ofc
Server: 20.0.0.11
Address: 20.0.0.11#53
Name: kms.default.svc.cluster.local
Address: 20.0.125.17
[root@for-test-jar-fd574ffdd-2dj6h apache-tomcat]# dig kms.services.dev.ofc
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> kms.services.dev.ofc
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30450
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;kms.services.dev.ofc. IN A
;; ANSWER SECTION:
kms.default.svc.cluster.local. 3 IN A 20.0.125.17
;; Query time: 1 msec
;; SERVER: 20.0.0.11#53(20.0.0.11)
;; WHEN: Wed May 09 16:11:07 CST 2018
;; MSG SIZE rcvd: 94
[root@for-test-jar-fd574ffdd-2dj6h apache-tomcat]# curl kms.services.dev.ofc/isLive -v
* About to connect() to kms.services.dev.ofc port 80 (#0)
* Trying 20.0.125.17...
* Connected to kms.services.dev.ofc (20.0.125.17) port 80 (#0)
> GET /isLive HTTP/1.1
> User-Agent: curl/7.29.0
> Host: kms.services.dev.ofc
> Accept: */*
>
< HTTP/1.1 200
< Content-Type: application/json;charset=UTF-8
< Transfer-Encoding: chunked
< Date: Wed, 09 May 2018 08:11:33 GMT
<
* Connection #0 to host kms.services.dev.ofc left intact
Just the Java application cannot work!
coreDns version:1.1.2 k8s version:1.10
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 16 (5 by maintainers)
@chrisohaver yes, i actually switched away from https in favor of http today trying to see if it makes a difference (it didn’t 😦 )
it’s really rather puzzling