<p>everyone.</p>

<p>Please teach me why <code>kubectl get nodes</code> command does not return master node information in full-managed kubernetes cluster.  </p>

<p>I have a kubernetes cluster in GKE. When I type <code>kubectl get nodes</code>command, I get below information.</p>

<pre><code>$ kubectl get nodes
NAME                                      STATUS   ROLES    AGE     VERSION
gke-istio-test-01-pool-01-030fc539-c6xd   Ready    &lt;none&gt;   3m13s   v1.13.11-gke.14
gke-istio-test-01-pool-01-030fc539-d74k   Ready    &lt;none&gt;   3m18s   v1.13.11-gke.14
gke-istio-test-01-pool-01-030fc539-j685   Ready    &lt;none&gt;   3m18s   v1.13.11-gke.14
$ 
</code></pre>

<p>Off course, I can get worker nodes information. This information is same with GKE web console.
By the way, I have another kubernetes cluster which is constructed with three raspberry pi and kubeadm. When I type <code>kubectl get nodes</code> command to this cluster, I get below result.</p>

<pre><code>$ kubectl get nodes
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   262d   v1.14.1
node01   Ready    &lt;none&gt;   140d   v1.14.1
node02   Ready    &lt;none&gt;   140d   v1.14.1
$
</code></pre>

<p>This result includes master node information.  </p>

<p>I'm curious why I cannot get the master node information in full-managed kubernetes cluster. 
I understand that the advantage of a full-managed service is that we don't have to manage about the management layer. I want to know how to create a kubernetes cluster which the master node information is not displayed.
I tried to create a cluster with "the hard way", but couldn't find any information that could be a hint.</p>

<p>At the least, I'm just learning English now. Please correct me if I'm wrong.</p>

yu saito
<p>It's a good question!</p>

<p>The key is <code>kubelet</code> component of the Kubernetes.<br>
Managed Kubernetes versions run Control Plane components on masters, but they don't run <code>kubelet</code>. You can easily achieve the same on your DIY cluster.</p>

<blockquote>
  <p>The kubelet is the primary “node agent” that runs on each node. It can <strong>register</strong> the node with the apiserver using one of: the hostname; a flag to override the hostname; or specific logic for a cloud provider.</p>
</blockquote>

<p><a href="https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/" rel="nofollow noreferrer">https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/</a></p>

<blockquote>
  <p>When the kubelet flag --register-node is true (the default), the kubelet will attempt to <strong>register</strong> itself with the API server. This is the preferred pattern, used by most distros.</p>
</blockquote>

<p><a href="https://kubernetes.io/docs/concepts/architecture/nodes/#self-registration-of-nodes" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/architecture/nodes/#self-registration-of-nodes</a></p>
