<p>I am new to the kubernetes environment. While deploying an application, I could figure out how to do auto scaling but did not quite understand how high availability is ensured? If its not, how can I configure it?</p>

<p>Edit : By HA, I mean how to ensure that pod is scheduled across multiple nodes to ensure HA on pod/service level.</p>

<p>Please guide. Thanks in advance! :)</p>

<blockquote>
  <p>By HA, I mean how to ensure that pod is scheduled across multiple
  nodes to ensure HA on pod/service level.</p>
</blockquote>

<p>I'm guessing your app is cloud compatible and can be scaled, In this situation there are multiple feature your can take advantage of:</p>

<ul>
<li><code>DaemonSets</code>: containers on <code>demonsets</code> will be run on every single node. Unless you include/exclude certain nodes.</li>
<li><code>Deployments</code>: <code>Deployments</code> are next generation of <code>Replication Controllers</code>. Using <code>deployments</code> you can easily scale your application as well as ensure availability of certain number of pods. Please note in order to be available on node failure, you need to set node affinity rules on the pods. In order to do that you need to set it in the pod templates. In 1.6 affinity can be specified as a field in <code>PodSpec</code>, rather than using <code>annotations</code>.</li>
</ul>
