为什么我不能在完全管理的kubernetes中获取主节点信息?

为什么我不能在完全管理的kubernetes中获取主节点信息?,kubernetes,Kubernetes,各位 请告诉我为什么kubectl get nodes命令不返回完全托管的kubernetes集群中的主节点信息 我在GKE有一个kubernetes星系团。当我键入kubectl get nodes命令时,我得到以下信息 $ kubectl get nodes NAME STATUS ROLES AGE VERSION gke-istio-test-01-pool-01-030fc539-c6xd

各位

请告诉我为什么
kubectl get nodes
命令不返回完全托管的kubernetes集群中的主节点信息

我在GKE有一个kubernetes星系团。当我键入
kubectl get nodes
命令时,我得到以下信息

$ kubectl get nodes
NAME                                      STATUS   ROLES    AGE     VERSION
gke-istio-test-01-pool-01-030fc539-c6xd   Ready    <none>   3m13s   v1.13.11-gke.14
gke-istio-test-01-pool-01-030fc539-d74k   Ready    <none>   3m18s   v1.13.11-gke.14
gke-istio-test-01-pool-01-030fc539-j685   Ready    <none>   3m18s   v1.13.11-gke.14
$ 
此结果包括主节点信息

我很好奇为什么我不能在完全管理的kubernetes集群中获得主节点信息。 我知道完全托管服务的优势在于我们不必管理管理层。我想知道如何创建不显示主节点信息的kubernetes群集。 我试图用“艰难之路”创建一个集群,但找不到任何可以作为提示的信息


至少,我现在只是在学英语。如果我错了,请更正。

因为没有具有该角色的节点。GKE的控制平面托管在他们自己的magic系统中,而不是您自己的节点上。

这是一个好问题

关键是Kubernetes的
kubelet
组件。
托管Kubernetes版本在主机上运行控制平面组件,但它们不运行
kubelet
。你可以在DIY集群上轻松实现同样的目标

kubelet是在每个节点上运行的主要“节点代理”。它可以使用以下之一向apiserver注册节点:主机名;覆盖主机名的标志;或云提供商的特定逻辑

当kubelet flag--register节点为true(默认值)时,kubelet将尝试向API服务器注册自身。这是大多数发行版使用的首选模式


这是否回答了您的问题?谢谢你提供的信息。这是很好的信息,但我想知道为什么我不能使用
kubectl get node
命令获取主节点信息。换句话说,我想知道是什么设置导致了这个结果。谢谢你这么好的回答。这正是我想要的。“注册节点”标志是密钥。我理解。很高兴它起了作用。我不确定,但我怀疑托管Kubernetes根本不会在其主服务器上运行
kubelet
。kubelet的主要功能是运行pods。所以,如果master不应该运行pods,那么就没有理由在那里运行
kubelet
。谢谢您的回答。据我所知,GKE控制飞机托管在GCP的magic系统上。然而,我认为GCP的魔法系统区域中有任何主节点。我想知道是什么设置隐藏了它们。没有隐藏任何内容,因为没有“主节点”。虽然集群连接到一个控制平面(kube apiserver等),但它并没有在属于集群的节点上运行。
$ kubectl get nodes
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   262d   v1.14.1
node01   Ready    <none>   140d   v1.14.1
node02   Ready    <none>   140d   v1.14.1
$