Kubernetes
by The Linux Foundation • • Container Orchestration Tools
Kubernetes is open source container orchestration for platform and DevOps teams, self-managed on premises or in any cloud and hosted by the CNCF.
Kubernetes runs containerized applications across a cluster of machines, deciding where each container starts and keeping it running when something fails. It builds on Google's experience of running production workloads, combined with ideas and practices from its community. Also known as K8s, it is hosted by the Cloud Native Computing Foundation, part of the Linux Foundation. It is a CNCF graduated project, developed in the open by the Kubernetes Authors. Applications are grouped into Pods, and the kube-scheduler places each Pod on a node with the CPU and memory it requests. Deployments roll out new versions gradually and can roll back to the previous revision. Its self-healing restarts failed containers and reschedules work away from nodes that become unavailable. Services give a set of Pods one DNS name and spread traffic across them, while Ingress brings HTTP and HTTPS traffic in from outside. The HorizontalPodAutoscaler adjusts replica counts on resource or custom metrics, and StorageClasses provision persistent volumes on demand. Kubernetes fits platform and DevOps teams that run many containerized services and want one standard they can take to any infrastructure. It runs on premises, in hybrid setups or on public clouds, so workloads can move between them. Organizations with several teams on one cluster keep them apart with namespaces, role-based access control and resource quotas. The project is open source and self-managed: an organization operates the control plane and nodes itself, or buys a managed service from a cloud provider. Operators drive clusters through the kubectl command-line tool and build and upgrade them in place with kubeadm. ConfigMaps and Secrets feed settings to workloads without rebuilding images, and NetworkPolicies decide which Pods may talk to each other. Beyond long-running services, Kubernetes manages batch and CI workloads, replacing containers that fail. Node capacity grows and shrinks through separate autoscalers such as Cluster Autoscaler, and storage attaches from local disks, public cloud providers or network systems such as iSCSI and NFS. One cluster can then carry web services, batch jobs and stateful applications for many teams at once.
Pricing
-
Open source
Free
- Free to download and run under the Apache License 2.0
- Full source code and releases
- Documentation on kubernetes.io
- Self-managed: you run the control plane and nodes yourself
- Managed control planes are sold separately by cloud providers
- Node autoscaling runs through separate autoscalers such as Cluster Autoscaler
- Network policies need a network plugin that enforces them
- Ingress routing needs an ingress controller
- kubeadm upgrades move one minor version at a time
Features
- Included: Declarative scheduling with resource requests
- Included: Self-healing restart and rescheduling
- Included: Rolling updates with rollback
- Included: Workload autoscaling on metrics
- Included: Cluster node autoscaling
- Included: Built-in service discovery and load balancing
- Included: Ingress and external load balancer integration
- Included: Dynamic persistent volume provisioning
- Included: Config and secret injection into workloads
- Included: Namespace isolation with RBAC and quotas
- Included: Network policies between workloads
- Not included: Managed control plane offering
- Not included: Multi-cluster management console
- Included: Automated cluster version upgrades
- Not included: Helm chart application catalog
- Not included: GitOps reconciliation from a repository
- Not included: CNCF-certified Kubernetes conformance
Additional Features
- Automatic bin packing by CPU and memory requests
- Deployment rollouts and rollbacks
- Self-healing Pod restarts and rescheduling
- HorizontalPodAutoscaler on custom metrics
- Vertical scaling of resource requests and limits
- Cluster Autoscaler node scaling
- Service DNS names and load balancing
- Ingress HTTP and HTTPS routing
Best for
- Platform and DevOps teams running containers at scale
- Organizations that want a vendor-neutral container standard
- Teams moving workloads between on-premises, hybrid and public cloud
- Engineering teams ready to operate their own control plane and upgrades
- Companies running long-lived services beside batch and CI jobs
- Shared clusters that separate teams with namespaces, RBAC and quotas
Use cases
- Rolling out a new application version and rolling it back on failure
- Scaling replicas on CPU, memory or custom metrics
- Exposing services inside and outside the cluster
- Running batch and CI workloads alongside services
- Provisioning persistent storage for stateful applications on demand
- Injecting configuration and secrets without rebuilding images
- Giving each team its own namespace with quotas and RBAC
- Restricting traffic between workloads with network policies
- Upgrading a kubeadm cluster in place
- Adding or removing nodes as pending workload demand changes
- Moving workloads between on-premises and public cloud infrastructure
Screenshots & Videos
Explore Kubernetes in action
User Reviews
Compare with Similar Software
Click to compare side by side with Kubernetes