<p>Following the docs to create a Deployment, I have a .yaml file like this:</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Deployment
...
</code></pre>

<p>I wasn't sure what to make of the "extensions/v1beta1", so I ended up <a href="http://kubernetes.io/docs/api/#v1beta1-v1beta2-and-v1beta3-are-deprecated-please-move-to-v1-asap" rel="noreferrer">here in the API docs</a>.</p>

<p>That makes it sound like I should use a value of "v1", but that doesn't seem to be valid when I try to <code>kubectl apply</code> my .yaml file.</p>

<p>Could someome help me to better understand what the <strong><em>apiVersion</em></strong> values mean and how I can determine the best value to use for each component?</p>

<p>Oh, and I'm using minikube and "kubectl version" reports that client and server are "GitVersion:"v1.3.0".</p>

<p>The docs you linked to are from before the release of Kubernetes 1.0 (a year ago). At that time, we had beta versions of the API and were migrating to the v1 API. Since then, we have introduced multiple API groups, and each API group can have a different version. The version indicates the maturity of the API (alpha is under active development, beta means it will have compatibility/upgradability guarantees, and v1 means it's stable). The deployment API is currently in the second category, so using <code>extensions/v1beta1</code> is correct. </p>
