<p>I've a spring-boot application which i want to deploy on OVH public cloud.</p>

<p>I need t achieve the goal of deploying multiple instances of the same application, and each instance has to have its own resources (such as MySQL database).</p>

<p>Each instance has to be accessed with a special url. For example:</p>

<ul>
<li>The first instance is accessable from <a href="http://domainname/instance1/index.html" rel="nofollow noreferrer">http://domainname/instance1/index.html</a></li>
<li>The second instance is accessable from <a href="http://domainname/instance2/index.html" rel="nofollow noreferrer">http://domainname/instance2/index.html</a></li>
</ul>

<p>I'm really new to everything which concerns cloud computing and deployments.</p>

<p>From what i read on the internet, my doubt is to </p>

<ul>
<li><p>Use Docker where each instance has to be running inside its own container (to have the resources separated for each instance)</p></li>
<li><p>Use Kubernetes to achieve the goal of having each instance accessable from a specific url.</p></li>
</ul>

<p>Am i wrong ? any online courses / resources / videos which can help would be awsome.</p>

<p>Thanks in advance.</p>

Mssm
<p>Basically, <a href="https://www.docker.com/" rel="nofollow noreferrer">Docker</a> is a platform to develop, deploy, and run applications inside containers, therefore containers represent run-time environment for images. <a href="https://kubernetes.io/" rel="nofollow noreferrer">Kubernetes</a> plays the role as an orchestrator and provides sufficient way for building communication channels between containers in the cluster and uses Docker by default as a container runtime.</p>

<p>There are some essential <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/" rel="nofollow noreferrer">concepts</a> in Kubernetes that describe a cluster core <a href="https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/" rel="nofollow noreferrer">components</a> and application workload, thus define a desired state of the cluster.</p>

<p>Kubernetes <a href="https://kubernetes.io/docs/concepts/#kubernetes-objects" rel="nofollow noreferrer">objects</a> represent abstraction level of cluster management operations  and containerized applications run-time environment within associated resources in Kubernetes API.</p>

<p>I would focus on the Kubernetes resources that are most crucial in application deployment lifecycle.</p>

<p><a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="nofollow noreferrer">Deployment</a> is the main mechanism which defines how are Pods should to be implemented within a cluster and provides specific configuration for further application run-time workflow.</p>

<p><a href="https://kubernetes.io/docs/concepts/services-networking/service/" rel="nofollow noreferrer">Service</a> describes a way how the particular Pod will communicate with other resources within a cluster, providing endpoint IP address and port where your application will respond. </p>

<p><a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">Ingress</a> exposes Kubernetes service outside the cluster with some exclusive benefits like load balancing, SSL/TLS ceritficate termination, etc.</p>

<p>You can get more relevant information about Kubernetes implementation in OVH within particular guide <a href="https://docs.ovh.com/gb/en/kubernetes/" rel="nofollow noreferrer">chapter</a>.</p>
