Deploying an application

Find out how to deploy a "Hello World" application on an OVHcloud Managed Kubernetes cluster

Last updated 2nd May, 2022.


OVHcloud Managed Kubernetes service provides you Kubernetes clusters without the hassle of installing or operating them. This guide will explain how to deploy a simple Hello World application on a OVHcloud Managed Kubernetes cluster.


  • an OVHcloud Managed Kubernetes cluster
  • at least one node on the cluster (see the ordering a node guide for details)
  • a well configured kubectl (see the configuring kubectl guide for details)

When a LoadBalancer Service resource is created inside a Managed Kubernetes cluster, an associated Public Cloud Load Balancer is automatically created, allowing public access to your K8S application. The Public Cloud Load Balancer service is hourly charged and will appear in your Public Cloud project. For more information, please refer to the following documentation: Network Load Balancer price


Step 1 - Deploy your first application

The following command will deploy a simple application (nginx image) using a Kubernetes Deployment and a Kubernetes Service.

Create a hello.yml file for our ovhplatform/hello Docker image:

apiVersion: v1
kind: Service
  name: hello-world
    app: hello-world
  type: LoadBalancer
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
    app: hello-world
apiVersion: apps/v1
kind: Deployment
  name: hello-world-deployment
    app: hello-world
  replicas: 1
      app: hello-world
        app: hello-world
      - name: hello-world
        image: ovhplatform/hello
        - containerPort: 80

And apply the file:

kubectl apply -f hello.yml -n default

After applying the YAML file, a new hello-world service and the corresponding hello-world-deployment deployment are created in the default namespace:

$ kubectl apply -f hello.yml -n default
service/hello-world created
deployment.apps/hello-world-deployment created

The application you have just deployed is a simple Nginx server with a single static Hello World page. Basically it just deploys the Docker image ovhplatform/hello

Step 2 - List the pods

You have just deployed a hello-world service in a pod in your worker node. Let's verify that everything is correct by listing the pods.

kubectl get pods -n default -l app=hello-world

You should see your newly created pod:

$ kubectl get pods -n default -l app=hello-world
NAME                                           READY     STATUS    RESTARTS   AGE
hello-world-deployment-d98c6464b-7jqvg         1/1       Running   0          47s

default namespace is the Kubernetes namespace by default so you don't need to specify it in your kubectl commands.

Step 3 - List the deployments

You can also verify the deployment is active:

kubectl get deploy -n default -l app=hello-world

And you will see the hello-service-deployment:

$ kubectl get deploy -n default -l app=hello-world
NAME                          DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-world-deployment        1         1         1            1           1m

Step 4 - List the services

And now you're going to use kubectl to see your service:

kubectl get services -n default -l app=hello-world

You should see your newly created service:

$ kubectl get services -n default -l app=hello-world
NAME          TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)        AGE
hello-world   LoadBalancer   80:31885/TCP   6m54s

If under EXTERNAL-IP you get <pending>, don't worry, the provisioning of the LoadBalancer can take a minute or two, please try again in a few moments.

Step 5 - Test your service

Retrieve the URL of the hello-world application:

$ export SERVICE_URL=$(kubectl get svc hello-world -n default -o jsonpath='{.status.loadBalancer.ingress[].ip}')

$ echo "http://$SERVICE_URL/"

Copy/paste the URL in your browser to see your new running hello-world application:

Testing your service

You can even test the newly created service, in command line, with curl:


You should see your newly created service:

<!doctype html>

<title>OVH K8S</title>
.title {
font-size: 3em;
padding: 2em;
text-align: center;
<div class="title">
<p>Hello from Kubernetes!</p>
<img src="./ovh.svg"/>

If you have an error message "Failed to connect to port 80: Connection refused", it's normal. The service is starting, so you have to wait a few seconds in order to test it again.

Step 6 - Clean up

At the end you can proceed to clean up by deleting the service and the deployment.

Let's begin by deleting the service:

kubectl delete service hello-world -n default

If you list the services you will see that hello-world doesn't exist anymore:

$ kubectl delete service hello-world -n default
service "hello-world" deleted

$ kubectl get services -l app=hello-world -n default
No resources found in default namespace.

Then, you can delete the deployment:

kubectl delete deploy hello-world-deployment -n default

And now if you list you deployment you will find no resources:

$ kubectl delete deploy  hello-world-deployment -n default
deployment.apps "hello-world-deployment" deleted

$ kubectl get deployments -n default -l app=hello-world
No resources found in default namespace.

If now you list the pods:

kubectl get pods -n default -l app=hello-world

you will see that the pod created for hello-world has been deleted too:

$ kubectl get pods -n default -l app=hello-world
No resources found in default namespace.

Go further

To learn more about using your Kubernetes cluster the practical way, we invite you to look at our OVHcloud Managed Kubernetes doc site.

Join our community of users.

Cette documentation vous a-t-elle été utile ?

N’hésitez pas à nous proposer des suggestions d’amélioration afin de faire évoluer cette documentation.

Images, contenu, structure… N’hésitez pas à nous dire pourquoi afin de la faire évoluer ensemble !

Vos demandes d’assistance ne seront pas traitées par ce formulaire. Pour cela, utilisez le formulaire "Créer un ticket" .

Merci beaucoup pour votre aide ! Vos retours seront étudiés au plus vite par nos équipes..

Ces guides pourraient également vous intéresser...

OVHcloud Community

Accedez à votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres d'OVHcloud Community.

Echanger sur OVHcloud Community

Conformément à la Directive 2006/112/CE modifiée, à partir du 01/01/2015, les prix TTC sont susceptibles de varier selon le pays de résidence du client
(par défaut les prix TTC affichés incluent la TVA française en vigueur).