<p>Just curious about the intent for this default namespace.</p>

Steven Barragán
<p>That namespace exists in clusters created with kubeadm for now. It contains a single ConfigMap object, cluster-info, that aids discovery and security bootstrap (basically, contains the CA for the cluster and such). This object is readable without authentication.</p>

<p>If you are courious:</p>

<pre><code>$ kubectl get configmap -n kube-public cluster-info -o yaml
</code></pre>

<p>There are more details in this <a href="https://kubernetes.io/blog/2017/01/stronger-foundation-for-creating-and-managing-kubernetes-clusters/" rel="noreferrer">blog post</a> and the <a href="https://github.com/kubernetes/community/blob/master/contributors/design-proposals/cluster-lifecycle/bootstrap-discovery.md#new-kube-public-namespace" rel="noreferrer">design document</a>:</p>

<blockquote>
  <h2>NEW: kube-public namespace</h2>
  
  <p>[...] To create a config map that everyone can see, we introduce a new kube-public namespace. This namespace, by convention, is readable by all users (including those not authenticated). [...]</p>
  
  <p>In the initial implementation the kube-public namespace (and the cluster-info config map) will be created by kubeadm. That means that these won't exist for clusters that aren't bootstrapped with kubeadm. [...]</p>
</blockquote>
