title: kubectl - what does Client vs Server?
body: <p>This is a complete noob question, but I can't figure out. When I type <code>kubectl version</code> into terminal I get:</p>
  
  <pre><code>Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.8", GitCommit:"ec6eb119b81be488b030e849b9e64fda4caaf33c", GitTreeState:"clean", BuildDate:"2020-03-12T21:00:06Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"darwin/amd64"}
  Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.0", GitCommit:"9e991415386e4cf155a24b1da15becaa390438d8", GitTreeState:"clean", BuildDate:"2020-03-25T14:50:46Z", GoVersion:"go1.13.8", Compiler:"gc", Platform:"linux/amd64"}
  </code></pre>
  
  <p>what exactly is <code>client</code> and <code>server</code> in the context of kubectl? Is former for accessing a remote cluster and latter for running cluster on your own machine?</p>
  
  <p>And one more question: how do I downgrade the version of the server? I followed instructions in the <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos" rel="noreferrer">official docs</a> but that only changes the server version. From some googling around I understand that the server version was set by Docker? How do I change it + will it break docker if I do?</p>
  
  <p>Sorry if silly questions - I'm completely new to k8s.</p>