<p>Let say I want to find the kubelet and apiserver version of my k8s master(s), what's the best way to do it?</p>

<p>I am aware of the following commands:</p>

<pre><code>kubectl cluster-info
</code></pre>

<p>which only shows the endpoints.</p>

<pre><code>kubectl get nodes; kubectl describe node &lt;node&gt;;
</code></pre>

<p>which shows very detail information but only the nodes and not master.</p>

<p>There's also</p>

<pre><code>kubectl version
</code></pre>

<p>but that only shows the kubectl version and not the kubelet or apiserver version.</p>

<p>What other commands can I use to identify the properties of my cluster?</p>

<p><code>kubectl version</code> also shows the apiserver version. For example, this is the output when I run it:</p>

<pre><code>$ kubectl version
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.4", GitCommit:"3eed1e3be6848b877ff80a93da3785d9034d0a4f", GitTreeState:"clean"}
</code></pre>

<p>The second line ("Server Version") contains the apiserver version. There isn't a way to get the master's kubelet version if it isn't registered as one of the nodes (which it isn't if it isn't showing up in <code>kubectl get nodes</code>), but in most deployments it'll be the same version as the apiserver.</p>
