Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. Kubernetes is hosted by the Cloud Native Computing Foundation (CNCF)
Kubernetes is:
- lean: lightweight, simple, accessible
- portable: public, private, hybrid, multi cloud
- extensible: modular, pluggable, hookable, composable
- self-healing: auto-placement, auto-restart, auto-replication
Kubernetes builds upon a decade and a half of experience at Google running production workloads at scale using a system called Borg, combined with best-of-breed ideas and practices from the community.
Since the Kubernetes 1.0 release in July 2015 Kubernetes is ready for your production workloads. Check the case studies.
You can run Kubernetes on your local workstation, cloud providers (e.g. GCE, AWS, Azure), on-premises virtual machines and physical hardware. Essentially, anywhere Linux runs you can run Kubernetes. Checkout the deployment solutions for details.
- Interested in learning more about using Kubernetes? Please see our user-facing documentation on kubernetes.io. Try our interactive tutorial or take a free course on Scalable Microservices with Kubernetes.
- Interested in hacking on the core Kubernetes code base, developing tools using the Kubernetes API or helping in anyway possible ? Keep reading!
The Kubernetes community abides by the CNCF code of conduct. Here is an excerpt:
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
Kubernetes works with the following concepts:
Cluster : A cluster is a set of physical or virtual machines and other infrastructure resources used by Kubernetes to run your applications.
Node : A node is a physical or virtual machine running Kubernetes, onto which pods can be scheduled.
Pod : Pods are a colocated group of application containers with shared volumes. They're the smallest deployable units that can be created, scheduled, and managed with Kubernetes. Pods can be created individually, but it's recommended that you use a replication controller even if creating a single pod.
Replication controller : Replication controllers manage the lifecycle of pods. They ensure that a specified number of pods are running at any given time, by creating or killing pods as required.
Service : Services provide a single, stable name and address for a set of pods. They act as basic load balancers.
Label : Labels are used to organize and select groups of objects based on key:value pairs.
Do you want to help " shape the evolution of technologies that are container packaged, dynamically scheduled and microservices oriented? ". If you are a company, you should consider joining the CNCF. For details about who's involved and how Kubernetes plays a role, read the announcement.
Join us on social media and read our blog:
Ask questions and help answer them on:
Attend our key events:
Join a Special Interest Group (SIG)
If you're interested in being a contributor and want to get involved in developing Kubernetes, get started with this light reading:
- The community expectations
- The contributor guidelines
- The Kubernetes Developer Guide
You will then most certainly gain a lot from joining a SIG, attending the regular hangouts as well as the community meeting.
If you have an idea for a new feature, see the Kubernetes Features repository for a list of features that are coming in new releases as well as details on how to propose one.
The Kubernetes documentation is organized into several categories.
- Getting started guides
- For people who want to create a Kubernetes cluster
- For people who want to port Kubernetes to a new environment
- User documentation
- For people who want to run programs on an existing Kubernetes cluster
- Administrator documentation
- For people who want to administer a Kubernetes cluster
- See the Kubernetes Cluster Admin Guide
- For people who want to administer a Kubernetes cluster
- Developer and API documentation
- For people who want to write programs that access the Kubernetes API, write plugins
or extensions, or modify the core Kubernetes code
- See the Kubernetes Developer Guide
- For people who want to write programs that access the Kubernetes API, write plugins
or extensions, or modify the core Kubernetes code
- Walkthroughs and examples
- For Hands-on introduction and example config files
- See the user guide
- See the examples directory
- For Hands-on introduction and example config files
- Contributions from the Kubernetes community
- Design documentation and design proposals
- For people who want to understand the design of Kubernetes, and feature proposals
- See the design docs in the Kubernetes Design Overview and the design directory
- See the proposals in the proposals directory
- For people who want to understand the design of Kubernetes, and feature proposals
- Wiki/FAQ
- For general developer information see the wiki
- For user and admin frequently asked questions, see the troubleshooting guide
While there are many different channels that you can use to get hold of us (Slack, Stack Overflow, Issues, Forums/Mailing lists), you can help make sure that we are efficient in getting you the help that you need.
If you need support, start with the troubleshooting guide and work your way through the process that we've outlined.
That said, if you have questions, reach out to us one way or another. We don't bite!