<p>I am trying to understand the relationship between Kubernetes and OpenStack. I am confused around the topic of deploying Kubernetes on OpenStack and doing my research I found there are too many tutorials. My understanding of the sequence is: </p>

<ol>
<li>Start several <code>nova</code> instances on OpenStack.</li>
<li>Install Kubernetes master on one instance and install Kubernetes node on other instances.</li>
<li>Submit YAML file using <code>kubectl</code> and Kubernetes will create and deploy my application.</li>
</ol>

<p>As for Kubernetes's self-healing capacity, can Kubernetes restart some of the failed <code>nova</code> instances? Which component in Kubernetes is responsible for restart/reboot/delete/re-provision <code>nova</code> instances? Is it Kubernetes master? If so, what will happen if the Kubernetes master is down and cannot be recovered?</p>

<p>1, 2 and 3 are correct.</p>

<blockquote>
  <p>Self-healing</p>
</blockquote>

<p>You can deploy in master HA configuration. The recommended way is either 3 or 5 master with a quorum of <code>(n + 1)/ 2</code></p>

<blockquote>
  <p>Can Kubernetes reprovision/restart some the failed nova instances?</p>
</blockquote>

<p>Not really. That's after nova to manage all the server services. Kubernetes has an <a href="https://github.com/kubernetes/kubernetes/tree/master/pkg/cloudprovider/providers/openstack" rel="nofollow noreferrer">OpenStack module</a> that allows it to interact with OpenStack components like create external load balancer and creates volumes that can be used with your workloads/pods/containers.</p>

<p>You can either use <a href="https://kubernetes.io/docs/setup/independent/" rel="nofollow noreferrer">kubeadm</a> or <a href="https://github.com/kubernetes-incubator/kubespray" rel="nofollow noreferrer">kubespray</a> to bootstrap a cluster.</p>

<p>Hope it helps.</p>
