<p>I have defined a new service with a ClusterIP.</p>
<pre><code>[ciuffoly@master-node ~]$ kubectl get services
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
kubernetes   ClusterIP      10.96.0.1       &lt;none&gt;          443/TCP          4d1h    
test-reg     ClusterIP      10.102.196.35   &lt;none&gt;          5000/TCP         58m
test-web     LoadBalancer   10.108.151.13   192.168.1.125   80:30001/TCP     73m
</code></pre>
<p>The pod is running on worker-node1 and I can connect to this server with the worker-node1 plumbed on ethernet ip.</p>
<pre><code>[ciuffoly@worker-node1 ~]$ ip addr show|grep &quot;192\.168\.1\.&quot;
inet 192.168.1.20/24 brd 192.168.1.255 scope global noprefixroute ens33

[ciuffoly@worker-node1 ~]$ telnet 192.168.1.20 5000    
Connected to 192.168.1.20.
Escape character is '^]'.
^]
telnet&gt; q

[ciuffoly@master-node ~]$ telnet 192.168.1.20 5000
Connected to 192.168.1.20.
Escape character is '^]'.
^]
telnet&gt; q
</code></pre>
<p>But I cannot connect to this service with the ClusterIP</p>
<pre><code>[ciuffoly@master-node ~]$ telnet 10.102.196.35 5000
Trying 10.102.196.35...
^C
</code></pre>
<p>Following the answers I have tested also NodePort but I still have the same problem.</p>
<pre><code>[ciuffoly@master-node ~]$ kubectl get services|grep reg
test-reg     NodePort       10.111.117.116   &lt;none&gt;          5000:30030/TCP   5m41s

[ciuffoly@master-node ~]$ kubectl delete svc test-reg
service &quot;test-reg&quot; deleted
[ciuffoly@master-node ~]$ netstat -an|grep 30030

[ciuffoly@master-node ~]$ kubectl apply -f myreg.yaml
myreg.yamldeployment.apps/test-reg unchanged
service/test-reg created
[ciuffoly@master-node ~]$ netstat -an|grep 30030
tcp        0      0 0.0.0.0:30030           0.0.0.0:*               LISTEN
</code></pre>
<p>This does not work</p>
<pre><code>[ciuffoly@master-node ~]$ telnet master-node  30030
Trying 192.168.1.10...
^C
</code></pre>
<p>This works</p>
<pre><code>[ciuffoly@master-node ~]$ telnet worker-node1  30030
Trying 192.168.1.20...
Connected to worker-node1.
Escape character is '^]'.
^]
telnet&gt; q
Connection closed.
</code></pre>

<p>This is a community wiki answer posted for better visibility. Feel free to expand it.</p>
<p>As already confirmed by andrea ciuffoli, switching from Flannel to Calico solved the issue.</p>
<p>Flannel is a very simple overlay network that satisfies the Kubernetes requirements.</p>
<p>On the other hand, Calico is an open source networking and network security solution for containers, virtual machines, and native host-based workloads. Calico supports multiple data planes including: a pure Linux eBPF dataplane, a standard Linux networking dataplane, and a Windows HNS dataplane. Calico provides a full networking stack but can also be used in conjunction with <a href="https://docs.projectcalico.org/networking/determine-best-networking#calico-compatible-cni-plugins-and-cloud-provider-integrations" rel="nofollow noreferrer">cloud provider CNIs</a> to provide network policy enforcement.</p>
<p>It's hard to say what was the sole reason behind the final solution but you can find some details about <a href="https://rancher.com/blog/2019/2019-03-21-comparing-kubernetes-cni-providers-flannel-calico-canal-and-weave/" rel="nofollow noreferrer">Comparing Kubernetes CNI Providers: Flannel, Calico, Canal, and Weave</a>.</p>
