为什么在全托管kubernetes中无法获取主节点信息?

yu *_*ito 5 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   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
$ 
Run Code Online (Sandbox Code Playgroud)

当然,我可以获得工作节点信息。此信息与 GKE Web 控制台相同。顺便说一句,我还有另一个 kubernetes 集群,它是由三个树莓派和 kubeadm 构建的。kubectl get nodes当我向该集群键入命令时,我得到以下结果。

$ 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
$
Run Code Online (Sandbox Code Playgroud)

该结果包括主节点信息。

我很好奇为什么我无法获取完全托管的 kubernetes 集群中的主节点信息。据我了解,完全托管服务的优点是我们不必管理管理层。我想知道如何创建一个不显示主节点信息的kubernetes集群。我尝试用“困难的方式”创建一个集群,但找不到任何可以作为提示的信息。

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

Iva*_*van 4

这是个好问题!

\n\n

关键是kubeletKubernetes 的组件。
\n托管 Kubernetes 版本在主节点上运行控制平面组件,但它们不运行kubelet. 您可以在 DIY 集群上轻松实现相同的目标。

\n\n
\n

kubelet 是在每个节点上运行的主要 \xe2\x80\x9cnode 代理\xe2\x80\x9d。是可以注册的节点:主机名;覆盖主机名的标志;或云提供商的特定逻辑。

\n
\n\n

https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/

\n\n
\n

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

\n
\n\n

https://kubernetes.io/docs/concepts/architecture/nodes/#self-registration-of-nodes

\n