Favicon of kubernetes

kubernetes

An open source system for deploying, scaling, and managing containerized applications across clusters of hosts.

Kubernetes is a system for deploying, scaling, and managing containerized applications across a cluster of machines. Rather than placing and monitoring containers by hand on individual servers, you describe the workloads you want running and Kubernetes handles scheduling, restarts, and scaling across the hosts available to it. The project builds on over a decade of experience running production workloads at Google in an internal system called Borg, combined with ideas from the wider community, and it's hosted by the Cloud Native Computing Foundation (CNCF). It's aimed at platform engineers, SREs, and infrastructure teams operating fleets of containers, not at someone running a single app on a single box.

Key features

  • Automated scheduling: places containerized workloads onto available hosts in the cluster without manual placement.
  • Scaling: adjusts the number of running instances of an application based on load or configuration.
  • Self-healing: restarts and reschedules containers that crash or stop responding, keeping the desired state running.
  • Deployment management: handles rollout and maintenance of applications across many machines from a single description of the desired state.
  • Extensible via published components: Kubernetes ships a list of published Go modules that other tools and controllers can build against (direct use of the k8s.io/kubernetes module as a general-purpose library is not supported).
  • Formal governance: development is guided by a documented framework of principles, values, and processes, with a steering committee overseeing project direction and an enhancements repository tracking new features and releases.
  • Community meetings and adopter visibility: a public calendar lists every community meeting in one place, and a User Case Studies site collects real-world examples of organizations deploying or migrating to Kubernetes.

Ideal use cases

Kubernetes fits teams running many containerized services across multiple hosts, where manual placement and recovery would not scale. It's a good match if you need workloads to recover automatically from a failed node or crashed process, or if your organization wants one common orchestration layer across cloud and on-premises infrastructure. Teams building internal platforms on top of container orchestration, or running microservices architectures with dozens of independently deployed services, are the typical audience. Organizations that want to point to how others have adopted the same system can check the linked case studies site for examples across industries.

It is not a good fit for a single small application running on one server. The cluster itself (control plane, networking, storage integration) is real operational overhead, and running Kubernetes just to host one lightweight service usually costs more in complexity than it saves. It also assumes your team is willing to learn its configuration model and terminology (pods, services, deployments, and so on), which takes real investment before it pays off. If you just need a process manager or a single-host container runtime, simpler tools will get you there faster.

Installation

The README documents building Kubernetes from source in two ways, depending on your environment.

If you have a working Go environment:

git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make

If you have a working Docker environment instead:

git clone https://github.com/kubernetes/kubernetes
cd kubernetes
make quick-release

For actually running and using Kubernetes day to day, rather than building it from source, the project points users to the documentation at kubernetes.io, and to the community repository for details on contributing code, building from source in more depth, and who to contact about what. There's also a free course, "Scalable Microservices with Kubernetes," linked from the README for people getting started.

If you run into trouble, the README directs you first to a troubleshooting guide, and from there to the project's community communication channels if the guide doesn't resolve the issue. For anyone wanting to consume Kubernetes packages in other applications rather than run a cluster, the README also links a list of published components, though it's explicit that using the main k8s.io/kubernetes module or its packages directly as a general-purpose library is not a supported pattern.

Frequently asked questions

Share:

Stars
123.5K
Forks
43.5K
Last commit
3 hours ago
Repository age
12 years
License
Apache-2.0
Self-hosted
No
Activity score
92/100
View Repository
Built with:

Similar to kubernetes

Favicon

 

  
  
Favicon

 

  
  
Favicon