<p>I have 3 masters, several workers and Calico as cni. Pods created on masters get <code>172.17.0.*</code> IPs and this is docker network. Pods on workers get IP from calico pool as it should be. <code>calicoctl</code> shows <code>status ok</code> for all nodes.</p>
<p>Also I have same kubelet parameters and config files and I don't have any pod cidr settings there. <code>Kube-system/calico</code> pods are up and running and logs do not show any reason. How can I set correct cidr for pods on masters?</p>
<pre><code>kubectl describe node master1 | egrep -i 'cidr|calico': 

    projectcalico.org/IPv4Address: 192.168.0.26/24
    projectcalico.org/IPv4IPIPTunnelAddr: 10.129.40.64
    PodCIDR:                      10.128.0.0/24
    PodCIDRs:                     10.128.0.0/24
</code></pre>
<p>pod details:</p>
<pre><code>kubectl describe po mypod | egrep -i 'master|ip'
Node:         master1/192.168.0.26
IP:           172.17.0.3
IPs:
  IP:           172.17.0.3
</code></pre>

<p>Posted community wiki based on comments for better visibility. Feel free to expand it.</p>
<hr />
<p>The solution for the issue is to add flag <code>--network-plugin=cni</code> to Kubelet startup options on the masters nodes (from the @mzv comment):</p>
<blockquote>
<p>I needed to add &quot;--network-plugin=cni&quot; to kubelet startup options</p>
</blockquote>
<p>Instructions on how to add this flag to the Kubelet <a href="https://stackoverflow.com/questions/49278317/adding-network-flag-network-plugin-cni-to-kubelet/49285339#49285339">can be found here</a>.</p>
