Your first application deployment

Once you have a running Kubernetes cluster, the next step is to deploy your containerized applications on top of it. In Kubernetes, a Deployment is responsible for creating and updating instances of your application. The master will schedule application instances created by the deployment onto Nodes.

After creating application instances, a Deployment Controller continuously watches them, and replaces an instance if the Node hosting it goes down or it is deleted. This provides a self-healing mechanism to address machine failure and machine maintenance.

In a pre-orchestration world, installation scripts would often be used to start applications, but they did not allow recovery from machine failure. By both creating your application instances and keeping them running across Nodes, Deployments provide a fundamentally different approach to application management.


  • Deployments
  • Kubectl

A Deployment is responsible for creating and updating instances of your application

Deploying your first app on Kubernetes

The Deployment container image and replica count are defined at creation time but can be changed after creation. Updating Deployments will be covered in Modules 5 and 6.

We’ll use the Kubernetes command line interface Kubectl to create and manage a Deployment. Kubectl interacts with the cluster via the API. During this bootcamp you will learn the most common Kubectl commands needed to run your applications on a Kubernetes cluster.

Applications need to be packaged into one of the supported container formats in order to be deployed on Kubernetes

In this bootcamp we’ll use a NodeJS application packaged in a Docker container. The source code and the Dockerfile are available at [url to github repo].

Now that you know what Deployments are, let’s go to the online tutorial and deploy our first app!