Generated by DeepSeek V3.2| Kubernetes | |
|---|---|
| Name | Kubernetes |
| Developer | Cloud Native Computing Foundation |
| Released | 07 June 2015 |
| Programming language | Go |
| Operating system | Linux, Microsoft Windows |
| Genre | Container orchestration |
| License | Apache License 2.0 |
Kubernetes. It is an open-source system for automating the deployment, scaling, and management of containerized applications, originally designed by Google and now maintained by the Cloud Native Computing Foundation. The platform groups containers that make up an application into logical units for easy management and discovery, building upon a decade and a half of experience at Google running production workloads. It has become the de facto standard for container orchestration, widely adopted across industries and supported by major cloud providers including Amazon Web Services, Microsoft Azure, and Google Cloud Platform.
The project was inspired by Google's internal cluster management system, Borg, and was announced as an open-source project in mid-2014. Its development is stewarded by the Cloud Native Computing Foundation, a subsidiary of the Linux Foundation. A primary goal is to provide a platform for automating the deployment, scaling, and operations of application containers across clusters of hosts, supporting a range of container runtimes, with Docker being the most common. It facilitates both declarative configuration and automation and is extensively used in microservices architectures and cloud-native development.
A Kubernetes cluster is divided into two main components: the control plane and the nodes, which run the workloads. The control plane, which manages the cluster, includes the kube-apiserver (the front-end), the etcd key-value store for cluster data, the kube-scheduler, and the kube-controller-manager. Worker nodes run containerized applications and host the kubelet, which communicates with the control plane, the kube-proxy for network routing, and a container runtime like containerd or CRI-O. This architecture is designed for high availability and resilience, often deployed across multiple availability zones in cloud environments.
Fundamental abstractions include Pods, the smallest deployable units, which are groups of one or more containers with shared storage and network. Deployments provide declarative updates for Pods and ReplicaSets, while Services define a logical set of Pods and a policy to access them. ConfigMaps and Secrets manage configuration data, and PersistentVolumes abstract storage details from Pods. The Helm package manager uses charts to define, install, and upgrade complex applications.
Clusters can be deployed on-premises, using tools like kubeadm and kubespray, or as managed services like Amazon EKS, Azure AKS, and Google GKE. Day-two operations involve monitoring with tools like Prometheus and Grafana, logging with the Elastic Stack, and implementing security policies via the Kyverno or Open Policy Agent projects. The primary command-line tool, kubectl, is used to interact with the cluster API, while continuous deployment is often handled by GitLab CI/CD, Jenkins, or Argo CD.
The ecosystem is vast, including service meshes like Istio and Linkerd for advanced networking, and serverless frameworks like Knative. The Cloud Native Computing Foundation hosts numerous related projects such as the container runtime containerd, the networking specification CNI, and the storage orchestration project Rook. Major vendors like Red Hat (with OpenShift), VMware (with Tanzu), and Canonical provide enterprise distributions and support, solidifying its role as the cornerstone of modern cloud computing infrastructure.
Category:Cloud computing Category:Free software programmed in Go Category:Linux Foundation projects