对此默认命名空间的意图感到好奇。
提前致谢。
答案 0 :(得分:21)
该命名空间存在于使用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进行自举的集群,这些不会存在。 [...]
答案 1 :(得分:0)
要完成上一个答案,这些是名称空间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