What is Kubernetes?

  1. Home
  2. Kubernetes

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

Kubernetes explained

Modern applications are increasingly built using containers, which are microservices packaged with their dependencies and configurations. Kubernetes (pronounced “koo-ber-net-ees”) is open-source software for deploying and managing those containers at scale—and it’s also the Greek word for helmsmen of a ship or pilot. Build, deliver, and scale containerized apps faster with Kubernetes, sometimes referred to as “k8s” or “k-eights.”

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.

Kubernetes orchestrates clusters of virtual machines and schedules 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, and those pods scale to your desired state.

Kubernetes also automatically manages service discovery, incorporates load balancing, tracks resource allocation, and scales based on compute utilization. And, it checks the health of individual resources and enables apps to self-heal by automatically restarting or replicating containers.

Watch more videos on Kubernetes basics

  1. Watch how Kubernetes works
  2. See Common Kubernetes scenarios

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video.

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video.

Why use Kubernetes?

Keeping containerized apps up and running can be complex because they often involve many containers deployed across different machines. Kubernetes provides a way to schedule and deploy those containers—plus scale them to your desired state and manage their lifecycles. Use Kubernetes to implement your container-based applications in a portable, scalable, and extensible way.

Because container apps are separate from their infrastructure, they become portable when you run them on Kubernetes. Move them from local machines to production among on-premises, hybrid, and multiple cloud environments—all while maintaining consistency across environments.

Define complex containerized applications and deploy them across a cluster of servers or even multiple clusters with Kubernetes. As Kubernetes scales applications according to your desired state, it automatically monitors and maintains container health.

A large open-source community of developers and companies actively builds extensions and plugins that add capabilities such as security, monitoring, and management to Kubernetes. Plus, the Certified Kubernetes Conformance Program requires every Kubernetes version to support APIs that make it easier to use those community offerings.

Get started with Kubernetes

See how to begin deploying and managing containerized applications.

Learn more

Follow the learning path

Get hands-on experience with Kubernetes components, capabilities, and solutions.

Get the guide

Build on a complete Kubernetes platform

While Kubernetes itself offers portability, scalability, and extensibility, adding end-to-end development, operations, and security control allows you to deploy updates faster—without compromising security or reliability—and save time on infrastructure management. As you adopt Kubernetes, also consider implementing:

  1. Infrastructure automation or serverless Kubernetes to eliminate routine tasks like provisioning, patching, and upgrading.

    See examples

  2. Tools for containerized app development and continuous integration and continuous deployment (CI/CD) workflows.

    See examples

  3. Services to manage security, governance, identity and access.

    See examples

Harness Kubernetes with DevOps practices

As a Kubernetes app grows—adding containers, environments, and teams—release frequency tends to increase, along with developmental and operational complexity. Employing DevOps practices in Kubernetes environments allows you to move quickly at scale with enhanced security.

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

Infrastructure as code establishes consistency and visibility of compute resources across teams—reducing the likelihood of human error. This practice works 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

Shorten the time between bugs and fixes with a complete view of your resources, cluster, Kubernetes API, containers, and code—from container health monitoring to centralized logging. That view helps you prevent resource bottlenecks, trace malicious requests, and keep your Kubernetes applications healthy.

See how real-time container insights work

Bring real-time observability into your DevOps workflow without sacrificing velocity. 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 like 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.

Learn more about Kubernetes deployment strategy

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

FAQs – Kubernetes

  • 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 Kubernetes.

  • 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.

    See Kubernetes deployment strategies

  • Deployment to Kubernetes using DevOps typically involves a respository 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 and Docker work together.

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

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

    Learn more about Kubernetes vs. Docker


More about Kubernetes

Learn about AKS

Watch AKS videos and on demand Azure webinars for demos, top features, and technical sessions.

Join other AKS users on GitHub, at KubeCon, or at a Kubernetes Meetup near you.

Follow step-by-step AKS tutorials:

Open source and Azure

Ready when you are—try Kubernetes free on Azure

Start free


Leave a Comment

Your email address will not be published. Required fields are marked *