<p>I have a k8s service/deployment in a minikube cluster (name <code>amq</code> in <code>default</code> namespace:</p>

<pre><code>D20181472:argo-k8s gms$ kubectl get svc --all-namespaces
NAMESPACE     NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
argo          argo-ui      ClusterIP      10.97.242.57     &lt;none&gt;        80/TCP            5h19m
default       amq          LoadBalancer   10.102.205.126   &lt;pending&gt;     61616:32514/TCP   4m4s
default       kubernetes   ClusterIP      10.96.0.1        &lt;none&gt;        443/TCP           5h23m
kube-system   kube-dns     ClusterIP      10.96.0.10       &lt;none&gt;        53/UDP,53/TCP     5h23m
</code></pre>

<p>I spun up infoblox/dnstools, and tried <code>nslookup</code>, <code>dig</code> and <code>ping</code> of <code>amq.default</code> with the following results:</p>

<pre><code>dnstools# nslookup amq.default
Server:     10.96.0.10
Address:    10.96.0.10#53

Name:   amq.default.svc.cluster.local
Address: 10.102.205.126

dnstools# ping amq.default
PING amq.default (10.102.205.126): 56 data bytes
^C
--- amq.default ping statistics ---
28 packets transmitted, 0 packets received, 100% packet loss
dnstools# dig amq.default

; &lt;&lt;&gt;&gt; DiG 9.11.3 &lt;&lt;&gt;&gt; amq.default
;; global options: +cmd
;; Got answer:
;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NXDOMAIN, id: 15104
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;amq.default.           IN  A

;; Query time: 32 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: Sat Jan 26 01:58:13 UTC 2019
;; MSG SIZE  rcvd: 29

dnstools# ping amq.default
PING amq.default (10.102.205.126): 56 data bytes
^C
--- amq.default ping statistics ---
897 packets transmitted, 0 packets received, 100% packet loss
</code></pre>

<p>(NB: pinging the ip address directly gives the same result)</p>

<p>I admittedly am not very knowledgable about the deep workings of DNS, so I am not sure why I can do a lookup and dig for the hostname, but not ping it. </p>

<blockquote>
  <p>I admittedly am not very knowledgable about the deep workings of DNS, so I am not sure why I can do a lookup and dig for the hostname, but not ping it.</p>
</blockquote>

<p>Because <code>Service</code> IP addresses are figments of your cluster's imagination, caused by either iptables or ipvs, and don't actually exist. You can see them with <code>iptables -t nat -L -n</code> on any Node that is running <code>kube-proxy</code> (or <code>ipvsadm -ln</code>), as is described by the helpful <a href="https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#iptables" rel="noreferrer">Debug[-ing] Services</a> page</p>

<p>Since they are not real IPs bound to actual NICs, they don't respond to any traffic other than the port numbers registered in the <code>Service</code> resource. The correct way of testing connectivity against a service is with something like <code>curl</code> or <code>netcat</code> and using the port number upon which you are expecting application traffic to travel.</p>
