What is Kubernetes?

Kubernetes is an open-source orchestration software for deploying, managing and scaling containers

Kubernetes explained

Modern applications are increasingly built using containers – microservices packaged with their dependencies and configurations. Kubernetes, or k8s for short, is an open-source software for deploying and managing those containers at scale. With Kubernetes, you can build, deliver and scale containerised apps faster.

Explore Kubernetes with this simple learning path

How Kubernetes works

As applications grow to span multiple containers deployed across multiple servers, operating them becomes more complex. To manage this complexity, Kubernetes provides an open-source API that controls how and where those containers will run.

It also provides the ability to orchestrate a cluster of virtual machines and schedule containers to run on those virtual machines based on their available compute resources and the resource requirements of each container. Containers are grouped into pods, the basic operational unit for Kubernetes, which can be scaled to your desired state.

Kubernetes helps manage service discovery, incorporate load balancing, track resource allocation, scale based on compute utilisation, check the health of individual resources and enable apps to self-heal by automatically restarting or replicating containers.

Learn more about Kubernetes basics

How Kubernetes works

Why use Kubernetes?

Implement container-based environments in a portable, scalable and extensible way.

Portability

Move containerised workloads from local development machines to production seamlessly. Orchestrate containers consistently in different environments across on-premises infrastructure and public and hybrid clouds.

Scalability

Define complex containerised applications and deploy them globally across a cluster of servers – or even multiple clusters – as Kubernetes optimises resources according to your desired state. With a built-in auto-scaler, Kubernetes can easily scale your application horizontally while automatically monitoring and maintaining container health.

Extensibility

Access a wide and ever-growing collection of extensions and plugins created by the developers and companies that form the Kubernetes community. A conformant Kubernetes service allows you to take full advantage of these community offerings and add capabilities such as security, monitoring and management.

Achieve agility at scale with Kubernetes and DevOps

As containers, environments and the teams that work with them multiply, release frequency can increase – along with developmental and operational complexity. Move quickly at scale with enhanced security by employing DevOps in Kubernetes environments, you can move quickly at scale with enhanced security.

Deliver code faster with continuous integration and continuous deployment (CI/CD)

While containers provide a consistent application packaging format that eases the collaboration between development and operations teams, CI/CD can accelerate the move from code to container and to Kubernetes cluster in minutes by automating those tasks.

Set up CI/CD for Kubernetes

Manage resources effectively with infrastructure as code

Infrastructure as code promotes consistency and visibility of compute resources across teams – reducing the likelihood of human error. This practice works hand in hand with the declarative nature of Kubernetes applications powered by Helm. Combining the two allows you to define apps, resources and configurations in a reliable, trackable and repeatable way.

Deploy a Kubernetes cluster with Terraform

Accelerate the feedback loop with constant monitoring

Immutable containers, frequent releases and an abstracted orchestration layer make observability more challenging and even more critical. To shorten the time between bugs and fixes, you’ll need a complete view of your resources, cluster, Kubernetes API, containers and code – from container health monitoring to centralised logging. That view helps to prevent resource bottlenecks, trace malicious requests and keep your Kubernetes applications healthy.

See how real-time container insights work

Balance speed and security with DevOps

Get built-in, real-time observability as part of the DevOps workflow. Apply compliance checks and reconfigurations automatically to secure your build and release pipeline – and your Kubernetes application as a result.

See continuous security in action

Example DevOps workflow with Kubernetes

  1. 1Rapidly iterate, test and debug different parts of an application together in the same Kubernetes cluster.
  2. 2Merge and check code into a GitHub repository for continuous integration. Then, run automated builds and tests as a part of continuous delivery.
  3. 3Verify the source and integrity of container images. Images are held in quarantine until they pass scanning.
  4. 4Provision Kubernetes clusters with tools such as Terraform. Helm charts installed by Terraform define the desired state of app resources and configurations.
  5. 5Enforce policies to govern deployments to the Kubernetes cluster.
  6. 6The release pipeline automatically executes pre-defined deployment strategy with each code.
  7. 7Add policy audit and automatic remediation to the CI/CD pipeline. For example, only the release pipeline has permission to create new pods in your Kubernetes environment.
  8. 8Enable app telemetry, container health monitoring and real-time log analytics.
  9. 9Address issues with insights and inform plans for the next sprint.

Build on the strengths of Kubernetes with Azure

Automate provisioning, upgrading, monitoring and scaling with the fully managed Microsoft Azure Kubernetes Service (AKS). Get serverless Kubernetes, a simpler development-to-production experience and enterprise-grade security and governance.

Learn more about AKS

Kubernetes belongs to the community

Kubernetes was created by – and thrives because of – the thousands of individuals and hundreds of corporations who have given their wisdom, code and effort to the project. Build the success of your software on top of their impassioned, continuing contributions.

30,000
Contributors
150,000
Commits
Top project
in GitHub

Open-source software with enterprise commitment

To make Kubernetes easier for organizations to adopt – and easier for developers to use – Microsoft has tripled the number of employees who participate in the open-source project in just three years. Now the third-leading corporate contributor, Microsoft works to make Kubernetes more enterprise-friendly and accessible by bringing the latest learnings and best practices from working with diverse customers to the Kubernetes community.

Get started with Kubernetes on Azure

Create a CI/CD pipeline

Prepare your application

Deploy to Kubernetes

View application

Step 1 of 1

Create an Azure DevOps project to get started with CI/CD best practices.

Step 1 of 1

Select a built-in application template or bring your own code.

Then, select Kubernetes as the deployment target.

Step 1 of 1

Create a new AKS cluster – or choose an existing cluster.

Step 1 of 1

When your cluster is ready, Azure DevOps deploys the container to the AKS cluster. Click on the external endpoint to view your application.

Once your application is live, follow the links to see how you can modify it.

FAQ – Kubernetes

  • Kubernetes and Docker work together.

    Docker provides an open standard for packaging and distributing containerised applications. Using Docker, you can build and run containers, and store and share container images.

    Kubernetes orchestrates and manages the distributed, containerised applications that Docker creates. It also provides the infrastructure needed to deploy and run those applications on a cluster of machines.

  • A Kubernetes deployment allows you to describe your desired application deployment state. Kubernetes scheduler ensures the actual state matches your desired state – and maintains that state in the event one or more pods crash. Kubernetes deployments also allow you to consistently upgrade your applications without downtime.

    Watch a full discussion of this topic
  • Deployment to Kubernetes using DevOps typically involves a repository such as Git for version management. The repository serves as the beginning of the CI/CD line. Depending on the approach you use, changes in the repository trigger integration, build, delivery and deployment activities.

    See how AKS works with Azure DevOps in detail
  • Kubernetes is useful in scenarios ranging from moving applications to the cloud to simplifying challenges in machine learning and AI.

    Key use cases include:

  • See best practices and architectural patterns created by the thousands of technical professionals and partners who use Azure.

  • Follow this curated journey to begin learning Kubernetes.

Resources

Ready when you are – try Kubernetes for free on Azure