只是好奇这个默认命名空间的意图。
提前致谢。
该命名空间存在于使用kubeadm创建的集群中。它包含一个ConfigMap对象cluster-info,它有助于发现和安全引导(基本上,包含集群的CA等)。无需身份验证即可读取此对象。
如果你很好奇:
$ kubectl get configmap -n kube-public cluster-info -o yaml
这个blog post和design document有更多细节:
新:kube-public命名空间
[...]要创建每个人都可以看到的配置图,我们引入了一个新的kube-public命名空间。按照惯例,此命名空间可供所有用户(包括未经过身份验证的用户)读取。 [...]
在初始实现中,kubeadm将创建kube-public命名空间(以及cluster-info配置映射)。这意味着对于没有使用kubeadm引导的集群,这些不存在。 [...]
要完成上一个答案,这些是命名空间kube-public
中的对象:
$ kubectl get_all --namespace kube-public
NAME NAMESPACE
secret/default-token-jd2k2 kube-public
serviceaccount/default kube-public
rolebinding.rbac.authorization.k8s.io/system:controller:bootstrap-signer kube-public
role.rbac.authorization.k8s.io/system:controller:bootstrap-signer kube-public